AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Checkbox mit Shortcut (TActionList)
Thema durchsuchen
Ansicht
Themen-Optionen

Checkbox mit Shortcut (TActionList)

Ein Thema von Klaus01 · begonnen am 22. Jan 2012 · letzter Beitrag vom 23. Jan 2012
Antwort Antwort
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#1

Checkbox mit Shortcut (TActionList)

  Alt 22. Jan 2012, 20:11
Hallo,

ich stehe etwas auf dem Schlauch ..

Ich habe eine ActionList eine Methode dieser Liste ist:
Delphi-Quellcode:
procedure TForm1.imageFitToScreenExecute(Sender: TObject);
begin
  if fitToScreen.Checked then
    begin
      display.ScaleMode := smResize;
    end
  else
    begin
      display.ScaleMode := smScale;
      display.Scale := 1;
    end;
end;
Dieser Methode ist im ObjectInspector als ShortCut Ctrl+F zugeordnet worden.
Diese Methode ist auch der Checkbox (fitToScreen) als Action zugeordnet worden.

Wird der ShortCut verwendet wird auch die entsprechende Methode der Actionlist aufgerufen.
Nur es wird nicht der Zustand der Checkbox geändert.

Wenn ich die checkbox mit der Maus bediene wechselt die display Anzeige zwischen smResize und smScale - was sie auch soll.

Rufe ich die Methode per Shortcut auf - ändert sich nichts - weil sich der Zustand der Checkbox nicht ändert.

Wie kann ich das Problem lösen?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Checkbox mit Shortcut (TActionList)

  Alt 22. Jan 2012, 22:01
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 Delphi-Referenz durchsuchenTAction ansehen, dann stellen wir fest, da gibt es doch tatsächlich eine Eigenschaft Delphi-Referenz durchsuchenTAction.Checked, nebst einer Eigenschaft Delphi-Referenz durchsuchenTAction.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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Checkbox mit Shortcut (TActionList)

  Alt 23. Jan 2012, 19:05
Hallo Sir Rufo,

danke für die Hinweise - nun funktioniert es wie es soll.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz