...detect/handle a click on a TListView Checkbox?
Author: Jailbird
procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
HitTest: THitTests;
begin
// Welchem Item gehört die CheckBox
// Which item belongs to the checkbox
Item := ListView1.GetItemAt(x, y);
// Was wurde vom Item genau angeklickt
// What kind of thing was hit on the item
HitTest := ListView1.GetHitTestInfoAt(x, y);
// Falls ein Item angeklickt wurde und davon die Checkbox
// If an Item was hit and exactly his checkbox
if (Item <> nil) and (HitTest = [htOnStateIcon]) then
begin
////////////////////////////////
// Hier das OnCheck behandeln //
// Handle OnCheck here //
////////////////////////////////
// Beispiel
// Example
//
// if Item.Checked = False then
// begin
// if (Item.Index = 0) or (ListView1.Items.Item[Item.Index - 1].Checked = True) then
// Item.Checked := True else Item.Checked := False;
// end else
// begin
// if (Item.Index = ListView1.Items.Count - 1) or (ListView1.Items.Item[Item.Index + 1].Checked = False) then Item.Checked := False else
// Item.Checked := True;
// end;
end;
end;
printed from
www.swissdelphicenter.ch
developers knowledge base