Menue´s

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten

wie "tief" sind eure Menue´s "verschachtelt" ?

nur 1 Submenu tief
1
9%
2 - 3 Submenu tief
10
91%
mehr als 4 Submenu tief
0
Keine Stimmen
 
Insgesamt abgegebene Stimmen: 11

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Menue´s

Beitrag von AUGE_OHR »

hi,

nachdem ich mich nun eine Zeit lang mit dem "ownerdraw Menu"
beschäftigt habe sind paar Ideen gekommen wobei ich nicht weiss
ob das (und wie) mit Xbase++ geht.

1.) Datadictonary für Menue´s ?
Hat das schon mal jemand versucht ?

2.) Sortierung der Menue Item´s zur Laufzeit ?
üblicherweise legt man ja die Reihenfolge fest, aber könnte man
auch ein Menue Item zur Laufzeit auf eine "andere" Position bringen ?
( so wie man bei IE die Favoriten mit der rechten Maustaste auf eine
neue Position bewegen kann)

3.) dito Menue zur Laufzeit erst anlegen ?

4.) wenn ich nun ein "pop-Up" Menue auf der rechten Maustaste habe
wird das Menue, abhängig von der Mausposition, mal nach "oben"
oder auch nach "unten" geöffnet. Klar das der "gewünschte"
Menue Eintrag "immer am anderen Ende" liegt und man erstmal
die Maus in Bewegung setzten muss ...
wie bekomme ich es hin das "immer" nur nach "oben" geöffnet wird ?

5.) Scrollbar im Menue oder "scrollbares" Menu (IE Favoriten) ?

6.) rechte Maustaste im Menue ... was kann man damit machen ?

7.) wenn man die "ALT" Taste drückt um ins Menue zu gelangen
"steht" (modal ?) der Rest der Xbase++ Application. Da dies
nicht passiert wenn man die Maus benutzt fragt ich mich ob es
einen "workaround" für die Tastatur gibt ?

8.) wenn ich in einem "tief verschachtelten" Menue bin und merke
das ich "falsch hier bin" und eigendlich in das "benachbarte" Menue
müsste so hab ich mit der Tastatur ein Problem ... ich muss erst
"zurück" um ins "Nachbar" Menue zu kommen.
Ist ein Submenue "rechts" angelegt so komme ich mit "Cursor rechts"
zum "benachbarten" Menue Punkt, aber nach "links" schliesst es nur
das Submenue (was man auch mit ESC kann) ...

9.) wenn man ein Submenu hat: wie bekomme ich es dazu "automatisch"
zu öffnen wenn man im Menu auf einem solchem Item steht ?

10.) nicht ganz Menue sondern noch höher ... wenn ich auf den "Titlebar"
eines XbpDialog zum maximieren clicke beleibt die Maus auf der
letzten Position. Zum "minimieren" muss ich also mit der Maus
"nach ganz oben". Wenn ich nun "minimiert" habe, hätte ich gerne
auch die Maus wieder auf der "Titlebar", bloss wo ist die jetzt den ?
o:currentPos / o:currentSize gibt mir den Dialog ohne "Titlebar" ?
... und wenn ich "XP Manifest" verwende ist auch der "Titlebar" noch
"höher" ...

würde mich freuen zu Ideen und Kommentaren

gruss by OHR
Jimmy
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Beitrag von Markus Walter »

Hi,

viel kann ich nicht beitragen:
Ich habe das Menü meiner Applikation in einer DBF abgelegt und erzeuge es bei Programmstart aus dieser Datei.

Die Verschachtelungen sind in der Regel 2-3 Stufen tief. Es gibt eine Ausnahme mit 4 und eine mit 5 Ebenen.

Zur Laufzeit zu ändern sollte kein großes Problem sein (habe bei Roger's Express mal sowas gesehen), allerdings musst Du Dir die Referenzen zu den Menüpunkten merken...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Beitrag von Gerd König »

Hallo,

ich würde mit "0" antworten.

In meinen ersten Programmversionen habe ich mit Menüs gearbeitet.

Diese wurden aber immer umfangreicher und geschachtelter.
Damit wuchs auch der Einarbeitungszeitraum für Mitarbeiter. Damit gab es allerdings eine Diskrepanz zur Forderung nach einer sehr kurzen Einarbeitungszeit.

Deshalb steuere ich die Applikationsteile jetzt über 4 Pushbuttons. Zwei davon dienen der Auswahl des Mandanten und der Fertigungsstätte. Diese werden i.d.R. nicht gewechselt. Die beiden anderen dienen der Auswahl der Funktionalität. Dabei öffnet der erste eine Liste mit Modulen (Gruppen von ähnlichen Aufgaben), der zweite öffnet eine Listbox mit Funktionen (Aufgaben zur Gruppe). Die gesamte Basis-Funktionalität befindet sich in einer eigenen Dialogklasse. Die Steuerung erfolgt im wesentlichen durch ein Array (Module, Funktionen, Berechtigungen) und eine überschreibbare Methode (:newFunction()). Diese Methode killt Objekte auf der DrawingArea, erzeugt neue Objekte und initialisiert wenn notwendig Anfangswerte.

Dabei können einzelne Funktionen gleichzeitig in verschiedenen Modulen untergebracht werden. Sowohl zu Modulen als auch zu Funktionen können Berechtigungen hinterlegt werden.

Die letzte Funktion wird beim Beenden des Programms gesichert. Wird das Programm unabhängig vom aktuellen Arbeitsplatz durch den selben Mitarbeiter neu gestartet, wird sofort die zuletzt aufgerufen Funktion (Maske) aufgerufen. An manchen Arbeitsplätzen mit häufig wechselndem Personal werden nur ein oder zwei Module benötigt. Die Einarbeitungszeit konnten wir dashalb gerade an solchen Arbeitsplätzen auf wenige Minuten reduzieren.

Viele Grüße
Gerd
Antworten