So, ich habe natürlich weiter probiert und gelesen und bin auf die Frage gestoßen, wann die CallBack Procedure ausgeführt wird und ob eine andere Funktion auf das Ergebnis wartet?
Delphi-Quellcode:
procedure TForm_LogIn.WebFormCreate(Sender: TObject);
begin
if Data_Module.xConnection_connect then begin
Data_Module.Get_Sprache;
Label_LoginTitel.DataSource:=Data_Module.DSC_Sprache;
Label_LoginTitel.DataField:='login_Titel';
Label_LogInUser.DataSource:=Data_Module.DSC_Sprache;
Label_LogInUser.DataField:='login_lable_username';
Label_LogInPasswort.DataSource:=Data_Module.DSC_Sprache;
Label_LogInPasswort.DataField:='login_label_passwort';
end;
end;
Hier rufe ich als erstes die Funktion xConnection_connect auf, die ein booloean als Result hat.
Delphi-Quellcode:
function TData_Module.xConnection_connect: boolean;
procedure OnConnect;
begin
Result:= true;
end;
procedure OnError(Error: TXDataWebConnectionError);
begin
Result:= false;
ShowMessage('XData server connection failed with error: ' +
Error.ErrorMessage);
end;
begin
Result:= false;
if xConnection.Connected then begin
Result:= true;
end
else begin
xConnection.Open(@OnConnect, @OnError);
end;
end;
In dieser Funktion prüfe ich ab, ob die Connection eine Verbindung hat oder nicht.
if xConnection.Connected
Wenn nicht soll sie hergestellt werden.
xConnection.Open(@OnConnect, @OnError);
In den CallBacks wird dann der Result-Wert der Function xConnection_connect gesetzt.
Delphi-Quellcode:
procedure OnConnect;
begin
Result:= true;
end;
Delphi-Quellcode:
procedure OnError(Error: TXDataWebConnectionError);
begin
Result:= false;
ShowMessage('XData server connection failed with error: ' +
Error.ErrorMessage);
end;
Da die CallBacks ja erst im Falle einer Antwort seitens der xConnection aufgerufen werden, dachte ich, dass ich meine Anwendung solange "anhalte". Ist das so? Bleibt die Anwendung in der
procedure TForm_LogIn.WebFormCreate(Sender: TObject);
stehen, bis der Result-Wert von Data_Module.xConnection_Connect kommt?
Vielen Dank
Patrick