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]