In Mercator kunt u het afsluiten van Mercator controleren, en eventueel verrichtingen in een module activeren.
Deze module illustreert hoe u een gepersonaliseerde code moet uitvoeren bij het opstarten van Mercator. Deze code maakt gebruik van een customizer van het type Main, die de interface MercatorUi.ICustomizers.IExec implementeert.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Reflection;
using System.Windows.Forms;
namespace Main
{
public class Customizer : MercatorUi.ICustomizers.IExec
{
public void Main(MercatorUi.ICustomizers.ExecAction Action)
{
if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
{
System.Windows.Forms.Form form = (System.Windows.Forms.Form)MercatorUi.Globals.StarterMainForm;
form.FormClosing += new System.Windows.Forms.FormClosingEventHandler(formClosingEventHandler);
}
if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
{
System.Windows.Forms.Form form = (System.Windows.Forms.Form)MercatorUi.Globals.StarterMainForm;
form.FormClosing -= new System.Windows.Forms.FormClosingEventHandler(formClosingEventHandler);
}
}
void formClosingEventHandler(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
System.Windows.Forms.Form form = (System.Windows.Forms.Form)sender;
if (Dialogs.AnswerYesNo("Voulez-vous vraiment fermer Mercator ?"))
form.FormClosing -= new System.Windows.Forms.FormClosingEventHandler(formClosingEventHandler);
else
e.Cancel = true;
}
}
}
Aruba / legacy versies
Daartoe moet u in de hoofddirectory van Mercator een bestand block_quit.fxp plaatsen, dat werd gecompileerd uit block_quit.prg. Deze module moet het volgende genereren:
- return .T. om het afsluiten van Mercator tegen te houden,
- return .F. om het afsluiten van Mercator toe te staan.
In het bijgevoegde zipbestand zit een eenvoudig voorbeeld van een "block_quit"-module.
Mercator reageert op dezelfde manier wanneer het bestand block_quit.mai (Mercator Assembly Info) wordt gedetecteerd; dit bestand zorgt immers voor de activering van een methode van een klasse van een dotnet-assembly. Deze methode moet een "Boolean"-type genereren.