Index: PlanScan/Main.pas =================================================================== diff -u -r290 -r293 --- PlanScan/Main.pas (.../Main.pas) (revision 290) +++ PlanScan/Main.pas (.../Main.pas) (revision 293) @@ -41,6 +41,8 @@ procedure tsGebruikersShow(Sender: TObject); procedure btnGebruikerAfmeldenClick(Sender: TObject); procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); private fUiContext: TUiContext; procedure VulDnaCodeGridMetData(DnaCodes: ArrayOfDnaCodeDnaCode); @@ -58,7 +60,7 @@ implementation uses - Agent, typinfo, System.StrUtils; + Agent, typinfo, System.StrUtils, LoginScherm; {$R *.dfm} @@ -179,9 +181,41 @@ procedure TfmMain.FormCreate(Sender: TObject); begin + UiContext := TUiContext.Create(); pcMain.ActivePage := tsDnaCodes; end; +procedure TfmMain.FormShow(Sender: TObject); +var + fLoginScherm: TfmLogin; + fGebruikerAanmeldenResponse: GebruikerAanmeldenResponse; +begin + 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; + end else begin + UiContext.Initialen := fLoginScherm.edtInitialen.Text; + UiContext.LoginCode := fLoginScherm.edtLoginCode.Text; + end; + finally + fGebruikerAanmeldenResponse.Free; + end; + end else begin + Application.Terminate; + end; + fLoginScherm.Free; +end; + +procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction); +begin + TAgent.Create(UiContext).GebruikerAfmelden(UiContext.Initialen, UiContext.LoginCode); +end; + function TfmMain.BepaalGeselecteerdeDnaCodes: TStringList; var DnaCodesStringList: TStringList;