unit Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, ApplicationContext, Agent; const NAVHOME = 0; NAVLOGIN = 1; NAVZOEKPRODUCTEN = 2; type TFormMain = class(TForm) PanelMain: TPanel; procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private FAppContext: TApplicationContext; FHuidigScherm: TForm; FAgent: TAgent; public procedure NavigeerNaar(schermId: Integer); end; var FormMain: TFormMain; implementation uses Subscherm, LogInScherm, ZoekProductenScherm; {$R *.dfm} procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin FAgent.GebruikerAfmelden(FAppContext.UserServerServiceContext); // Antwoord wordt genegeerd end; procedure TFormMain.FormCreate(Sender: TObject); begin FAppContext := TApplicationContext.Create(); FAgent := TAgent.Create(); { TODO -cMain: Wat doet dit in de originele applicatie?: fUiContext.ImagesScherm := TImagesScherm.Create(self); } { TODO -cMain: Kijken of "VerwerkParamStrings;" nodig is } { TODO -cNavigatie : 'Scherm' creëren vanuit code. Tweede 'scherm' maken met twee secties (30%-70%). } PanelMain := TPanel.Create(Self); PanelMain.Parent := Self; PanelMain.Align := alClient; Self.NavigeerNaar(NAVLOGIN); end; // Dit event wordt altijd aangeroepen, OnClose niet procedure TFormMain.NavigeerNaar(schermId: Integer); begin Application.ProcessMessages; // Interrupts the execution of an application so that it can process the message queue. // Volgende subscherm laden in panel FHuidigScherm.Free; case schermId of NAVHOME: FHuidigScherm := TFormZoekProducten.Create(PanelMain, Self, FAppContext); NAVLOGIN: FHuidigScherm := TFormLogin.Create(PanelMain, Self, FAppContext, FAgent); NAVZOEKPRODUCTEN: FHuidigScherm := TFormZoekProducten.Create(PanelMain, Self, FAppContext); end; FHuidigScherm.Parent := PanelMain; FHuidigScherm.Align := alClient; FHuidigScherm.Show; end; end.