Avatar billede cro1984 Nybegynder
24. juli 2001 - 01:38 Der er 4 kommentarer og
1 løsning

dobbel klik

Jeg har lavet en ListBox, hvor jeg i items har skrevet nogle ting, f.eks. nogle musik numre på list. Så vil jeg gerne have at man skal kunne dobbelt klikke på numrene.
Avatar billede snowball Novice
24. juli 2001 - 09:58 #1
På din Listbox er der en event der hedder OnDblClick som bliver udført når du dobbeltklikker på et item i Listboxen !

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
  //Erstat med din egen kode!
  Showmessage(\'Du dobbeltklikkede på listboxen\');
end;

Snowball
Avatar billede sjensen Nybegynder
24. juli 2001 - 11:43 #2
jep, og indholdet af det item du klikkede på kan du få med:

var s : string;
begin
  s := listbox1.items[listbox1.itemindex];
end;

Hvis listboxen er tom er imteindex = -1 så du kan med fordel teste på det først for at undgå en accessviaolation:

var s : string;
begin
  s := \'\';
  if listbox1.itemindex <> -1 then
  begin
    s := listbox1.items[listbox1.itemindex];
  end;
end;
Avatar billede cro1984 Nybegynder
29. juli 2001 - 01:54 #3
Der er noget jeg ikke forstår........

Hvis jeg nu dobbelklikker på et nummer...skal programmet finde numret på hdd....

hvordan laves det op fra ovenstående......Og forresten alle disse koder mm. man ser til de forskellige spørgsmål, er det noget I har i hoved eller hva\'? Hvis ja, hvor kan man lære det?
Avatar billede zardic Nybegynder
29. juli 2001 - 21:27 #4
OK
Det du har is Listbox en SKAL være file navn
ellers virker den ikke:
Here er helle koden

****************NEW START*********************
function SearchTree(StartDir,FileToFind : string;
                    out FileNamePath : string) : boolean;
var RetVar : boolean;

    // Recursive Dir Search
    procedure SearchDir(DirPath : string);
    var SearchRec : TSearchRec;
    begin
      DirPath := IncludeTrailingBackSlash(DirPath);

      if FindFirst(DirPath + \'*.*\',faAnyFile,SearchRec) = 0 then begin
        if UpperCase(SearchRec.Name) = FileToFind then begin
          RetVar := true;
          FileNamePath := DirPath + SearchRec.Name;
        end
        else begin
          while not RetVar and (FindNext(SearchRec) = 0) do begin
            if UpperCase(SearchRec.Name) = FileToFind then begin
              RetVar := true;
              FileNamePath := DirPath + SearchRec.Name;
            end
            else
              if (SearchRec.Name <> \'.\') and
                (SearchRec.Name <> \'..\') and
                ((SearchRec.Attr and faDirectory) = faDirectory) then
                  SearchDir(DirPath + SearchRec.Name);
          end;
        end;

        FindClose(SearchRec);
      end;
    end;

// SearchTree
begin
  Screen.Cursor := crHourGlass;
  FileNamePath := \'\';
  FileToFind := UpperCase(FileToFind);
  RetVar := false;
  SearchDir(StartDir);
  Screen.Cursor := crDefault;
  Result := RetVar;
end;
****************NEW END*********************

****************OLD MODIFIED START**********
procedure TForm1.ListBox1DblClick(Sender: TObject);

var s,drev,filelocation : string;
begin
  drev:= \'c:\\\';
  s := \'\';
  if listbox1.itemindex <> -1 then
  begin
    s := listbox1.items[listbox1.itemindex];
  end;

SearchTree(s,derv,filelocation);
end;
****************OLD MODIFIED END**********
if file found filelocation = where file is
else is = none

This work more or less there my be some small errors is don\'t work icq me or email me
Icq: 50374070
Email: Christian_tusborg@net.dialog.dk
Avatar billede cro1984 Nybegynder
20. september 2001 - 14:45 #5
Zardic
bruger MSN jeg har nogle spørgsmål
Cro1984@hotmail.com
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester