Version 11 (Geändert)
Terminologie
Die Begriffe Menübefehl und Menüzeile sind gleichbedeutend. Sie werden bei der Beschreibung der Menübefehle abwechselnd verwendet.
MenüRef und Menü Nummern
Die Programmiersprache von 4D bietet zwei Arten zum Verwalten von Menüs und Menüleisten: über Referenzen oder Nummern.
Die Verwaltung über Referenzen (MenüRef) ist die neue Art der Menüverwaltung, die mit 4D Version 11 eingeführt wird. Dieser Modus ermöglicht den Zugriff auf fortschrittliche Funktionen. Sie können vollkommen dynamische Oberflächen erstellen, also Menüs "on the fly", die nicht zuvor im Menüeditor definiert werden müssen. Sie können mehrstufige hierarchische Untermenüs verwalten.
Die Verwaltung über Nummern basiert auf Menüs, die im Menüeditor des Designmodus erstellt werden. Jede Menüleiste und jedes Menü erhält eine feste Nummer, die sich nach der jeweiligen Position im Editor richtet. Über diese Nummer spezifizieren die Befehle der 4D Programmiersprache die Menüleiste oder das Menü, der Einsatzbereich ist beschränkt auf die aktuelle Menüleiste. Dieses Verhalten entspricht den früheren 4D Versionen und hat bestimmte Regeln (siehe unten). Die Verwaltung über Nummern ist weiter möglich, kann aber die in Version 11 neu eingeführten Funktionalitäten nicht nutzen, insbesondere die dynamische Verwaltung von Menüs oder hierarchische Untermenüs. Sie können nicht über Nummern darauf zugreifen.
Beide Arten der Menüverwaltung sind zueinander kompatibel und gleich-zeitig verwendbar. Die meisten Befehle dieses Kapitels akzeptieren Menünummern und Referenzen ohne Unterschied.
Wir empfehlen jedoch die Verwaltung von Menüs über Referenz, da sie mehr Möglichkeiten bietet.
Wurde Ihre Menüoberfläche teilweise oder vollständig über den Menüeditor definiert, lassen sich die Menüs über die Routinen Get menu bar reference und GET MENU ITEMS über Referenzen verwalten.
Menüs über Referenz verwalten
Bei Verwalten durch Referenzen über MenüRef gibt es per se keine Unterscheidung zwischen Menü und Menüleiste. Beide Fälle sind Listen mit Bezeichnungen für Einträge, die sich lediglich in ihrer Verwendung unterscheiden. Bei einer Menüleiste entspricht jeder Eintrag einem Menü, das selbst aus Bezeichnungen für Einträge besteht. Dieses Prinzip verbirgt sich auch hinter hierarchischen Menüs: Jede Bezeichnung für einen Eintrag kann selbst ein Menü sein, usw.
Wird ein Menü über Referenz verwaltet, wird jede während der Sitzung ausgeführte Änderung sofort auf alle anderen Instanzen dieses Menüs innerhalb aller Prozesse der Datenbank übertragen.
MenüRef
Ein per Programmierung erstelltes Menü empfängt, wie hierarchische Listen, eine Referenznummer, auf die Sie während der Sitzung Bezug nehmen können. Diese Referenz, genannt MenüRef, ist eine 16-stellige alphanumerische Nummer. Alle Befehle dieses Kapitels akzeptie-ren entweder diese Referenz oder eine Menünummer, um ein Menü oder eine Menüleiste anzugeben.
Menüreferenzen erhalten Sie über die Routinen Create menu, Get menu bar reference oder GET MENU ITEMS.
Menüs über Nummer verwalten
Menüleisten
Menüleisten werden im Menüeditor des Designmodus definiert. Bei Verwaltung über Nummern wird jede Menüleiste über eine Nummer und einen Namen identifiziert. Die erste Menüleiste legt 4D automatisch an, sie hat die Nummer 1 und lautet standardmäßig Menüleiste # 1. Sie können die Menüleiste im Menüeditor umbenennen. Ihr Name muss einmalig sein und kann bis zu 31 Zeichen lang sein.
Menüleiste #1 ist auch die standardmäßige Menüleiste.Wollen Sie Ihre Anwendung nicht mit Menüleiste 1, sondern mit einer anderen Menüleiste starten, definieren Sie in der Datenbankmethode On Startup über den Befehl SET MENU BAR die gewünschte Menüleiste. Sie können den Inhalt der Menüleiste nicht per Programmierung ändern, jedoch die darin enthaltenen Menüs. Die Reichweite der Programmiersprachebefehle für statische Menüs ist die aktuelle Menüleiste. Bei jedem Aufruf von SET MENU BAR (ohne den Parameter *) kehren alle Menüs und Menübefehle zum ursprünglichen Status zurück, wie er im Menüeditor definiert wurde.
Jede Menüleiste hat standardmäßig drei Menüs, und zwar die Menüs Datei/Ablage, Bearbeiten und Modus.
Das Menü Datei/Ablage enthält nur eine Menüzeile: Beenden. Dieser ist die Standardaktion Beenden zugewiesen. Sie zeigt die Meldung "Sind Sie sicher?" an und beendet die 4D Anwendung bei Bestätigen dieses Fensters. Andernfalls wird die Aktion abgebrochen.
Sie können das Menü umbenennen und weitere Menübefehle hinzufügen. Dabei sollte Beenden immer die letzte Zeile im Menü sein.
Hinweis: Auf Mac OS X wird der Menübefehl mit der zugewiesenen Aktion Beenden automatisch in das Menü der Anwendung gelegt, wenn die Datenbank auf diesem System ausgeführt wird.
Sie können das Menü umbenennen, Menübefehle hinzufügen oder es unverändert lassen. Der Menübefehl Beenden sollte aber immer der letzte Eintrag im Menü Datei/Ablage sein.
Das Menü Bearbeiten enthält standardmäßig die Zeilen zum Bearbeiten. Jeder Zeile ist eine Standardaktion zugewiesen, z.B. Ausschneiden, Kopieren. Sie können weitere Menübefehle hinzufügen oder die Aktionen über eigene Methoden verwalten.
Das Menü Modus enthält den Menübefehl Zurück zur Designumgebung. Damit können Sie von der Anwendungsumgebung zur Designumgebung zurückkehren (sofern verfügbar).
4D verwaltet standardmäßig die Systemmenüs Hilfe und Anwendung (Mac OS X). Die Menüzeile Über 4D können Sie mit dem Befehl SET ABOUT an Ihre Anwendung anpassen. Die anderen Menüzeilen lassen sich nicht verändern.
Warnung: Menüleisten arbeiten auf Interprozessebene, d.h. jede Änderung in einer Menüleiste im Designmodus spiegelt sich in allen Prozessen wieder, die diese Menüleiste verwenden.
Nummern für Menüs und Menübefehle
Wie die Menüleisten werden auch die Menüs von links nach rechts durchnumeriert. Daher hat das Menü Datei/Ablage die Nummer 1, das folgende die Nummer 2 usw. Davon ausgenommen sind das Anwendungsmenü auf Mac OS und das Menü Hilfe auf beiden Plattformen. Beachten Sie, dass die Funktion Count menus diese Menüs nicht berücksichtigt. Enthält Ihre Menüleiste z.B. die Menüs Datei, Bearbeiten, Kunde, Rechnung und Hilfe, gibt Count menus 4 zurück (die von 4D verwalteten Systemmenüs werden nicht mitgezählt).
Diese Nummerierung ist z.B. für die Funktion Menu selected von Bedeutung. Wird ein Menü mit einem Formular zugeordnet, ist die Nummerierung anders. Das erste angehängte Menü beginnt mit der Nummer 2049, die anderen Menüs werden um 1 hochgezählt. Um auf ein angehängtes Menü zu verweisen, fügen Sie 2048 zur normalen Menünummer hinzu.
Die Menüzeilen werden ebenfalls von oben nach unten durchnumeriert, inkl. der dazwischenliegenden Trenner. Das oberste Menü beginnt mit 1.
Verbundene Menüleisten
Sie können einem Formular eine Menüleiste zuweisen. Rufen Sie dazu auf der Seite Allgemein die Formulareigenschaften auf. Wir nennen solche Menüleisten im folgenden "Formularmenüleiste". Erscheint das Formular als Ausgabeformular im Anwendungsmodus, werden die Menüs der Formularmenüleiste bei Aufruf des entsprechenden Formulars an die aktuelle Menüleiste angefügt.
Wird ein Formular mit einer eigenen Menüleiste angezeigt, sind die Befehle der aktuellen Menüleiste standardmäßig deaktiviert, d.h. sie können nicht gewählt werden. Dieses Verhalten können Sie ändern, wenn Sie in den Formulareigenschaften die Option "Aktive Menüleiste" markieren. In diesem Fall bleiben auch die Befehle der aktuellen Menüleiste aktiv.
In beiden Fällen bewirkt die Auswahl eines Menübefehls, dass das Ereignis On Menu Selected an die Formularmethode gesendet wird; Sie können dann mit der Funktion Menu Selected das gewählte Menü testen.
Angefügte Menüs: Sie können Menüs an Menüleisten anfügen. Ändern Sie ein angefügtes Menü über einen Befehl dieses Kapitels, wirkt sich das auf alle anderen Instanzen dieses Menüs aus. Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.
Den Menüs zugewiesene Standardaktionen und Methoden
Jeder Menüzeile können Sie eine Projektmethode oder eine Standardaktion zuweisen. Die Projektmethode wird ausgeführt, sobald die Menüzeile ausgewählt wurde. Weisen Sie einer Menüzeile keine Projektmethode oder Standardaktion zu und wählt der Anwender diese Zeile aus, verlässt 4D die Anwendungsumgebung und wechselt zur Designumgebung. Ist nur die Anwendungsumgebung verfügbar oder hat der Benutzer keinen Zugriff auf die Designumgebung, wird das Programm beendet.
Über Standardaktionen können Sie Operationen ausführen, die zum System gehören (Kopieren, Beenden, etc.) oder zur 4D Datenbank (Datensatz hinzufügen, Alle auswählen, etc.)
Sie können einem Menübefehl auch eine Standardaktion und eine Projektmethode zuweisen. Dann wird die Standardaktion nie ausgeführt; 4D benutzt die Aktion jedoch, um den Menübefehl je nach Kontext zu aktivieren/deaktivieren und um je nach Plattform eine spezifische Operation zuzuweisen. Im Anwendungsmenü unter Mac OS wird z.B. die Aktion Voreinstellungen übergeben. Ist ein Menübefehl deaktiviert, kann die zugeordnete Projektmethode nicht ausgeführt werden.
Menüzeile = -1
Um die Verwaltung von Menüs zu vereinfachen, bietet 4D eine Abkür-zung, um den zuletzt im Menü hinzugefügten Eintrag anzugeben: Dafür müssen Sie lediglich im Parameter MenüZeile den Wert -1 überge-ben. Diese Vorgehensweise können Sie in allen Befehlen dieses Kapitels anwenden, die mit Menüeinträgen arbeiten.