Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Umbenennen aller Menuitems und Buttons nach Action (https://www.delphipraxis.net/207834-umbenennen-aller-menuitems-und-buttons-nach-action.html)

backdraft 7. Mai 2021 16:33

Umbenennen aller Menuitems und Buttons nach Action
 
Hallo,

ich bin auf der Suche nach einem Wizard für die automatisierte Möglichkeit alle Buttons, Menuitems usw, so zu benennen, wie die zugehörige Action heißt.

Beispiel:
Action heisst: actMyAction
Button soll dann heissen: btnMyAction
Menuitem: mmMyAction

Gibt es da was?

Danke
Oliver

KodeZwerg 7. Mai 2021 17:19

AW: Umbenennen aller Menuitems und Buttons nach Action
 
Meinst Du tatsächlich die Namen zur Laufzeit?
Da wüsste ich nicht mal ansatzweise wie das funktionieren sollte.

Wenn Du Caption meinst, da gibt es bestimmt möglichkeiten.

backdraft 7. Mai 2021 17:26

AW: Umbenennen aller Menuitems und Buttons nach Action
 
Ich meine den Namen.
Im CnPack ist z.B. ein Wizard (Prefix Werzzeug) bei, der die Komponenten alle umbenennt mit dem richtigen Prefix.

Aus dem Namen "Action1" macht er "act1".

Es geht mir nicht darum, dass er den Code in den .pas Dateien ändert, sondern die DFM und den Namen oben in der Klassendefinition.

Es geht um die Designtime...

Der Grund ist doch recht simpel.
Ich habe eine Action, die auf einem Button liegt, einem Menüeintrag, usw.
Nennt man die Action um, sollte man ja auch die Namen der verbundenen Komponenten - wenn möglich - syncron halten, oder nicht?
Macht den Quellcode einfach übersichtlicher - finde ich.

backdraft 19. Mai 2021 11:51

AW: Umbenennen aller Menuitems und Buttons nach Action
 
Keiner einen Tipp?

Uwe Raabe 19. Mai 2021 11:57

AW: Umbenennen aller Menuitems und Buttons nach Action
 
Offenbar gibt es da noch nichts.

Delphi.Narium 19. Mai 2021 12:17

AW: Umbenennen aller Menuitems und Buttons nach Action
 
Also ich mache das ganz einfach:

Es gibt nur die TActionList (bzw. einen Nachfahren, der das Weiterbeschrieben erledigt).

Menüeinträge und Buttons werden erst beim Programmstart (also zur Laufzeit) erstellt.

Der TActionList-Nachfahre hat ein Attribut von Typ TPanel, in dem im Objektinspektor das TPanel zugeordent wird, auf dem die Buttons liegen sollen.

Es gibt also ein Panel für die Buttons. Je Action ein TSpeedButton. TAction zuweisen, fertig.

Dem Application.Mainform wird ein TMainMenu spendiert. Für jede Kategorie der TActionList wird ein Menüeintrag gemacht.

Die TActions werden, entsprechend ihrer Kategorie, zu diesen Menüeinträge hinzugefügt.

Namen kann man dann vergeben, wie man will, sie sind im Programmablauf aber nicht wirklich von Bedeutung.

Vorteil: Man spart die redundate Pflege von Buttons, Menüitems, ... und vergisst auch nicht mal versehentlich was :-)

Über die Eigenschaften Enabled, Visible, Tag, GroupIndex, ... kann man ggfls. auch steuern, ob Button bzw. Menüeintrag überhaupt erstellt werden sollen.

Bei mir heißt
GroupIndex = 0: Menüeintrag und Button
GroupIndex = -1: Menüeintrag
GroupIndex = -2: Button
GroupIndex = -3: weder Button noch Menüeintrag

Achso: Funktioniert auch mit mehreren TActionList, sogar, wenn sie auf unterschiedlichen Formularen oder in 'nem, Datamodule, ... liegen, die Menüeinträge befinden sich alle im Hauptmenü des Programmes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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