Dafür eine eigene Komponente finde ich etwas übertrieben. Wie wäre es denn so?
Delphi-Quellcode:
type
TCheckbox = class(StdCtrls.TCheckbox)
private
FAvoidClick: Boolean;
function GetMyState: TCheckBoxState;
procedure SetMyState(const Value: TCheckBoxState);
public
property AvoidClick: Boolean read FAvoidClick write FAvoidClick;
property State: TCheckBoxState read GetMyState write SetMyState;
end;
TForm1 = class(TForm)
CheckBox1: TCheckBox;
...
end;
...
function TCheckbox.GetMyState: TCheckBoxState;
begin
Result := inherited State;
end;
procedure TCheckbox.SetMyState(const Value: TCheckBoxState);
begin
ClicksDisabled := FAvoidClick;
inherited State := Value;
ClicksDisabled := false;
end;
Über die neue Property AvoidClick kann man individuell je Checkbox angeben, ob sie ein Click-Event auslösen soll, wenn State geändert wird.