Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListVieweinträge auswählen (https://www.delphipraxis.net/22881-listvieweintraege-auswaehlen.html)

TheMiller 25. Mai 2004 17:14


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:
Form7.Caption:=ListView1.Items.Item[ListView1.Selected.Index].Caption;
Ich hoffe, mir kann wer helfen! :hi:

Gollum 25. Mai 2004 17:36

Re: ListVieweinträge auswählen
 
Hallo,

wie wäre es mit dem Ereignis OnSelectItem?

TheMiller 25. Mai 2004 17:40

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:
Zugriffsverletzung bei Adresse xxxxxxxxx in Modul 'xxx'. Lesen von Adresse xxxxxxxxxxxxxx
Dann klicke ich auf OK und er führt die korrekte Funktion aus.

Was ist das? Was mache ich falsch?

Gollum 25. Mai 2004 17:44

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;

TheMiller 25. Mai 2004 17:48

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)?

Gollum 25. Mai 2004 17:53

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;

TheMiller 25. Mai 2004 17:54

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