CallbackInfo()
CallbackInfo() – Callback-Objekt für Rückfrage-Funktionen
CallbackInfo erzeugt ein Callback-Objekt, mit dem Funktionsaufrufe als Parameter übergeben werden können.
Hinweis
Callback-Funktionen müssen formal folgenden Funktionskopf aufweisen: function AnyCallbackFunc(oCallbackInfo).
Der Callback-Funktion wird das Callback-Objekt als Parameter übergeben. Die Callback-Funktion muss einen Wert (wie unter Execute beschrieben) als Result ausgeben, der der Ausführung des Dialogfelds entspricht.
Wird mrNone zurückgegeben, erscheint ein Dialog entsprechend der Eigenschaften des Callback-Objekts. Jeder andere Rückgabewert unterdrückt den Dialog. Instanzen von TCbCallbackInfo werden vom Codeblock verwaltet. Die Verwendung von DestroyObject ist optional.
Derzeit nutzen die Funktionen 'ProdOrdFinish()' und 'FTSReorgTable()' einen Parameter diesen Typs.
Parameter | Beschreibung |
---|---|
cFuncName:C | Name der Funktion, die über das Callback-Objekt aufgerufen werden soll. Die Funktion muss existieren. |
Rückgabewert
Objekt vom Typ TCbCallbackInfo.
Eigenschaften von TCbCallbackInfo:
MessageID: wird vom Programm gesetzt, falls in einer Funktion verschiedene Rückfragen vorkommen
MsgText:Text der Meldung
DlgType:Dialogfeldtyp (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom)
Buttons:Schalter, die angezeigt werden sollen (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry,
mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp)
Result:Während der Callback-Funktion:Vorgabewert für Result, sonst Ergebnis des letzten Aufrufs
der Funktion
Execute:Startet die Callback-Funktion und liefert das Ergebnis der Callback-Funktion bzw. des Dialoges
(mrNone, mrOk, mrCancel, mrAbort, mrRetry, mrIgnore, mrYes, mrNo)
Beispiel
| oCallback |
function MyCallbackFunction(oCallback:O)
WriteLn('"CallbackFunction" wurde aufgerufen mit MessageID: ' + Str(oCallback.MessageID)),
case oCallback.MessageID
of 1 :: Result := mrNo,
of 2 :: Result := mrNone,
endcase,
end,
oCallback:= CallbackInfo('MyCallbackFunction'),
StartSeq,
oCallback.DlgType := mtConfirmation,
oCallback.Buttons := _OR(mbCancel, mbRetry),
oCallback.MsgText := 'Der Zugriff auf die Datei war nicht möglich!',
oCallback.MessageID := 1,
oCallback.Execute, // erster Aufruf
writeln('Antwort der Funktion: ' + Str(oCallback.Result)),
oCallback.MessageID := 2,
oCallback.Execute, // zweiter Aufruf
writeln('Antwort der Funktion: ' + Str(oCallback.Result)),
Always,
DestroyObject(oCallback),
StopSeq,