Někteří vývojáři se domnívají, že automatické akce jsou pro začátečníky. Možná jim však uniklo mnoho potenciálu, který jsme v posledních letech přidali. Standardní akce, jako např. First Record nebo color?value=red, lze přiřadit tlačítku v uživatelském rozhraní nebo naprogramovat. Akci lze přiřadit položce nabídky, kontextové nabídce nebo ji vyvolat příkazem. Výhodou je, že 4D také automaticky zpracovává deaktivaci položky nabídky nebo tlačítka, kdykoli se akce nepoužije (například jako v případě, že neexistuje žádný další záznam).
Od verze 4D v16 R3 se seznam standardních akcí rozrůstá: pro 4D Write Pro a Styled Text bylo přidáno více než 100 nových standardních akcí, které umožňují například vytvořit panel nástrojů bez nutnosti psát řádek kódu!
Standardní akce můžete používat třemi různými způsoby:
- Přiřadit standardní akci k objektu: ve fázi návrhu (pomocí seznamu vlastností) nebo naprogramováním.
- Přiřadit standardní akci k položce nabídky: ve fázi návrhu (pomocí panelu nástrojů) nebo programováním.
- Použijte nové příkazy INVOKE ACTION a Get action info příkazy
Přiřadit standardní akci k objektu
Ve fázi návrhu
Pomocí seznamu vlastností můžete přiřadit standardní akci k aktivnímu objektu formuláře. V tomto příkladu je standardní akce Odstranit záznam přiřazena tlačítku.
Další podrobnosti naleznete v tomto článku v dokumentaci.
Programováním
Během běhu aplikace můžete pro aktuální proces dynamicky přiřadit standardní akci k objektu naprogramováním. Tím přepíšete standardní akci definovanou seznamem vlastností.
Chcete například přiřadit Delete Record standardní akci s tlačítkem „btnDelete“:
OBJECT SET ACTION(*; "btnDelete";ak delete record
)nebo pokud použijete hodnotu místo konstanty:
OBJECT SET ACTION(*; "btnDelete"; "deleteRecord").
A pokud místo konstanty použijete hodnotu, můžete akci předat také parametr. V tomto příkladu použijete na vybraný text purpurovou barvu.
OBJECT SET ACTION(*; "btnDelete"; "color?value=magenta")
Další podrobnosti naleznete v dokumentaci k těmto příkazům:
Přiřazení standardní akce k položce nabídky
Ve fázi návrhu
Standardní akci můžete přiřadit položce nabídky pomocí editoru nabídek. Chcete-li například přidat položku nabídky pro otevření Centra údržby a zabezpečení 4D, stačí vybrat položku msc akci jako přiřazenou standardní akci ve vyskakovacím menu:
Při spuštění aplikace se zobrazí nabídka:
Můžete vytvořit dílčí nabídku s nějakou standardní akcí. Chcete-li například přidat dílčí nabídku pro použití stylu písma (například Tučné, Kurzíva…), stačí vybrat položku fontStyle akci jako přidruženou standardní akci ve vyskakovací nabídce:
Při spuštění aplikace se zobrazí nabídka:
Další podrobnosti naleznete v tomto článku dokumentace.
Při programování
Příkazu SET MENU ITEM PROPERTY můžete také předat standardní akci. Pokud od verze 4D v16 R3 předáte příkazu APPEND MENU ITEM místo názvu akce konstantu ak standard action title; 4D použije lokalizovaný název akce.
Chcete-li například ve vyskakovacím menu přidat položku nabídky pro přechod na první, poslední nebo další záznam, napíšete následující kód:
- V metodě 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
- V metodě tlačítka, které zobrazí vyskakovací nabídku:
$val:=Dynamic pop up menu(menu)
Když pak spustíte aplikaci v jiném jazyce, nabídka se zobrazí:
Další podrobnosti naleznete v dokumentaci k těmto příkazům:
- GET MENU ITEM PROPERTY command
- SET MENU ITEM PROPERTY command
- Příkaz APPEND MENU ITEM
- Příkaz INSERT MENU ITEM
INVOKE ACTION příkaz
. INVOKE ACTION příkaz přidaný v 4D v16 R3 spustí standardní akci definovanou parametrem akce, volitelně v položce target kontextu. Chcete-li zjistit, zda je standardní akce použitelná a platná v aktuálním kontextu, můžete použít nový příkaz Get action info příkaz.
Syntaxe je následující:
Chcete-li například změnit otevření MSC, můžete napsat:
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 ("Tato akce není možná. Schránka je prázdná.")
End if
Podrobnější informace naleznete v dokumentaci k těmto příkazům: