Delphi-PRAXiS

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/)
-   -   VCL: Menu Merge(): 'auto unmerge' Problem (https://www.delphipraxis.net/186243-vcl-menu-merge-auto-unmerge-problem.html)

Michaell 17. Aug 2015 14:16

VCL: Menu Merge(): 'auto unmerge' Problem
 
Hallo,

ich habe eine SDI Anwendung mit einem Hauptmenu. Je nach Bedarf erweitere ich dieses Hauptmenu mit "Untermenüs" via der Prozedur "Merge();".
Dies funktioniert auch soweit allerdings verliert sich der Merge nach (fast) jeder Dialogbox die im Programm geöffnet wird. Genau das ist mein Problem. Ich führe dieses Verhalten auf das automatische "unmerge" zurück. In der Embarcadero Hilfe steht dazu:
To merge and unmerge main menus automatically when other forms are displayed, change the value of the AutoMerge property to true on all forms whose menus should be merged in.
Deshalb dachte ich, das automatische Unmerge kann ich los werden indem ich die "AutoMerge" Eigenschaft der Untermenüs (vom Typ 'TMainMenu') auf "false" setze. Anscheinend hat dies aber überhaupt keine Auswirkung auf das Menüverhalten. Weiß jemand wie ich das automatische Unmerge verhindern kann? Vielen Dank.

Grüße!

Michael

hoika 27. Aug 2015 04:37

AW: VCL: Menu Merge(): 'auto unmerge' Problem
 
Hallo,
du hast aber schon AutoMerge des Mainmenus auf False?
Da das AutoMerge ja für MDI's gedacht ist,
ist das Verhalten ja richtig,
dann hilft hier nur händisch programmieren...


Heiko

Michaell 28. Aug 2015 12:44

AW: VCL: Menu Merge(): 'auto unmerge' Problem
 
Danke aber Du liegst hier nicht richtig bezüglich MDI / SDI (von docs.embarcadero.com):
"Determines if the main menus of secondary forms merge with the main menu of the main form in non-MDI applications at runtime."

Und ja: Das Hauptmenü ist auf "AutoMerge = False" gesetzt.

Grüße!
Michael

mm1256 28. Aug 2015 13:32

AW: VCL: Menu Merge(): 'auto unmerge' Problem
 
Hallo,

du musst dich halt mal entscheiden, ob du AutoMerge haben willst, oder nicht. Wenn du es NICHT haben willst, dann musst du dich eben um die Sichtbarkeit selber kümmern. Wobei das bei den SDI-Apps noch den Unterschied macht, ob in den Unterfenstern generell ein Menü angezeigt werden soll. Ich verwende AutoMerge schon seit vielen Jahren sowohl in MDI- als auch in MDI-Apps, und habe aktuell keine Probleme damit. Alles WAD. Jedoch erinnere ich mich, dass früher mal (ich glaube es war mit D7) Probleme beim MenueMerge mit SDI-Apps existiert haben. Darum wäre es erst mal gut, wenn du in deinem Profil angeben würdest, welche Delphi-Version du verwendest.

PS: Ideal ist die Kombination MenueMerge und Actions, weil du dann die Möglichkeit hast im Event "OnUpdate" einzugreifen.

Michaell 28. Aug 2015 17:30

AW: VCL: Menu Merge(): 'auto unmerge' Problem
 
"... du musst dich halt mal entscheiden, ob du AutoMerge haben willst, oder nicht." ? Ich möchte das es so läuft, das ich nicht mit Workarounds ala "OnUpdate" arbeiten muß. Workarounds habe ich in Verwendung aber sie gefallen mir nicht.
"...wenn du in deinem Profil angeben würdest, welche Delphi-Version du verwendest." Das habe ich deshalb nicht angegeben, weil ich den C++ Builder XE7 verwende.

mm1256 28. Aug 2015 18:11

AW: VCL: Menu Merge(): 'auto unmerge' Problem
 
Zitat:

Zitat von Michaell (Beitrag 1313822)
"... du musst dich halt mal entscheiden, ob du AutoMerge haben willst, oder nicht." ? Ich möchte das es so läuft, das ich nicht mit Workarounds ala "OnUpdate" arbeiten muß. Workarounds habe ich in Verwendung aber sie gefallen mir nicht.

Irrtum: "OnUpdate" ist kein Workaround sondern eine ganz normale Möglichkeit, MenueItems oder alles Anderes was an den Actions hängt zu aktivieren/deaktivieren.

Zitat:

Zitat von Michaell (Beitrag 1313822)
"...wenn du in deinem Profil angeben würdest, welche Delphi-Version du verwendest." Das habe ich deshalb nicht angegeben, weil ich den C++ Builder XE7 verwende.

Und warum kannst/willst du das nicht angeben? Es ist ja keine Schande den C++ Builder zu verwenden :oops:

Michaell 1. Sep 2015 15:17

AW: VCL: Menu Merge(): 'auto unmerge' Problem
 
Zitat:

Zitat von mm1256
Und warum kannst/willst du das nicht angeben? Es ist ja keine Schande den C++ Builder zu verwenden

Es ist nicht möglich den C++ Builder auszuwählen (dieses Forum heißt ja auch "Delphi-Praxis").

mm1256 1. Sep 2015 15:24

AW: VCL: Menu Merge(): 'auto unmerge' Problem
 
Schei....benkleister. Sollte man(n) mal bei Daniel "reklamieren" :?:


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