unit ProScanMain; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ActnList, UiContext; type TfmProScanHoofdscherm = class(TForm) procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); private fUiContext: TUiContext; fHuidigScherm: TForm; fLoginScherm: TForm; fHomeScherm: TForm; fPalletScherm: TForm; fBestaandePalletScherm: TForm; fDnaCodeScherm: TForm; fInfoLogScherm: TForm; procedure HuidigeGebruikerAfmelden; public end; var fmProScanHoofdscherm: TfmProScanHoofdscherm; implementation uses LoginScherm, GebruikerService, HomeScherm, DrieKnoppenScherm, PalletScherm, BestaandePalletscherm, DnaCodeScherm, InfoLogScherm, Images; {$R *.dfm} procedure TfmProScanHoofdscherm.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; HuidigeGebruikerAfmelden; Application.Terminate; end; procedure TfmProScanHoofdscherm.FormCreate(Sender: TObject); begin fUiContext := TUiContext.Create(); //fImagesScherm := TImagesScherm.Create(Self); fLoginScherm := TfmLoginScherm.Create(Self); fHomeScherm := TfmHomeScherm.Create(Self); fPalletScherm := TfmPalletScherm.Create(Self); fBestaandePalletScherm := TfmBestaandePalletScherm.Create(Self); fDnaCodeScherm := TfmDnaCodeScherm.Create(Self); fInfoLogScherm := TfmInfoLogScherm.Create(Self); fHuidigScherm := fLoginScherm; Self.Show; end; procedure TfmProScanHoofdscherm.FormShow(Sender: TObject); var fModalResult: TModalResult; begin fModalResult := mrNone; while fModalResult <> mrAbort do begin (fHuidigScherm as TfmDrieKnoppenScherm).UiContext := fUiContext; fModalResult := fHuidigScherm.ShowModal; fUiContext := (fHuidigScherm as TfmDrieKnoppenScherm).UiContext; //LoginScherm tonen if fHuidigScherm.ClassType = TfmLoginScherm then begin if fHuidigScherm.ModalResult = mrLogin then begin fHuidigScherm := fLoginScherm; end else if fHuidigScherm.ModalResult = mrHome then begin fHuidigScherm := fHomeScherm; end; continue; end; //HomeScherm tonen if fHuidigScherm.ClassType = TfmHomeScherm then begin if fHuidigScherm.ModalResult = mrPallet then begin fHuidigScherm := fPalletScherm; end else if fHuidigScherm.ModalResult = mrNo then begin ShowMessage('Hernoem Pallet'); end else if fHuidigScherm.ModalResult = mrLogin then begin //HuidigeGebruikerAfmelden; fHuidigScherm := fLoginScherm; end; continue; end; //PalletScherm tonen if fHuidigScherm.ClassType = TfmPalletScherm then begin if fHuidigScherm.ModalResult = mrHome then begin fHuidigScherm := fHomeScherm; end else if fHuidigScherm.ModalResult = mrPallet then begin fHuidigScherm := fPalletScherm; end else if fHuidigScherm.ModalResult = mrBestaandePallet then begin fHuidigScherm := fBestaandePalletScherm; end else if fHuidigScherm.ModalResult = mrDnaCode then begin fHuidigScherm := fDnaCodeScherm; end else if fHuidigScherm.ModalResult = mrAbort then begin ShowMessage('DnaCodeGevuld scherm'); end; continue; end; //BestaandePalletScherm tonen if fHuidigScherm.ClassType = TfmBestaandePalletScherm then begin if fHuidigScherm.ModalResult = mrHome then begin fHuidigScherm := fHomeScherm; end else if fHuidigScherm.ModalResult = mrPallet then begin fHuidigScherm := fPalletScherm; end else if fHuidigScherm.ModalResult = mrRetry then begin ShowMessage('DnaCodeGevuld scherm'); end else if fHuidigScherm.ModalResult = mrDnaCode then begin fHuidigScherm := fDnaCodeScherm; end; continue; end; //DnaCodeScherm tonen if fHuidigScherm.ClassType = TfmDnaCodeScherm then begin if fHuidigScherm.ModalResult = mrHome then begin fHuidigScherm := fHomeScherm; end else if fHuidigScherm.ModalResult = mrPallet then begin fHuidigScherm := fPalletScherm; end else if fHuidigScherm.ModalResult = mrDnaCode then begin fHuidigScherm := fDnaCodeScherm; end else if fHuidigScherm.ModalResult = mrInfoLog then begin fHuidigScherm := fInfoLogScherm; end; continue; end; //InfoLogScherm tonen if fHuidigScherm.ClassType = TfmInfoLogScherm then begin if fHuidigScherm.ModalResult = mrYes then begin fHuidigScherm := fInfoLogScherm; end else if fHuidigScherm.ModalResult = mrDnaCode then begin fHuidigScherm := fDnaCodeScherm; end else if fHuidigScherm.ModalResult = mrNone then begin fHuidigScherm := fInfoLogScherm; end else if fHuidigScherm.ModalResult = mrIgnore then begin fHuidigScherm := fInfoLogScherm; end; continue; end; end; Self.Close; end; procedure TfmProScanHoofdscherm.HuidigeGebruikerAfmelden; var Service: GebruikerServiceSoap; Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := fUiContext.Initialen; Request.LoginCode := fUiContext.LoginCode; Header.Initialen := fUiContext.Initialen; Request.Header := Header; Service.GebruikerAfmelden(Request); finally Request.Free; end; end; end.