unit ProScanMain; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ActnList, UiContext, Vcl.AppEvnts, Vcl.ComCtrls, Vcl.ExtCtrls; type TfmProScanHoofdscherm = class(TForm) pnlMain: TPanel; procedure FormCreate(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private fUiContext: TUiContext; fHuidigScherm: TForm; procedure HuidigeGebruikerAfmelden; procedure VerwerkParamStrings; public property UiContext: TUiContext read fUiContext; procedure NavigeerNaar(mr: TModalResult); end; var fmProScanHoofdscherm: TfmProScanHoofdscherm; implementation uses LoginScherm2, GebruikerService, HomeScherm, DrieKnoppenScherm, PalletScherm, BestaandePalletscherm, DnaCodeScherm, InfoLogScherm, Images, HernoemPalletScherm, DimmerForm, DnaCodeReedsGescandScherm, Agent; {$R *.dfm} procedure TfmProScanHoofdscherm.FormActivate(Sender: TObject); begin NavigeerNaar(mrLogin); end; procedure TfmProScanHoofdscherm.FormClose(Sender: TObject; var Action: TCloseAction); begin HuidigeGebruikerAfmelden(); fUiContext.Free; end; procedure TfmProScanHoofdscherm.FormCreate(Sender: TObject); begin fUiContext := TUiContext.Create(); fUiContext.ImagesScherm := TImagesScherm.Create(self); fUiContext.Modus := modusDefault; VerwerkParamStrings; end; procedure TfmProScanHoofdscherm.VerwerkParamStrings; var ParamTeller: integer; begin ParamTeller := 1; while ParamTeller <= ParamCount do begin if ParamStr(ParamTeller)='displaymode=desktop' then begin Self.BorderStyle := bsSingle; Self.ClientHeight := 640; Self.ClientWidth := 480; end; if Copy(ParamStr(ParamTeller),1,Pos('=',ParamStr(ParamTeller))) = 'server=' then UiContext.ServerName := Copy(ParamStr(ParamTeller),Pos('=',ParamStr(ParamTeller))+1,length(ParamStr(ParamTeller))); ParamTeller := ParamTeller + 1; end; if UiContext.ServerName = '' then UiContext.ServerName := 'jlm-ws020'; end; procedure TfmProScanHoofdscherm.HuidigeGebruikerAfmelden; var fAgent: TAgent; begin fAgent := TAgent.Create(UiContext); fAgent.GebruikerAfmelden(); fAgent.Free; end; procedure TfmProScanHoofdscherm.NavigeerNaar(mr: TModalResult); var pnlMain: TPanel; begin Application.ProcessMessages; pnlMain := TPanel.Create(Self); pnlMain.Parent := Self; pnlMain.Align := alClient; if mr = mrAbort then begin HuidigeGebruikerAfmelden; fUiContext.Free; Application.Terminate; end else begin fHuidigScherm.Free; case mr of mrLogin : fHuidigScherm := TfmLoginScherm2.Create(pnlMain); mrHome : fHuidigScherm := TfmHomeScherm.Create(pnlMain); mrPallet : fHuidigScherm := TfmPalletScherm.Create(pnlMain); mrHernoemPallet : fHuidigScherm := TfmHernoemPalletScherm.Create(pnlMain); mrBestaandePallet : fHuidigScherm := TfmBestaandePalletScherm.Create(pnlMain); mrDnaCode : fHuidigScherm := TfmDnaCodeScherm.Create(pnlMain); mrInfoLog : fHuidigScherm := TfmInfoLogScherm.Create(pnlMain); mrDnaCodeReedsGescand : fHuidigScherm := TfmDnaCodeReedsGescandScherm.Create(pnlMain); end; fHuidigScherm.Parent := pnlMain; (fHuidigScherm as TfmDrieKnoppenScherm).UiContext := fUiContext; fHuidigScherm.Show; end; end; end.