Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#11

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 10:32
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat