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 case fHuidigScherm.ModalResult of mrLogin : fHuidigScherm := fLoginScherm; mrHome : fHuidigScherm := fHomeScherm; end; continue; end; //HomeScherm tonen if fHuidigScherm.ClassType = TfmHomeScherm then begin case fHuidigScherm.ModalResult of mrPallet : fHuidigScherm := fPalletScherm; mrNo : ShowMessage('Hernoem Pallet'); mrLogin : fHuidigScherm := fLoginScherm; end; continue; end; //PalletScherm tonen if fHuidigScherm.ClassType = TfmPalletScherm then begin case fHuidigScherm.ModalResult of mrHome : fHuidigScherm := fHomeScherm; mrBestaandePallet : fHuidigScherm := fBestaandePalletScherm; mrPallet : fHuidigScherm := fPalletScherm; mrDnaCode : fHuidigScherm := fDnaCodeScherm; mrAbort : fHuidigScherm := fDnaCodeScherm; end; continue; end; //BestaandePalletScherm tonen if fHuidigScherm.ClassType = TfmBestaandePalletScherm then begin case fHuidigScherm.ModalResult of mrHome : fHuidigScherm := fHomeScherm; mrBestaandePallet : fHuidigScherm := fBestaandePalletScherm; mrPallet : fHuidigScherm := fPalletScherm; mrDnaCode : fHuidigScherm := fDnaCodeScherm; mrRetry : ShowMessage('DnaCodeGevuld scherm'); end; continue; end; //DnaCodeScherm tonen if fHuidigScherm.ClassType = TfmDnaCodeScherm then begin case fHuidigScherm.ModalResult of mrHome : fHuidigScherm := fHomeScherm; mrPallet : fHuidigScherm := fPalletScherm; mrDnaCode : fHuidigScherm := fDnaCodeScherm; mrInfoLog : fHuidigScherm := fInfoLogScherm; end; continue; end; //InfoLogScherm tonen if fHuidigScherm.ClassType = TfmInfoLogScherm then begin case fHuidigScherm.ModalResult of mrHome : fHuidigScherm := fHomeScherm; mrDnaCode : fHuidigScherm := fDnaCodeScherm; 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.