Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ereignis OnClick nur wenn gewollt ausführen (https://www.delphipraxis.net/141181-ereignis-onclick-nur-wenn-gewollt-ausfuehren.html)

himitsu 4. Okt 2009 10:32

Re: Ereignis OnClick nur wenn gewollt ausführen
 
Zitat:

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 :angel2:

haentschman 4. Okt 2009 10:39

Re: Ereignis OnClick nur wenn gewollt ausführen
 
Danke für Eure Anteilnahme :wink:

das einfachste wird wohl der OI sein. Bei den paar RadioButtons kann ich das manuell setzen.

einen schönen Sonntag :hi:

himitsu 4. Okt 2009 10:43

Re: Ereignis OnClick nur wenn gewollt ausführen
 
joar, wird wohl das Einfachste sein, denn z.B. ist irgendwer auf die seltendämliche Idee gekommen ClicksDisabled nur Protected sein zu lassen :wall:

Delphi-Quellcode:
THackedCheckBox = class(TCheckBox)
public
  property ClicksDisabled;
end;

THackedCheckBox(YourCheckBox).ClicksDisabled := True;
YourCheckBox.Checked := ...;
THackedCheckBox(YourCheckBox).ClicksDisabled := False;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz