1 exe, 2 forms

furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008 - 31 janv. 2005 à 20:17
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 - 31 janv. 2005 à 23:05
bonjour,
j'ai eu une application qui peut fonctionner selon 2 modes (temps réel ou offline).
Dans le fichier ini de l'application, j'ai défini une clé pour signaler si je suis en mode offline ou online.

Au démarrage de l'application, je récupère la valeur de cette clé et je lance la form1(vue1.dfm) dans le cas online et la form2(vue2.dfm) dans le cas du offline.

Est-ce possible avec delphi?
Si oui, comment faire?

Merci d'avance

emmanuel

1 réponse

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
31 janv. 2005 à 23:05
Pour ajouter une Form à ton application, il te suffit de faire 'Fichier', 'Nouveau', 'Fiche' ou alors, si la Form2 est déjà existante, faire 'Projet', 'Ajouter au Projet...'.

Modifie le source du projet (visible en faisant 'Projet', 'Voir le source...') en le rendant identique à celui-ci :
<HR>
program Project1;


uses
Forms, IniFiles, SysUtils, // IniFiles et SysUtils sont à rajouter ici
Unit1 in 'Unit1.pas' {Form1}, // Les déclarations des units. Ces deux lignes peuvent être différentes dans ton application.
Unit2 in 'Unit2.pas' {Form2};


var
FichierIni : TIniFile;
online : Boolean; // Variable du statut Online


{$R *.res}


begin
Application.Initialize;
// On lit le fichier Ini
FichierIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+'\FichierIni.ini');
online := FichierIni.ReadBool('General', 'Online', false);
// Default = false car si le fichier n'existe pas ou que la valeur cherchée n'est pas présente, alors on part du principe que l'on est Offline
FichierIni.Free;
if online then
begin
Application.CreateForm(TForm1, Form1); // L'ordre de création des forms influe sur le choix de la form principale par l'application. Ici, c'est la form1 étant la form "Online"
Application.CreateForm(TForm2, Form2);
end
else
begin
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1, Form1);
end;
Application.Run;
end.


<HR>
Ton fichier ini doit être composé comme ceci :
[general]
Online = 0
Les boolean sont traduits dans les fichiers Ini par des 1 ou des 0 (0 false ; 1 true)
Si, dans le fichier ini, Online = 0 alors l'application affichera la Form principale 2, c'est à dire la form "Offline".

Voilà, j'espère que cela te conviendra !

@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
Rejoignez-nous