IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Fenêtre principale et secondaire


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué
    Profil pro
    Administrateur système
    Inscrit en
    Mai 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur système

    Informations forums :
    Inscription : Mai 2002
    Messages : 144
    Points : 159
    Points
    159
    Par défaut Fenêtre principale et secondaire
    Dans mon projet, qui contient 2 form, j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure Demarrage
    begin
       If FileExists ('C: UnFic.txt') then Form2.Show
           Else Form1.Show;
    end;
    Cette procédure est executée au lancement du prog depuis le fichier .dpr.
    Le pb, c'est que quand Form2 s'affiche Form1 apparait aussi. Aprés avoir cherché, j'ai cru comprendre que Form1 s'affichait dans tous les cas parce qu'elle est la fiche principale du programme, c'est-à-dire celle qui doit s'afficher toujours en premier (dites-moi si je me trompe...).
    Question: comment faire pour que la fiche principale ne s'affiche qu'en temps voulu et non pas de façon systématique?
    Merci.
    Si un jour on te reproche que ton travail n'est pas un travail de professionnel, dis-toi bien que l'Arche de Noé a été construite par des amateurs et le Titanic par des professionnels...

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Peut-être en la cachant, quand ce n'est pas à elle de s'afficher.

    Petit détail en passant, l'adresse de ton fichier est bizarre :
    Il ne manque pas un \ :
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  3. #3
    Membre habitué
    Profil pro
    Administrateur système
    Inscrit en
    Mai 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur système

    Informations forums :
    Inscription : Mai 2002
    Messages : 144
    Points : 159
    Points
    159
    Par défaut
    Merci Lung, mais faire un .Hide est évidemment la première chose qui m'est venue à l'esprit. Le seul pb, c'est que ça ne marche pas.
    Si un jour on te reproche que ton travail n'est pas un travail de professionnel, dis-toi bien que l'Arche de Noé a été construite par des amateurs et le Titanic par des professionnels...

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Tu fais bien ton test dans le source de ton projet ?
    Tu pourrais spécifier que ta Form1 n'est pas la Form principale.
    Je sais qu'il y a une fonction pour définir la Form principale.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  5. #5
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    En fait, la première Form créée sera la Form principale.
    En fonction de ton test, tu créer les Form dans l'ordre qui convient, et tu affiche la Form principale.

    C'est du bricolage, mais bon ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  6. #6
    Membre habitué
    Profil pro
    Administrateur système
    Inscrit en
    Mai 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur système

    Informations forums :
    Inscription : Mai 2002
    Messages : 144
    Points : 159
    Points
    159
    Par défaut
    Je vois pas trop ce que tu veux dire, Lung. Puisque chacune des fiches est susceptible d'être affichée, ça changerait quoi de créer l'une avant l'autre?
    Quant à ne pas définir de fiche principale, je veux bien mais dans Projet--- Options, il faut forcèment une fiche principale...

    J'ai aussi essayé de combiner Form2.Free + Form1.Show, et là les 2 fiches ont disparu de l'écran et le prog s'est terminé comme ça.
    Si un jour on te reproche que ton travail n'est pas un travail de professionnel, dis-toi bien que l'Arche de Noé a été construite par des amateurs et le Titanic par des professionnels...

  7. #7
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    La solution la plus simple en admettant que l'appli contient deux fenêtres seulement. Dans le DPR, modifier le code pour obtenir ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    begin
      Application.Initialize;
      if FileExists('C:\UnFic.txt') then
      begin
        Application.CreateForm(TForm1, Form1);
        Application.CreateForm(TForm2, Form2);
      end
      else
      begin
        Application.CreateForm(TForm2, Form2);
        Application.CreateForm(TForm1, Form1);
      end;
      Application.Run;
    end.

  8. #8
    Membre habitué
    Profil pro
    Administrateur système
    Inscrit en
    Mai 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur système

    Informations forums :
    Inscription : Mai 2002
    Messages : 144
    Points : 159
    Points
    159
    Par défaut
    Merci Pierre. Ta solution me donne déja quelques nouvelles idées et comme d'habitude je me dit: "Comment n'y ai-je pas pensé plus tôt...". :o
    Si un jour on te reproche que ton travail n'est pas un travail de professionnel, dis-toi bien que l'Arche de Noé a été construite par des amateurs et le Titanic par des professionnels...

  9. #9
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      Application.Initialise;
      Application.ShowMainForm := False;
      Application.CreateForm(TForm1, Form1); 
      Application.CreateForm(TForm2, Form2); 
      Application.Run;
    Ca permet de n'afficher aucune fiche au démarrage du programme !

    Bon développement :

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  10. #10
    Membre habitué
    Profil pro
    Administrateur système
    Inscrit en
    Mai 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur système

    Informations forums :
    Inscription : Mai 2002
    Messages : 144
    Points : 159
    Points
    159
    Par défaut
    Oui, c'est effectivement pas mal pour ne pas dire génial. Merci à tous pour votre coup de main.
    Si un jour on te reproche que ton travail n'est pas un travail de professionnel, dis-toi bien que l'Arche de Noé a été construite par des amateurs et le Titanic par des professionnels...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2015, 21h19
  2. Réponses: 6
    Dernier message: 07/07/2009, 15h06
  3. communication fenêtre principale / fenêtre secondaire
    Par Sylvain__A_ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/12/2008, 11h50
  4. Réponses: 2
    Dernier message: 31/01/2008, 09h46
  5. Réponses: 2
    Dernier message: 03/08/2004, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo