1. Comment définir la page d'accueil de notre application

Il n'y a rien de particulier à faire si nous conservons le formulaire créé par le wizard comme page d'accueil. C'est l'appel de la méthode SetAsMainForm dans le bloc initialization qui définit la page comme première page :

 initialization
   TIWForm1.SetAsMainForm;

Pour définir une autre page d'accueil, il suffit donc de déplacer ce bloc dans l'unit du formulaire en question.

  1. Comment définir dynamiquement notre page d'accueil

La définition de la page d'accueil est très simple à faire. Cependant cette méthode n'est pas toujours suffisante, on peut être amené à afficher une page d'accueil différente en fonction d'un paramètre d'appel. Nous allons voir que ceci est également possible. Nous n'allons bien sûr pas modifier dynamiquement le positionnement du bloc initialization, dans ce cas là il ne sera plus utile. Nous allons faire cela dans le ServerController, et plus précisément dans la méthode OnNewSession.

Comme nous l'avons vu précédemment, cette méthode est prédéfinie par le wizard Intraweb :

 procedure TIWServerController.IWServerControllerBaseNewSession(
   ASession: TIWApplication; var VMainForm: TIWBaseForm);
 begin
   ASession.Data := TIWUserSession.Create(nil);
 end;

Le deuxième paramètre de cette méthode est un paramètre var qui contient l'instance de la page principale. Si nous ne la définissons pas, alors Intraweb le fera comme vu dans le paragraphe précédent. Mais il est possible de l'instancier ici pour définir dynamiquement la page d'accueil, par exemple en fonction d'une valeur de paramètre :

 procedure TIWServerController.IWServerControllerBaseNewSession(
   ASession: TIWApplication; var VMainForm: TIWBaseForm);
 begin
   ASession.Data := TIWUserSession.Create(nil);
 
   if WebApplication.RunParams.Values[ 'Page'] = 'Page1' then
     VMainForm := TIWForm1.Create( WebApplication);
 
   if WebApplication.RunParams.Values[ 'Page'] = 'Page2' then
     VMainForm := TIWForm2.Create( WebApplication);
 end;

Voilà, il est donc très simple avec Intraweb de définir statiquement ou dynamiquement la page d'accueil que verra notre utilisateur.