AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Menüeinträge ein-/ausblenden

Ein Thema von mjenke · begonnen am 13. Nov 2007 · letzter Beitrag vom 13. Nov 2007
Antwort Antwort
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Menüeinträge ein-/ausblenden

  Alt 13. Nov 2007, 07:30
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?

Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Menüeinträge ein-/ausblenden

  Alt 13. Nov 2007, 08:33
Sporadisch ist immer ein ungutes Zeichen ...

a) Keine Menüeinträge ausblenden, nur deaktivieren.
b) Selber die überflüssigen Trennlinien verstecken.
Chris
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Menüeinträge ein-/ausblenden

  Alt 13. Nov 2007, 10:15
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
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#4

Re: Menüeinträge ein-/ausblenden

  Alt 13. Nov 2007, 15:06
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!

Matthias Jenke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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