![]() |
TListview, OnSelectItem Ereignis ausloesen
Hallo,
ich moechte ohne Mausklick aus dem Programm heraus ein bestimmtes Item in einer Listview selektieren und das OnSelectItem Ereignis ausgefuehrt bekommen. Ich habe es so versucht: LI: TListItem und LV:TListView;
Delphi-Quellcode:
Das Item wird selektiert. Aber die Prozedur OnSelectItem wird nicht ausgefuehrt.
LI := LV.FindCaption(0,'MyItem1',true,false,false);
LI.Selected := True; LVSelectItem(LV,LI,true); Gutelo |
AW: TListview, OnSelectItem Ereignis ausloesen
Könntest du Delphi-Code in Delphi-Tags einschließen? Danke.
Wozu brauchst du das und wenn das so nicht geht, warum rufst du das dann nicht selber auf?
Delphi-Quellcode:
LV.OnSelectItem( ... );
|
AW: TListview, OnSelectItem Ereignis ausloesen
LV.OnSelectItem( ... ); bewirkt das gleiche wie LVSelectItem(...);
Die Prozedur wird nicht ausgefuehrt. |
AW: TListview, OnSelectItem Ereignis ausloesen
Das sind die Delphi-Tags
Code:
Und mit dem Debugger hast du auch schon überprüft, ob er diese Zeilen ausführt?
[DELPHI][/DELPHI]
Du hast Haltpunkte gesetzt (z.B. in der Zeile
Delphi-Quellcode:
) und der Code hat dort nicht angehalten?
LVSelectItem(...);
Und nochmal: Wozu? |
AW: TListview, OnSelectItem Ereignis ausloesen
Das Problem liegt woanders.
Also die Prozedur OnSelectItem wird doch ausgefuehrt. Das OnSelectItem kopiert das Icon des selektierten Items in eine TPaintbox. Da ich OnSelectItem in Form.OnShow aufrufe scheint der Inhalt der Paintbox nicht aktualisiert/angezeigt zu werden. Mit TImage statt TPaintBox gehts ... |
AW: TListview, OnSelectItem Ereignis ausloesen
Das Zeichnen einer PaintBox geschieht im OnPaint-Event. Es bringt nichts, da irgendwann mal was in die Paintbox-Canvas zu malen. Das wird schnell wieder gelöscht.
|
AW: TListview, OnSelectItem Ereignis ausloesen
Oder anders gesagt, die PaintBox merkt sich nicht was gezeichnet wurde und kann später das Bild nicht wiederherstellen.
Man kann schon irgendwann was draufmalen, aber im OnPaint muß man selber einen Code reinmachen, der das Bild wieder neu zeichnet, nachdem es z.B. übermalt/überdeckt war. Oder eben nach/bei dem OnShow, wenn man vorher versuchte was draufzumalen, als die PaintBox noch nicht sichtbar war. |
AW: TListview, OnSelectItem Ereignis ausloesen
Also möchtest du quasi sowas
Delphi-Quellcode:
und immer wenn sich das ListView-Item ändert, dann einfach ein
procedure TForm1.Paintbox1Paint( Sender : TObject );
begin if Assigned( LV.Selected ) then begin // Aktuelles ListItem-Icon zeichnen PaintBox1.Canvas.Draw( ... ); end; end;
Delphi-Quellcode:
und die malt sich wieder selber.
PaintBox1.Invalidate;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 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 by Thomas Breitkreuz