Du verwendest die Action-Komponente falsch
Eine TAction-Instanz kann man in einem Menü unterbringen oder eben an Buttons oder eben auch an einer Checkbox anhängen.
Die TAction-Instanz soll aber immer funktionieren unabhängig davon, ob diese nun an einer Checkbox hängt oder nur in einem Menü.
Und wenn wir uns mal die Klasse
TAction ansehen, dann stellen wir fest, da gibt es doch tatsächlich eine Eigenschaft
TAction.Checked, nebst einer Eigenschaft
TAction.AutoCheck.
Mit dem Wissen sollte man also die Execute-Methode wie folgt schreiben:
Delphi-Quellcode:
procedure TForm1.imageFitToScreenExecute(Sender: TObject);
begin
if imageFitToScreen.Checked then
begin
display.ScaleMode := smResize;
end
else
begin
display.ScaleMode := smScale;
display.Scale := 1;
end;
end;
und nicht vergessen im
OI für imageFitToScreen.AutoCheck auf True zu setzen.
Die Checkbox, der man diese Action zuweist, wird nun auch korrekt den Status von der Action anzeigen und auch das mit dem ShortCut funktioniert nun.