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; type TfmLoginScherm = class(TfmDrieKnoppenScherm) actAfsluiten: TAction; lblWelkom: TLabel; lblGeefPincodeIn: TLabel; edtPincode: TEdit; lblInitialen: TLabel; edtInitialen: TEdit; procedure FormCreate(Sender: TObject); procedure edtInitialenKeyPress(Sender: TObject; var Key: Char); procedure btnLinksOnderClick(Sender: TObject); procedure btnRechtsOnderClick(Sender: TObject); procedure edtPincodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure edtInitialenKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormShow(Sender: TObject); private procedure SetStatusButtonRechtsOnderaan; public function GeefInitialen: string; function GeefLoginCode: string; end; var fmLoginScherm: TfmLoginScherm; implementation uses GebruikerService, PopupScherm; {$R *.dfm} procedure TfmLoginScherm.btnLinksOnderClick(Sender: TObject); var Service: GebruikerServiceSoap; Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin inherited; Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := edtInitialen.Text; Request.LoginCode := edtPincode.Text; Header.Initialen := edtInitialen.Text; Request.Header := Header; Service.GebruikerAfmelden(Request); Self.ModalResult := mrAbort; finally Request.Free; end; end; procedure TfmLoginScherm.btnRechtsOnderClick(Sender: TObject); var Service: GebruikerServiceSoap; Request: GebruikerAanmeldenRequest; Response: GebruikerAanmeldenResponse; PopupScherm: TfmPopupScherm; begin Service := GebruikerService.GetGebruikerServiceSoap(); // request opbouwen Request := GebruikerAanmeldenRequest.Create; try Request.Initialen := edtInitialen.Text; Request.LoginCode := edtPincode.Text; Response := Service.GebruikerAanmelden(Request); try if Response.Header.Status <> '200' then begin Self.ModalResult := mrRetry; PopupScherm := TfmPopupScherm.Create(self); PopupScherm.lblWaarschuwing.Caption := Response.Header.Omschrijving; PopupScherm.btnPopupActie.Caption := 'Probeer opnieuw'; PopupScherm.ShowModal; end else begin lblGebruiker.Caption := edtInitialen.Text; lblGebruiker.Visible := true; Self.ModalResult := mrOk; end; finally Response.Free; end; finally Request.Free; end; end; procedure TfmLoginScherm.edtInitialenKeyPress(Sender: TObject; var Key: Char); begin inherited; Key := upcase(Key); 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.FormCreate(Sender: TObject); begin inherited; actRechtsOnder := actVolgende; actLinksOnder := actAfsluiten; end; procedure TfmLoginScherm.FormShow(Sender: TObject); begin inherited; btnRechtsOnder.Enabled := false; SetStatusButtonRechtsOnderaan; end; function TfmLoginScherm.GeefInitialen: string; begin result := edtInitialen.Text; end; function TfmLoginScherm.GeefLoginCode: string; begin result := edtPinCode.Text; end; procedure TfmLoginScherm.SetStatusButtonRechtsOnderaan; begin btnRechtsOnder.Enabled := ((edtPincode.Text <> '') and (edtInitialen.Text <> '')); end; end.