unit LoginScherm2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.pngimage, Vcl.ExtCtrls, DrieKnoppenScherm, Images, Vcl.StdCtrls, Vcl.ActnList; type TfmLoginScherm2 = class(TfmDrieKnoppenScherm) Image1: TImage; btnLogin: TButton; edtPincode: TEdit; edtInitialen: TEdit; btnAfmelden: TButton; procedure FormShow(Sender: TObject); procedure edtInitialenKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure edtPincodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure actVolgendeExecute(Sender: TObject); procedure btnAfmeldenClick(Sender: TObject); private procedure SetStatusLoginButton; procedure HuidigeGebruikerAfmelden; procedure SetContext; public { Public declarations } end; var fmLoginScherm2: TfmLoginScherm2; implementation uses GebruikerService, UiContext; {$R *.dfm} procedure TfmLoginScherm2.actVolgendeExecute(Sender: TObject); var Service: GebruikerServiceSoap; Request: GebruikerAanmeldenRequest; Response: GebruikerAanmeldenResponse; Header: RequestHeader; begin Service := GebruikerService.GetGebruikerServiceSoap(); // request opbouwen Request := GebruikerAanmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := edtInitialen.Text; Request.LoginCode := edtPinCode.Text; Header.Initialen := edtInitialen.Text; Header.ComputerNaam := ComputerName(); Request.Header := Header; Response := Service.GebruikerAanmelden(Request); try if Response.Header.Status <> '200' then begin Self.ModalResult := mrLogin; ToonPopupScherm(Response.Header.Omschrijving, 'Probeer opnieuw') end else begin SetContext; lblGebruiker.Caption := UiContext.Initialen; lblGebruiker.Visible := true; Self.ModalResult := mrHome; end; finally Response.Free; end; finally Request.Free; end; end; procedure TfmLoginScherm2.btnAfmeldenClick(Sender: TObject); begin Self.ModalResult := mrAbort; HuidigeGebruikerAfmelden; end; procedure TfmLoginScherm2.edtInitialenKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin SetStatusLoginButton; if Key = VK_RETURN then begin Perform(CM_DIALOGKEY, VK_TAB, 0); Key := 0; end; end; procedure TfmLoginScherm2.edtPincodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin SetStatusLoginButton; if Key = VK_RETURN then begin Perform(CM_DIALOGKEY, VK_TAB, 0); Key := 0; end; end; procedure TfmLoginScherm2.FormShow(Sender: TObject); begin HuidigeGebruikerAfmelden; pnlDrieKnoppen.Visible := False; pnlTop.Visible := False; SetStatusLoginButton; end; procedure TfmLoginScherm2.HuidigeGebruikerAfmelden; var Service: GebruikerServiceSoap; Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := UiContext.Initialen; Request.LoginCode := UiContext.LoginCode; Header.Initialen := UiContext.Initialen; Request.Header := Header; Service.GebruikerAfmelden(Request); finally Request.Free; end; end; procedure TfmLoginScherm2.SetContext; begin UiContext.Initialen := edtInitialen.Text; UiContext.LoginCode := edtPinCode.Text; end; procedure TfmLoginScherm2.SetStatusLoginButton; begin btnLogin.Enabled := ((edtPincode.Text <> '') and (edtInitialen.Text <> '')); end; end.