Beispiel - EvtInit / EvtTerm
Beispiel - EvtInit / EvtTerm Anzeigen eines Dialoges an der zuletzt geöffneten Stelle
Die Ereignisse EvtInit und EvtTerm werden beim Laden und Entladen eines Objektes aufgerufen. In diesem Beispiel wird davon ausgegangen, das die Funktionen EvtInit und EvtTerm bei einem Frame-Objekt bei den entsprechenden Ereignissen eingetragen wurden.
In der Datenbank ist die Datei fPersonalGui angelegt, in der benutzer- und objektabhängig die Koordinaten von Frame-Objekten gespeichert werden.
sub EvtInit
(
aEvt : event; // Ereignis
) : logic;
{
UserInfo(_UserCurrent);
PgiUser # UserInfo(_UserName);
PgiObjName # aEvt:Obj->wpName;
if (RecRead(fPersonalGui, kPgiUserObject, 0) < _rMultiKey)
{
// letzte Position des Frames setzen
aEvt:Obj->wpAreaTop # PgiFrmTop;
aEvt:Obj->wpAreaLeft # PgiFrmLeft;
aEvt:Obj->wpAreaRight # PgiFrmRight;
aEvt:Obj->wpAreaBottom # PgiFrmBottom;
}
return(true);
}
sub EvtTerm
(
aEvt : event; // Ereignis
) : logic;
local
{
tErg : int;
}
{
UserInfo(_UserCurrent);
PgiUser # UserInfo(_UserName);
PgiObjName # aEvt:Obj->wpName;
tErg # RecRead(fPersonalGui, kPgiUserObject, _RecLock);
// letzte Position des Frames ermitteln
PgiFrmTop # aEvt:Obj->wpAreaTop;
PgiFrmLeft # aEvt:Obj->wpAreaLeft;
PgiFrmRight # aEvt:Obj->wpAreaRight;
PgiFrmBottom # aEvt:Obj->wpAreaBottom;
switch (tErg)
{
case _rOk :
{
// Position speichern
RecReplace(fPersonalGui, _RecUnlock);
}
case _rNoRec :
{
// Position in neuem Datensatz speichern
RecInsert(fPersonalGuo, _RecUnlock);
}
}
return(true);
}