AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TListview, OnSelectItem Ereignis ausloesen

Ein Thema von Gutelo · begonnen am 13. Apr 2014 · letzter Beitrag vom 13. Apr 2014
Antwort Antwort
Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#1

TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 21:02
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:
LI := LV.FindCaption(0,'MyItem1',true,false,false);
LI.Selected := True;
LVSelectItem(LV,LI,true);
Das Item wird selektiert. Aber die Prozedur OnSelectItem wird nicht ausgefuehrt.

Gutelo

Geändert von Gutelo (13. Apr 2014 um 22:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 21:19
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?
LV.OnSelectItem( ... );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#3

AW: TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 21:24
LV.OnSelectItem( ... ); bewirkt das gleiche wie LVSelectItem(...);
Die Prozedur wird nicht ausgefuehrt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 21:58
Das sind die Delphi-Tags
Code:
[DELPHI][/DELPHI]
Und mit dem Debugger hast du auch schon überprüft, ob er diese Zeilen ausführt?
Du hast Haltpunkte gesetzt (z.B. in der Zeile LVSelectItem(...); ) und der Code hat dort nicht angehalten?

Und nochmal: Wozu?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#5

AW: TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 22:18
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 ...

Geändert von Gutelo (13. Apr 2014 um 22:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#6

AW: TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 22:23
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 22:29
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: TListview, OnSelectItem Ereignis ausloesen

  Alt 13. Apr 2014, 22:48
Also möchtest du quasi sowas
Delphi-Quellcode:
procedure TForm1.Paintbox1Paint( Sender : TObject );
begin
  if Assigned( LV.Selected ) then
  begin
    // Aktuelles ListItem-Icon zeichnen
    PaintBox1.Canvas.Draw( ... );
  end;
end;
und immer wenn sich das ListView-Item ändert, dann einfach ein PaintBox1.Invalidate; und die malt sich wieder selber.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 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