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; type TfmLoginScherm = class(TfmDrieKnoppenScherm) lblWelkom: TLabel; lblGeefPincodeIn: TLabel; edtPincode: TEdit; lblInitialen: TLabel; edtInitialen: TEdit; procedure edtInitialenKeyPress(Sender: TObject; var Key: Char); 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; function ComputerName: String; public function GeefInitialen: string; function GeefLoginCode: string; end; var fmLoginScherm: TfmLoginScherm; implementation uses GebruikerService, PopupScherm; {$R *.dfm} procedure TfmLoginScherm.actAfsluitenExecute(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.actVolgendeExecute(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; Request.Header.Initialen := edtInitialen.Text; Request.Header.ComputerNaam := ComputerName(); 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.FormShow(Sender: TObject); begin actRechtsOnder := actVolgende; actLinksOnder := actAfsluiten; btnRechtsOnder.Action := actRechtsOnder; btnLinksOnder.Action := actAfsluiten; SetStatusButtonRechtsOnderaan; inherited; 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; function TfmLoginScherm.ComputerName: String; var buffer: array[0..255] of char; size: dword; begin size := 256; if GetComputerName(buffer, size) then Result := buffer else Result := '' end; end.