PDA

View Full Version : Extension mehrfach registriert => keine Extension



Richard
29-01-2015, 01:02
Ich registriere entsprechend des Beispielcodes Extensions mit

Function Init()
{
ScriptContext.EnableExtension();

Var Filter As CGuiEventFilter = CGuiEventFilter.Create().AddControl(EGuiControl.Sh ipList_ShipTable);
ScriptContext.RegisterEvent(EGuiEventType.TableBef oreCreate, AddressOf CallBack_TableBeforeCreate, Filter);
ScriptContext.RegisterEvent(EGuiEventType.TableAft erHeadAdded, AddressOf CallBack_HeadAdded, Filter);
ScriptContext.RegisterEvent(EGuiEventType.TableAft erRowAdded, AddressOf CallBack_RowAdded, Filter);

ScriptContext.ActivateEvents();
}
Init();


Das funktioniert beim 1. Aufruf auch. Das Script tut. Beim 2. Aufruf von Init verschwindet die extension einfach unwiederbringlich. Hab auch versucht vor dem ScriptContext.RegisterEvent ein ScriptContext.UnRegisterEvent zu machen. Hat auch nicht weiter geholfen. Wie kann ich Init ein 2. mal aufrufen, z.B. wenn ich Events ändern möchte?

Richard
29-01-2015, 01:26
Noch ein vollständiges Beispiel:

Script 1x ausgeführt: Auf jeder STNE-Seite steht "Page load..."
mehr als 1x ausgeführt: Nix mehr zu sehen und auch nicht mehr wiederherzustellen. => Script neu anlegen.


#UseInterface Web, Gui;

Function Init()
{


ScriptContext.EnableExtension();

ScriptContext.RegisterEvent(EGuiEventType.PageBefo reCreateControls, AddressOf CallBack_BeforeCreateControls);

Var Filter As CGuiEventFilter = CGuiEventFilter.Create().AddControl(EGuiControl.Sh ipList_ShipTable);
ScriptContext.RegisterEvent(EGuiEventType.TableBef oreCreate, AddressOf CallBack_TableBeforeCreate, Filter);
ScriptContext.RegisterEvent(EGuiEventType.TableAft erRowAdded, AddressOf CallBack_RowAdded, Filter);
ScriptContext.RegisterEvent(EGuiEventType.TableAft erCreate, AddressOf CallBack_TableAfterCreate, Filter);

ScriptContext.RegisterEvent(EGuiEventType.InfoBarA fterCreate, AddressOf CallBack_InfoBarAfterCreate);
ScriptContext.ActivateEvents();


}




Function CallBack_BeforeCreateControls(e As CGuiEventOnPageBeforeCreateControls)
{

ScriptContext.WriteAppLog('Page load...');
}

Function CallBack_TableBeforeCreate(e As CGuiEventOnTableBeforeCreate)
{
ScriptContext.WriteAppLog('Page load...');
}

Function CallBack_RowAdded(e As CGuiEventOnTableAfterRowAdded)
{
ScriptContext.WriteAppLog('Page load...');
}

Function CallBack_TableAfterCreate(e As CGuiEventOnTableAfterCreate)
{
ScriptContext.WriteAppLog('Page load...');
}

Function CallBack_InfoBarAfterCreate(e As CGuiEventOnInfoBarAfterCreate)
{
ScriptContext.WriteAppLog('Page load...');

}


Init();