Delphi-PRAXiS
Seite 1 von 2  1 2      

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 ListView OnSelectItem gibt immer letztes Element zurück (https://www.delphipraxis.net/31802-listview-onselectitem-gibt-immer-letztes-element-zurueck.html)

Sven Janssen 14. Okt 2004 08:24


ListView OnSelectItem gibt immer letztes Element zurück
 
Delphi-Quellcode:
procedure TForm1.lv2SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
Komischerweise gibt mir Item immer das vorherige und nicht das aktuelle ListItem zurück?

Wie bekomme ich den das aktuelle Item heraus, wenn ich mit der Maus auf eine Reihe in der ListView klicke?

Gruß Sven

tuxhol 14. Okt 2004 08:40

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Witzig, interessanterweise habe ich gestern abend genau das gleiche Phänomen festgestellt. Nach einigem Rumprobieren habe ich es dann schließlich auf einen Bug in ListView geschoben. Ich behelfe mir jetzt mit OnClick (statt OnSelect) und lese dort den aktuellen ItemIndex aus. Man muß nur noch zusätzlich per try-except den Fall abfangen, daß der Nutzer gar kein Item selektiert hat, sondern vielleicht zittrig ins Leere geklickt hat. :stupid:

sakura 14. Okt 2004 08:44

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Versuche mal das OnChange Ereignis.

...:cat:...

Treffnix 14. Okt 2004 09:17

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Zitat:

Zitat von OH
Beschreibung

Sender ist die Listenansicht, in der ein Eintrag markiert oder die Markierung eines Eintrags aufgehoben wurde.

Item ist der Eintrag, der markiert oder dessen Markierung aufgehoben wurde.

Selected ist true, wenn der Eintrag markiert wurde und false, wenn die Markierung des Eintrags aufgehoben wurde.

Könnte es sein, dass das Event bei jedem Wechsel 2 mal aufgerufen wird? Einmal für das aufheben der alten Markierung und einmal für das markieren der neuen?

Stevie 14. Okt 2004 09:23

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Zitat:

Zitat von Treffnix
Könnte es sein, dass das Event bei jedem Wechsel 2 mal aufgerufen wird? Einmal für das aufheben der alten Markierung und einmal für das markieren der neuen?

RICHTICH!!! ;-) Also, if Selected then...

Sven Janssen 14. Okt 2004 09:23

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Zitat:

Zitat von tuxhol
Witzig, interessanterweise habe ich gestern abend genau das gleiche Phänomen festgestellt. Nach einigem Rumprobieren habe ich es dann schließlich auf einen Bug in ListView geschoben. Ich behelfe mir jetzt mit OnClick (statt OnSelect) und lese dort den aktuellen ItemIndex aus. Man muß nur noch zusätzlich per try-except den Fall abfangen, daß der Nutzer gar kein Item selektiert hat, sondern vielleicht zittrig ins Leere geklickt hat. :stupid:

Delphi-Quellcode:
if listview1.selected = nil then exit;
;-)

aber gut zu wissen das andere das selbe Phänomen haben.

Sven

Sven Janssen 14. Okt 2004 09:28

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Zitat:

Zitat von Stevie
Zitat:

Zitat von Treffnix
Könnte es sein, dass das Event bei jedem Wechsel 2 mal aufgerufen wird? Einmal für das aufheben der alten Markierung und einmal für das markieren der neuen?

RICHTICH!!! ;-) Also, if Selected then...

Super ich Nase hatte das not vergessen.

Also : if selected then exit; -> anstatt if not selected then exit;

Merci!

Sven

Stevie 14. Okt 2004 09:35

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Zitat:

Zitat von Sven Janssen
Zitat:

Zitat von Stevie
Zitat:

Zitat von Treffnix
Könnte es sein, dass das Event bei jedem Wechsel 2 mal aufgerufen wird? Einmal für das aufheben der alten Markierung und einmal für das markieren der neuen?

RICHTICH!!! ;-) Also, if Selected then...

Super ich Nase hatte das not vergessen.

Also : if selected then exit; -> anstatt if not selected then exit;

Merci!

Sven

:warn: Falsch, Selected ist dann True, wenn das neue Element angewählt wurde!!!
Zitat:

Selected ist True, wenn der Eintrag markiert wurde und False, wenn die Markierung des Eintrags aufgehoben wurde.

Treffnix 14. Okt 2004 09:40

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Er hats schon richtig.
Zitat:

ich Nase hatte das not vergessen
Auch wenn ich statt
Delphi-Quellcode:
if not selected then exit;
eher
Delphi-Quellcode:
if selected then machwas;
vorgezogen hätte, sollte es auf die Art funktionieren

Stevie 14. Okt 2004 09:44

Re: ListView OnSelectItem gibt immer letztes Element zurück
 
Zitat:

Zitat von Treffnix
Er hats schon richtig.
Zitat:

ich Nase hatte das not vergessen
Auch wenn ich statt
Delphi-Quellcode:
if not selected then exit;
eher
Delphi-Quellcode:
if selected then machwas;
vorgezogen hätte, sollte es auf die Art funktionieren

:wall: Hatte nur das gelesen:
Zitat:

Zitat von Sven Janssen
Also : if selected then exit; -> anstatt if not selected then exit;

und gedacht, so wollte es jetzt machen, aber das war das, was er hatte... :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr.
Seite 1 von 2  1 2      

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