![]() |
Klick auf Checkbox in einer ListView abfangen
Hi DP'ler,
folgendes Problem stellt sich mir. Ich habe eine ListView mit CheckBoxen und möchte anbfangen wenn der Benutzer auf die Checkbox klickt. Das Problem ist ja, dass bei einem direkten Klick auf die CheckBox nur der state geändert wird, nicht aber die selected eigenschaft und es kein Even für state änderungen gibt. Wäre supi wenn jemand von euch eine IDee hätte. Grüßle Ben |
Re: Klick auf Checkbox in einer ListView abfangen
Hi, habe eine Lösung gefunden. Ist nicht die feine englische, aber es läuft stabil, gut und schnell.
Delphi-Quellcode:
var
Form1: TForm1; Checkboxclick : Boolean = false; Itemstate : String; implementation {$R *.DFM} procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem; Change: TItemChange); begin if change = ctstate then begin if (Item.checked = true) and (Itemstate = 'unchecked') then begin // KLick auf die Chekbox Checkboxclick := true; ShowMessage('Checked: ' + IntToStr(Item.Index)); end else if (Item.checked = false) and (Itemstate = 'checked') then begin // Klick auf die Checkbox Checkboxclick := true; ShowMessage('unChecked: ' + IntToStr(Item.Index)); end else begin // Kein Klick auf die Checkbox Checkboxclick := false; end; end; end; procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem; Change: TItemChange; var AllowChange: Boolean); begin if change = ctstate then begin if Item.checked = true then Itemstate := 'checked' else Itemstate := 'unchecked'; end; end; procedure TForm1.ListView1Click(Sender: TObject); begin if (Checkboxclick = false) then begin if (ListView1.Selected.Index <> -1) then ShowMessage('Selected: ' + IntToStr(ListView1.Selected.Index)); end; end; Grüßle Ben [edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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