Index: PlanScan/Main.pas =================================================================== diff -u -r350 -r351 --- PlanScan/Main.pas (.../Main.pas) (revision 350) +++ PlanScan/Main.pas (.../Main.pas) (revision 351) @@ -31,6 +31,7 @@ private fUiContext: TUiContext; procedure HuidigeGebruikerAfmelden(); + function GebruikerInloggen(): boolean; public property UiContext: TUiContext Read fUiContext Write fUiContext; end; @@ -59,14 +60,39 @@ fLoginScherm: TfmLogin; fGebruikerAanmeldenResponse: GebruikerAanmeldenResponse; begin + if not GebruikerInloggen then + Application.Terminate; +end; + +procedure TfmMain.HuidigeGebruikerAfmelden; +begin + TAgent.Create(UiContext).GebruikerAfmelden(UiContext.Initialen, UiContext.LoginCode); + UiContext.Initialen := ''; + UiContext.LoginCode := ''; + lblInitialen.Caption := ''; +end; + +procedure TfmMain.lblUitloggenClick(Sender: TObject); +begin + HuidigeGebruikerAfmelden(); + GebruikerInloggen; +end; + +function TfmMain.GebruikerInloggen(): boolean; +var + fLoginScherm: TfmLogin; + fGebruikerAanmeldenResponse: GebruikerAanmeldenResponse; + fInloggenGeslaagd: boolean; +begin + fInloggenGeslaagd := true; fLoginScherm := TfmLogin.Create(self); fLoginScherm.ShowModal; if fLoginScherm.ModalResult = mrOk then begin fGebruikerAanmeldenResponse := TAgent.Create(UiContext).GebruikerAanmelden(fLoginScherm.edtInitialen.Text, fLoginScherm.edtLoginCode.Text); try if fGebruikerAanmeldenResponse.Header.Status <> '200' then begin ShowMessage(fGebruikerAanmeldenResponse.Header.Omschrijving); - Application.Terminate; + fInloggenGeslaagd := false; end else begin UiContext.Initialen := fLoginScherm.edtInitialen.Text; UiContext.LoginCode := fLoginScherm.edtLoginCode.Text; @@ -77,29 +103,17 @@ except on E: Exception do begin ShowMessage(E.Message); - Application.Terminate; + fInloggenGeslaagd := false; end; end; fGebruikerAanmeldenResponse.Free; end else begin - Application.Terminate; + fInloggenGeslaagd := false; end; fLoginScherm.Free; + result := fInloggenGeslaagd; end; -procedure TfmMain.HuidigeGebruikerAfmelden; -begin - TAgent.Create(UiContext).GebruikerAfmelden(UiContext.Initialen, UiContext.LoginCode); - UiContext.Initialen := ''; - UiContext.LoginCode := ''; - lblInitialen.Caption := ''; -end; - -procedure TfmMain.lblUitloggenClick(Sender: TObject); -begin - HuidigeGebruikerAfmelden(); -end; - procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction); begin HuidigeGebruikerAfmelden();