Autor Beitrag
sneki
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 12.03.10 19:43 
Hallo!
Das mag jetzt eine ziemlich dumme Frage sein, aber ich komme partou nicht auf die Lösung!
Ich habe durch einen Suchalgorithmus verschiedene Rezeptnamen in meiner Listbox angezeigt. Nun möchte ich, dass bei Doppelklick das entsprechende Rezept dazu aufgerufen wird. Den Rezeptnamen sowie den Pfad der zu der entsprechenden Rezeptanleitung führt (RTF-format) ist ein einer Variablen (Teil eines Feldes und vom Typ Record2 [Enthält Name und Pfad zum Textdokument]) gespeichert. Der Name aus der Variablen ist ja schon in der Listbox, nur jetzt möchte ich diesen weiterverwenden um die dazugehörige Anleitung aufzurufen. Nur da, je nach Sucheingabe, die Rezeptnamen immer an einer anderen Position in der Listbox stehen, fällt mir nicht ein, wie ich den Namen nochmal aufrufen kann um ihn dann mit dem Namen der Variablen wo auch die Anleitung ist zu vergleichen um den Pfad zur Anleitung dann aufzurufen.. Das ganze soll halt auch nur bei Doppelklick auf die Listbox ablaufen ^^ (also wenn man ein Rezept doppelt anklickt)
Also ist das verständlich? ^^

(Die Delphi-Hilfe kann ich leider nicht aufrufen, dank dem tollen Windows 7 -.-)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 13.03.10 00:39 
user profile iconsneki hat folgendes geschrieben Zum zitierten Posting springen:
(Die Delphi-Hilfe kann ich leider nicht aufrufen, dank dem tollen Windows 7 -.-)

dafür gibts einerseits die Online-Hilfe von der Delphi-Praxis rausgegeben und andererseits dieses "Dokument" von MS. ;)

so, nun zu deinem Problem: Die Records müssen ja irgendwie gespeichert sein. Ich schätze einmal in einem Array? Demnach kannst du sequenziell das Array durchlaufen und immer vergleichen ob die Dateinamen übereinstimmen. Wenn sie übereinstimmen hast du ja schon den dazugehörigen Pfad. (Stichwort: while-Schleife und if-abfrage) ;)

so, nun zu dem Problem der Listbox. Die Listbox sollte ein Event namens OnDblClick haben. Das wird ausgelöst wenn man doppelt auf die Listbox draufklickt. Um nun das markierte Element zu bekommen musst du in diesem Event den ItemIndex von der Listbox abfragen und mit

ausblenden Delphi-Quelltext
1:
Listbox1.Items[Listbox1.Itemindex];					


bekommt ihr den namen an der markierten stelle.

Das ganze müsst ihr jetz nur noch richtig zusammenfügen. ich hoff ich hab euch richtig verstanden. ;)

lg elundril

Moderiert von user profile iconNarses: Zitat repariert.

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
sneki Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Sa 13.03.10 17:45 
hm also ich hab das ganze mit einer for-schleife gemacht ^^

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin

i:=0;

for i:=1 to 20 do
  begin if Listbox1.Items[Listbox1.ItemIndex]=ran[i].Name
          then  Form2.Richedit1.Lines.Loadfromfile(ran[i].Anleitung);
  end;

Form2.ShowModal;

end;


danke :)

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt