Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug? (https://www.delphipraxis.net/173191-wieso-wird-listview1selectitem-zwei-mal-ausgefuehrt-ein-bug.html)

AlexII 11. Feb 2013 18:49

Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Hallo,

wieso wird ListView1SelectItem beim anklicken zwei mal ausgeführt? Beim ersten Klick nicht, bei den nächsten schon, immer doppelt.

Hab Delphi 2010

Danke!

Lemmy 11. Feb 2013 18:58

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
vermutlich weil du das so programmiert hast.. Zeig mal als erstes was im OnClick Event passiert...

AlexII 11. Feb 2013 19:02

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Ne, hab neues Projekt erstellt und getestet.

Außer diesem Beispiel hab da nix.

Delphi-Quellcode:
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
showmessage('test');
end;

zeras 11. Feb 2013 19:06

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Ich würde hier zum Test nicht mit ShowMessage arbeiten. Hast du nicht eine Statusbar, wo du einen globalen Wert hochzählen kannst?

AlexII 11. Feb 2013 19:12

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Delphi 7 Personal macht das gleiche. :gruebel:

Lemmy 11. Feb 2013 19:14

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Zitat:

Zitat von AlexII (Beitrag 1202953)
Hab Delphi 2010

stand das vorher schon da? Sorry, habe ich überlesen...

Wenn Du dir den Methodenaufruf von ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); anschaust, dann solltest Du doch auch die Lösung sehen: Der wird 2x aufgerufen, einmal für das Item das ausgewählt war und einmal für das neue ausgewählte Item. Über "Selected" kannst Du dann entsprechend reagieren (ist beim ersten Aufruf false, beim zweiten Aufruf true)

GRüße

AlexII 11. Feb 2013 19:24

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Zitat:

Zitat von Lemmy (Beitrag 1202961)
Zitat:

Zitat von AlexII (Beitrag 1202953)
Hab Delphi 2010

stand das vorher schon da? Sorry, habe ich überlesen...

Wenn Du dir den Methodenaufruf von ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); anschaust, dann solltest Du doch auch die Lösung sehen: Der wird 2x aufgerufen, einmal für das Item das ausgewählt war und einmal für das neue ausgewählte Item. Über "Selected" kannst Du dann entsprechend reagieren (ist beim ersten Aufruf false, beim zweiten Aufruf true)

GRüße

Ja das stand da.

Hab ich mir auch so gedacht, danke dir!

Hast du vllt ein Code-Beispiel wie ich mit "Selected" darauf reagiere?

Lemmy 11. Feb 2013 19:33

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
du meinst so was:

Delphi-Quellcode:
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  if Selected then
    showmessage('test');
end;

AlexII 11. Feb 2013 19:37

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Thx :thumb:

hoika 12. Feb 2013 06:05

AW: Wieso wird ListView1SelectItem zwei mal ausgeführt? Ein Bug?
 
Hallo,

einmal für das alte Item, einmal für da neue.
Ich merke mir in einer Variable immer das aktuelle Item
und vergleiche im OnSelectItem, ob das Item verschieden ist.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz