Einzelnen Beitrag anzeigen

BenjaminHelbig

Registriert seit: 23. Okt 2003
Ort: Mannheim
80 Beiträge
 
Delphi 5 Professional
 
#2

Re: Klick auf Checkbox in einer ListView abfangen

  Alt 4. Mär 2004, 09:17
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]
--------
Es ist schon über so viele Dinge Gras gewachsen, dass ich keinem Rasen mehr traue.
  Mit Zitat antworten Zitat