Entwickler-Ecke

Sonstiges (Delphi) - In Listbox gespeicherten Text aufrufen (weiterverwenden)


sneki - Fr 12.03.10 19:43
Titel: In Listbox gespeicherten Text aufrufen (weiterverwenden)
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 - 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 [http://ref.dp200x.de/] von der Delphi-Praxis rausgegeben und andererseits dieses "Dokument" [http://support.microsoft.com/kb/917607] 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


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.


sneki - Sa 13.03.10 17:45

hm also ich hab das ganze mit einer for-schleife gemacht ^^


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