unit LoginScherm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DrieKnoppenScherm, Vcl.ActnList, Vcl.StdCtrls, Images, Vcl.ImgList, Vcl.ExtCtrls; type TfmLoginScherm = class(TfmDrieKnoppenScherm) lblWelkom: TLabel; lblGeefPincodeIn: TLabel; edtPincode: TEdit; lblInitialen: TLabel; edtInitialen: TEdit; procedure edtPincodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure edtInitialenKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormShow(Sender: TObject); procedure actAfsluitenExecute(Sender: TObject); procedure actVolgendeExecute(Sender: TObject); private procedure SetStatusButtonRechtsOnderaan; procedure SetContext; procedure HuidigeGebruikerAfmelden; public end; var fmLoginScherm: TfmLoginScherm; implementation uses GebruikerService, UiContext; {$R *.dfm} procedure TfmLoginScherm.actAfsluitenExecute(Sender: TObject); begin Self.ModalResult := mrAbort; HuidigeGebruikerAfmelden; end; procedure TfmLoginScherm.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 TfmLoginScherm.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 TfmLoginScherm.edtInitialenKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin inherited; SetStatusButtonRechtsOnderaan; end; procedure TfmLoginScherm.edtPincodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin inherited; SetStatusButtonRechtsOnderaan; end; procedure TfmLoginScherm.FormShow(Sender: TObject); begin HuidigeGebruikerAfmelden; actRechtsOnder := actVolgende; actLinksOnder := actAfsluiten; btnRechtsOnder.Action := actRechtsOnder; btnLinksOnder.Action := actAfsluiten; SetStatusButtonRechtsOnderaan; inherited; end; procedure TfmLoginScherm.SetContext; begin UiContext.Initialen := edtInitialen.Text; UiContext.LoginCode := edtPinCode.Text; end; procedure TfmLoginScherm.SetStatusButtonRechtsOnderaan; begin btnRechtsOnder.Enabled := ((edtPincode.Text <> '') and (edtInitialen.Text <> '')); end; end.