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,