![]() |
ListVieweinträge auswählen
Hey Leute,
mal wieder eine Frage. Ich habe mal versucht, etwas mit der Listview zu programmieren. Jetzt habe ich da 3 icons drinn. Jetzt möchte ich eins auswählen und was ausführen lassen. Momentan schreibt er den Namen des Items in die Titelleiste. Später sollen richtige Funktionen ausgeführt werden. In welches Ereignis muss ich was schreiben, dass er es auch wirklich ausführt. Ich habe OnClick und OnDblClick schon probiert. Dann führt er es aber auch aus, wenn ich daneben klicke...
Delphi-Quellcode:
Ich hoffe, mir kann wer helfen! :hi:
Form7.Caption:=ListView1.Items.Item[ListView1.Selected.Index].Caption;
|
Re: ListVieweinträge auswählen
Hallo,
wie wäre es mit dem Ereignis OnSelectItem? |
Re: ListVieweinträge auswählen
Ja, das hatte ich auch schon, aber da führt er das Ereignis immer 2mal aus. Wenn ich drauf klicke, zB auf Item1 dann zeigt er den namen Test1 in der Titelleiste an. Klicke ich dann auch Item2, kommt diese Meldung:
Delphi-Quellcode:
Dann klicke ich auf OK und er führt die korrekte Funktion aus.
Zugriffsverletzung bei Adresse xxxxxxxxx in Modul 'xxx'. Lesen von Adresse xxxxxxxxxxxxxx
Was ist das? Was mache ich falsch? |
Re: ListVieweinträge auswählen
Hallo,
versuche einmal folgendes:
Delphi-Quellcode:
procedure TForm1.ListView1SelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean); begin if (Item=nil) then Exit; if Selected then MacheIrgendetwas; end; |
Re: ListVieweinträge auswählen
Das funktioniert. Nur warum ist das für solche einfachen Aktionen so aufwendig?`Ist das die einzige Lösung oder MUSS es so sein?
und wie kann ich das bei mehreren Items spezifizieren? Also, dass er bei Item3 die Message(y) zeigt und bei Item1 die Message(z)? |
Re: ListVieweinträge auswählen
Hallo,
die Procedure übergibt Dir doch das ausgewählte ListItem. Da hast Du doch alles was Du brauchst:
Delphi-Quellcode:
procedure TForm1.ListView1SelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean); begin if (Item=nil) then Exit; if Selected then begin if (Item.Index=0) then MacheDies else if (Item.Index=1) then MacheDas else if (Item.Caption='MeinItemText') then MacheWasGanzAnderes; end; end; |
Re: ListVieweinträge auswählen
Achso. Okay vielen Dank!!!
Werde ich dann testen!!! :firejump: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz