Einige Entwickler glauben, dass automatische Aktionen nur etwas für Anfänger sind. Sie haben jedoch möglicherweise eine Menge Potenzial verpasst, das wir in den letzten Jahren hinzugefügt haben. Standard-Aktionen, wie First Record oder color?value=redkönnen einer Schaltfläche in der Benutzeroberfläche oder durch Programmierung zugewiesen werden. Die Aktion kann einem Menüpunkt oder Kontextmenü zugewiesen oder mit einem Befehl aufgerufen werden. Ein Vorteil ist, dass 4D auch automatisch die Deaktivierung des Menüpunkts oder der Schaltfläche vornimmt, wenn die Aktion nicht anwendbar ist (z. B. wenn es keinen nächsten Datensatz gibt).
Und ab 4D v16 R3 wächst die Liste der Standardaktionen: über 100 neue Standardaktionen wurden für 4D Write Pro und Styled Text hinzugefügt , mit denen Sie z. B. eine Symbolleiste erstellen können, ohne eine Zeile Code zu schreiben!
Zusammenfassend lässt sich sagen, dass Sie Standardaktionen auf 3 verschiedene Arten verwenden können:
- Zuordnen einer Standardaktion zu einem Objekt: in der Entwurfsphase (über die Eigenschaftsliste) oder durch Programmierung
- Zuordnen einer Standardaktion zu einem Menüpunkt: in der Entwurfsphase (über die Toolbox) oder durch Programmierung
- Verwenden Sie die neuen INVOKE ACTION und Get action info Befehle
Zuordnen einer Standardaktion zu einem Objekt
In der Entwurfsphase
Mit Hilfe der Eigenschaftsliste können Sie eine Standardaktion mit einem aktiven Formularobjekt verknüpfen. In diesem Beispiel ist die Standardaktion Datensatz löschen einer Schaltfläche zugeordnet.
Weitere Einzelheiten finden Sie in diesem Artikel der Dokumentation.
Durch Programmierung
Während der Laufzeit der Anwendung können Sie für den aktuellen Prozess eine Standardaktion dynamisch mit einem Objekt verknüpfen, indem Sie es programmieren. Damit überschreiben Sie die per Eigenschaftsliste definierte Standardaktion.
Sie möchten zum Beispiel die Delete Record Standardaktion mit einer Schaltfläche „btnLöschen“ verbinden:
OBJECT SET ACTION(*; "btnDelete";ak delete record)
oder wenn Sie den Wert statt der Konstante verwenden:
OBJECT SET ACTION(*; "btnDelete"; "deleteRecord")
Wenn Sie den Wert anstelle einer Konstante verwenden, können Sie der Aktion auch einen Parameter übergeben. In diesem Beispiel wenden Sie die Farbe Magenta auf einen ausgewählten Text an.
OBJECT SET ACTION(*; "btnDelete"; "color?value=magenta")
Weitere Einzelheiten finden Sie in der Dokumentation zu diesen Befehlen:
Zuordnen einer Standardaktion zu einem Menüpunkt
In der Entwurfsphase
Mit dem Menü-Editor können Sie einem Menüpunkt eine Standardaktion zuweisen. Um z.B. einen Menüpunkt zum Öffnen des 4D Wartungs- und Sicherheitscenters hinzuzufügen, wählen Sie einfach die msc Aktion als zugehörige Standardaktion im Popup-Menü:
Wenn Sie Ihre Anwendung ausführen, wird das Menü angezeigt:
Sie können ein Untermenü mit einer Standardaktion erstellen. Um z.B. ein Untermenü zum Anwenden eines Schriftstils (wie Fett, Kursiv…) hinzuzufügen, wählen Sie einfach die fontStyle Aktion als zugehörige Standardaktion im Popup-Menü aus:
Wenn Sie Ihre Anwendung ausführen, wird das Menü angezeigt:
Weitere Einzelheiten finden Sie in diesem Artikel der Dokumentation.
Durch Programmierung
Sie können auch eine Standardaktion an den Befehl SET MENU ITEM PROPERTY übergeben. Seit 4D v16 R3, wenn Sie die Konstante ak standard action title anstelle eines Titelnamens an den Befehl APPEND MENU ITEM übergeben, verwendet 4D den lokalisierten Aktionsnamen.
Um beispielsweise in einem Popup-Menü einen Menüpunkt hinzuzufügen, der zum ersten, letzten oder nächsten Datensatz führt, schreiben Sie den folgenden Code:
- In der Methode Form:
Case of
: (Form event=On Load) := ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) : ( = ) ( )
// create menu
menuCreate menu
//insert first record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak first record
//insert last record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak last record
//insert next record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak next record
Form eventOn Unload
// release menu
RELEASE MENUmenu
End case
- In der Schaltflächenmethode, die das Popup-Menü anzeigt:
$val:=Dynamic pop up menu(menu)
Wenn Sie dann Ihre Anwendung in einer anderen Sprache ausführen, wird das Menü angezeigt:
Weitere Einzelheiten entnehmen Sie bitte der Dokumentation zu diesen Befehlen:
- GET MENU ITEM PROPERTY command
- SET MENU ITEM PROPERTY command
- Befehl APPEND MENU ITEM
- Befehl INSERT MENU ITEM
INVOKE ACTION Befehl
Der Befehl INVOKE ACTION Befehl, der in 4D v16 R3 hinzugefügt wurde, löst die Standardaktion aus, die durch den Aktionsparameter definiert ist, optional im target Kontext. Um zu wissen, ob die Standardaktion im aktuellen Kontext anwendbar und gültig ist, können Sie den neuen Get action info Befehl.
Die Syntax lautet:
INVOKE ACTION ( action {; target} )
Um zum Beispiel das Öffnen des MSC zu ändern, können Sie schreiben:
C_OBJECT($actionInfo)
// Check if this standard action is available and valid in this current context
$actionInfo :=Get action info(ak paste;ak current form)
If (OB Get($actionInfo; "enabled"))
// This standard action is enabled
INVOKE ACTION (ak paste;ak current form)
Else
ALERT ("Diese Aktion ist unmöglich. Die Zwischenablage ist leer.")
End if
Für weitere Details lesen Sie bitte die Dokumentation zu diesen Befehlen: