![]() |
Menüeinträge ein-/ausblenden
Guten Morgen, alle miteinander.
Kennt jemand folgendes Problem? Ich habe ein MainMenu in meiner Anwendung, das unter einem Menüpunkt mehrere Menüeinträge besitzt, die durch Linien voneinander abgetrennt sind. Bei den Linien handelt es sich einfach um TMenuItems, deren Caption ein "-" ist. Beispiel: MenuEintrag1 MenuEintrag2 ------------- MenuEintrag3 MenuEintrag4 ------------- MenuEintrag5 MenuEintrag6 Werden einzelne Menüeinträge ausgeblendet (z. B. 3 und 4), so werden auch die überflüssigen Linien automatisch mit ausgeblendet. Im obigen Beispiel würde also nur noch eine der beiden Linien sichtbar sein. In Kontextmenüs funktioniert dieses Verhalten einwandfrei. Im MainMenu bleiben allerdings sporadisch mehrere Linien stehen. Erst wenn ich ein zweites mal dieses Menü aufklappe, werden die überflüssigen Linien nicht mehr gezeichnet (wie gesagt: ein sporadisches Verhalten, teilweise funktioniert es von Anfang an richtig). Gibt es eine Möglichkeit, ein Refresh (oder etwas in der Art) des MainMenu auszulösen, um solche "Leichen" zu vermeiden? :?: |
Re: Menüeinträge ein-/ausblenden
Sporadisch ist immer ein ungutes Zeichen ...
a) Keine Menüeinträge ausblenden, nur deaktivieren. b) Selber die überflüssigen Trennlinien verstecken. |
Re: Menüeinträge ein-/ausblenden
Moin Matthias,
zwar kannst du mit der Methode RethinkLines() eines MenuItem überflüssige Linien ausblenden, aber das geschieht im Regelfall schon automatisch. Vielleicht blendest du zu einem ungünstigen Zeitpunkt aus? Was das Ausblenden von Menüeinträgen generell betrifft, so sollen wir Verben in einem Kontextmenü ausblenden, wenn sie deaktiviert sind, im MainMenu jedoch nicht. Etwas anderes sind dynamische Einträge, wie z.B. eine Liste der zuletzt geschlossenen Dateien oder der gerade offenen Fenster. Diese Einträge sind keine Verben (Befehle, Aktionseinträge) und sollten auch im Hauptmenü ausgeblendet werden. Solche Einträge lassen sich auch sehr gut durch ein Untermenü von den Verben abgrenzen. Die Idee dahinter (SAA/CUA) ist einfach: Der Benutzer soll im Hauptmenü immer alle zur Verfügung stehenden Befehle sehen´können, auch wenn diese gerade nicht zulässig und deshalb deaktiviert sind, damit die Lernkurve etwas steiler wird. Ein Kontextmenü hingegen ist vom Konzept her immer dynamisch, auch wenn dies durch die Möglichkeit im Form Editor jeder Komponente ein eigenes PopupMenu zuweisen zu können nicht so deutlich wird. Grüße vom marabu |
Re: Menüeinträge ein-/ausblenden
Hmmmmm, das ist nicht wirklich das, was mir vorschwebte...
Andererseits kann ich mich der Argumente nicht verschließen und habe es jetzt so geregelt, dass im Hauptmenü die Einträge immer sichbtar, aber entsprechend aktiv/deaktiviert sind, während im Kontextmenü nur die sinnvollen Einträge dargestellt werden. Danke für den Hinweis! :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz