Thema: Delphi Verschmelzende Menus

Einzelnen Beitrag anzeigen

Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

Verschmelzende Menus

  Alt 8. Sep 2006, 15:05
Hallo zusammen.

Dieses Beispielprojekt ermöglicht es, mehrere Child-Windows in ein PageControl "einzudocken". Außerdem wird das MainMenu dynamisch angepasst, je nachdem, welche Seite im PageControl angezeigt wird. Das ganze wird auf der Basis der doch recht dürftig dokumentierten Funktion TMainMenu.Merge gemacht.

Merge verschmelzt zwei TMainMenus miteinander und generiert dadurch ein einziges. Die Eigenschaft GroupIndex eines Menutitels bestimmt, ob ein vorhandener erstetzt wird oder ob er neu angehangen wird. Im Detail steht dies in der Delphi-Hilfe unter dem Punkt TMenuItem.GroupIndex.

In dem Beispielprojekt habe ich im Hauptformular insgesamt 3 TMainMenus benutzt ( ). "MainMenu" ist das Basismenü, welches immer sichtbar ist. "HelperMenu" und "EmptyMenu" werden dynamisch verwendet, um das Hauptmenü zu ergänzen und diese Einträge auch wieder entfernen zu können. Der Grund für 3 Menüs liegt darin, dass auf diese Weise auch ChildWindows ohne TMainMenu - Komponente eingebunden werden können. In diesem Falle wird MainMenu mit dem EmptyMenu verschmolzen, welches natürlich keine Änderung erzielt. Es ist auf diese Weise extrem einfach, neue Elemente hinzuzufügen.

Ich hoffe es besteht Interesse daran und freue mich über viel Feedback.

Grüße

Thomas aka Codewalker
Angehängte Dateien
Dateityp: exe mergemenusexample_123.exe (1,07 MB, 180x aufgerufen)
Dateityp: zip mergemenus_225.zip (3,9 KB, 80x aufgerufen)
  Mit Zitat antworten Zitat