Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Buttons und MainMenu synchronisieren (https://www.delphipraxis.net/94114-buttons-und-mainmenu-synchronisieren.html)

scrat1979 16. Jun 2007 15:20


Buttons und MainMenu synchronisieren
 
hallo zusammen,

ich stelle mir gerade die Frage, wie (ob?) es möglich ist, meine Buttons und die entsprechenden MainMenü-Eintgräge (jeweils gleiches OnClick-Ereinigs) irgendwie zu synchronisieren.

Momentan mache ich alles manuell:

Delphi-Quellcode:

[...]

Button_Loeschen.Enabled := False;
MM_Loechen.Enabled := False;

Button_Verschieben.Enabled := True;
MM_Verschieben.Enabled := True;

[...]
Gibt es dafür eine elegantere Lösung?

Grüsse,
SCRaT

marabu 16. Jun 2007 15:24

Re: Buttons und MainMenu synchronisieren
 
Hallo,

du solltest dich über die Eigenschaft Action deiner Buttons und MenuItems informieren: TActionList ...

Grüße vom marabu

scrat1979 16. Jun 2007 15:50

Re: Buttons und MainMenu synchronisieren
 
Hmmm, ich habe mir schon einmal dieses Tutorial angesehen. habe aber gedacht, dass man mit ActionLists z.B. gleiche OnClick-Ereignisse verwalten kann.

Eigentlich möchte ich ja die EIGENSCHAFT "enabled" synchronisieren. Geht das damit auch? Wäre super, wenn vielleicht jemand ein Beispiel-Code für eine einfache 1-Button/MainMenuItem - Kombination hätte.

SCRaT

marabu 16. Jun 2007 16:00

Re: Buttons und MainMenu synchronisieren
 
Hallo Michael,

in diesem Beitrag findest du ein Beispiel für eine Action, die sowohl einem MenuItem als auch einem Button zugewiesen werden kann. Die Manipulation der Eigenschaft Enabled der Action-Komponente wird automatisch auf die entsprechende Eigenschaft der Komponente übertragen mit der die Action verknüpft ist.

Freundliche Grüße

Ralf Kaiser 16. Jun 2007 17:38

Re: Buttons und MainMenu synchronisieren
 
Zitat:

Zitat von scrat1979
Wäre super, wenn vielleicht jemand ein Beispiel-Code für eine einfache 1-Button/MainMenuItem - Kombination hätte.SCRaT

Hi,

Beispielcode ist hiebei schon fast schwierig, da es bei diesem Mechanismus für den Entwickler (fast) keinen Code zu schreiben gibt. Die Actions machen alles alleine!

Probiers einfach aus: Erzeuge eine Action und weise diese Action einem Button und einem Menuitem zu. Dann setze im Code z.B "DeineAction.Enabled := false" und schau was mit dem Menuitem und dem Button passiert. Auch andere Eigenschaften lassen sich per Action verwalten: Caption, Visible, ImageIndex usw.

Wenn die Action auch noch regelmässig die verwalteten Eigenschaften auf dem aktuellen Stand halten soll dann verwende das Event "OnUpdate" der Action. Dort kannst du z.B. eine in Abhängigkeit von einer Bedingung Action ein oder ausschalten: Im OnUpdate-Event: "MeineAction.Enabled := bDatenGeladen" - Jetzt würde die Action automatisch ein oder ausgeschaltet je nach dem welchen Wert die Variable "bDatenGeladen" hat und zwar egal wo im Programm sich die Variable ändert (normalerweise müsstest du an jeder Stelle an der sich die Variable ändert eine Umschaltungvon Buttons/Menüs einbauen). Die "angeschlossenen" Buttons/Menüs/wasauchimmers ändern sich dann automatisch mit.

scrat1979 17. Jun 2007 06:32

Re: Buttons und MainMenu synchronisieren
 
OK, vielen Dank. Ich werde es - sobald ich Zeit habe - gleich mal testen und mich damit auseinandersetzen!

Thanx nochmal...

SCRaT

Sharky 17. Jun 2007 07:03

Re: Buttons und MainMenu synchronisieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hai SCRaT,

ich habe mal schnell ein kleines Beispiel getippt.

scrat1979 17. Jun 2007 07:35

Re: Buttons und MainMenu synchronisieren
 
Danke, Sharky. So langsam steige ich da durch :-)

Aber was ich mich noch Frage: Der Button und der entsprechende MainMenu-Eintrag haben verschiedene "Captions". Lässt sich die Action NUR auf die Eigenschaft "enabled" begrenzen? Ein löschen der Caption in der Action hilft leider nicht...

SCRaT

Sharky 17. Jun 2007 07:49

Re: Buttons und MainMenu synchronisieren
 
Zitat:

Zitat von scrat1979
... Der Button und der entsprechende MainMenu-Eintrag haben verschiedene "Captions". ...

Hai SCRaT,

normalerweise möchte man ja bei einer Aktion auch die selbe Beschreibung. Aber okay. Weise erst dem Button und dem Menüpunkt die Action zu und ändere dannach die Eigenschaft Caption des Buttons oder des Menüpunktes.

Helmi 17. Jun 2007 08:22

Re: Buttons und MainMenu synchronisieren
 
Hallo,

ich hab mir auch mal das Demo angeschaut, endlich versteh ich wie das funktioniert mit den ActionLists :-)

Aber mir ist das was aufgefallen:
Wenn man in der Liste ein anderes Image auswählt, dann wird das nur im Menupunkt "blubb" geändert. Der Button "Blubb" behält sein altes Image (das Smilie).

Ach ja - noch was:
Wieso hast du im OnClick des Menupunkts "blubb" und im Onclick des Buttons "blubb" das OnExecute des Actions "acblubb" zugewiesen?
Es würde ja auch ohne der OnClick-Zuweisungen funktionieren.


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

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