Index: ProScan/ProScanMain.pas =================================================================== diff -u -r396 -r684 --- ProScan/ProScanMain.pas (.../ProScanMain.pas) (revision 396) +++ ProScan/ProScanMain.pas (.../ProScanMain.pas) (revision 684) @@ -17,6 +17,7 @@ fUiContext: TUiContext; fHuidigScherm: TForm; procedure HuidigeGebruikerAfmelden; + procedure VerwerkParamStrings; public property UiContext: TUiContext read fUiContext; procedure NavigeerNaar(mr: TModalResult); @@ -42,7 +43,8 @@ procedure TfmProScanHoofdscherm.FormClose(Sender: TObject; var Action: TCloseAction); begin - TAgent.Create(UiContext).GebruikerAfmelden(); + HuidigeGebruikerAfmelden(); + fUiContext.Free; end; procedure TfmProScanHoofdscherm.FormCreate(Sender: TObject); @@ -51,20 +53,41 @@ fUiContext.ImagesScherm := TImagesScherm.Create(self); fUiContext.Modus := modusDefault; - if ParamStr(1)='displaymode=desktop' then begin - Self.BorderStyle := bsSingle; - Self.ClientHeight := 640; - Self.ClientWidth := 480; + 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 ParamStr(2) <> '' then - UiContext.ServerName := Copy(ParamStr(2),Pos('=',ParamStr(2))+1,length(ParamStr(2))) - else - UiContext.ServerName := 'tve-w10'; + + if UiContext.ServerName = '' then + UiContext.ServerName := 'jlm-ws020'; + end; procedure TfmProScanHoofdscherm.HuidigeGebruikerAfmelden; +var + fAgent: TAgent; begin - TAgent.Create(UiContext).GebruikerAfmelden(); + fAgent := TAgent.Create(UiContext); + fAgent.GebruikerAfmelden(); + fAgent.Free; end; procedure TfmProScanHoofdscherm.NavigeerNaar(mr: TModalResult); @@ -78,8 +101,10 @@ 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); @@ -98,3 +123,4 @@ end; end. +