unit ProScanMain; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ActnList; type TfmProScanHoofdscherm = class(TForm) procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); private fInitialen: string; fLoginCode: string; fHuidigScherm: TForm; fLoginScherm: TForm; fHomeScherm: TForm; public end; var fmProScanHoofdscherm: TfmProScanHoofdscherm; implementation uses LoginScherm, GebruikerService, HomeScherm; {$R *.dfm} procedure TfmProScanHoofdscherm.FormClose(Sender: TObject; var Action: TCloseAction); var Service: GebruikerServiceSoap; Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin inherited; Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := fInitialen; Request.LoginCode := fLoginCode; Header.Initialen := fInitialen; Request.Header := Header; Service.GebruikerAfmelden(Request); finally Request.Free; end; Application.Terminate; end; procedure TfmProScanHoofdscherm.FormCreate(Sender: TObject); var LoginScherm: TfmLoginScherm; begin fLoginScherm := TfmLoginScherm.Create(Self); fHomeScherm := TfmHomeScherm.Create(Self); fHuidigScherm := fLoginScherm; Self.Show; end; procedure TfmProScanHoofdscherm.FormShow(Sender: TObject); var fModalResult: TModalResult; begin fModalResult := mrNone; while fModalResult <> mrAbort do begin //LoginScherm tonen if fHuidigScherm.ClassType = TfmLoginScherm then begin fModalResult := fHuidigScherm.ShowModal; if fHuidigScherm.ModalResult = mrRetry then begin fModalResult := fHuidigScherm.ShowModal; end; if fHuidigScherm.ModalResult = mrOk then begin fInitialen := (fHuidigScherm as TfmLoginScherm).GeefInitialen(); fLoginCode := (fHuidigScherm as TfmLoginScherm).GeefLoginCode(); fHuidigScherm := fHomeScherm; end; end; //HomeScherm tonen if fHuidigScherm.ClassType = TfmHomeScherm then begin fModalResult := fHuidigScherm.ShowModal; if fHuidigScherm.ModalResult = mrRetry then begin ShowMessage('retry'); end; if fHuidigScherm.ModalResult = mrOk then begin fHuidigScherm := fLoginScherm; end; end; end; Self.Close; end; end.