Zitat von
haentschman:
das OnClick wird nur ausgeführt, wenn sich der Wert ändert. Wenn die Checkbox False ist und auf False gesetzt wird passiert gar nix. Das hat mich ein wenig in die Irre geführt.
Das liegt an der
VCL, denn diese prüft vorher oftmals, ob sich etwas ändert und fürht nur dann diese Änderungen aus.
in deinem Fall: (SetChecked greift auf SetState zu)
Code:
procedure TCustomCheckBox.SetState(Value: TCheckBoxState);
begin
[color=#ff0000][b]if FState <> Value then[/b][/color]
begin
FState := Value;
if HandleAllocated then
SendMessage(
Handle, BM_SETCHECK, Integer(FState), 0);
[color=#ff0000][b]if not ClicksDisabled then Click;[/b][/color]
end;
end;
Und wenn man das so sieht, dann müßte man doch nur rausfinden, wie ClicksDisabled gesetzt wird