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

C++Builder Discussion :

fiche principale


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Points : 44
    Points
    44
    Par défaut fiche principale
    Bonjour,

    mon problème ne concerne pas spécialement le langage C++.

    J'utilise Borland C++ Builder 6 et j'aimerais changer la fiche qui apparaît au moment où j'exécute mon projet.

    Je suis déjà passé par les options : Projet->Options puis l'onglet "fiches" dans l'EDI pour spécifier ma fiche principale, mais ça ne résout pas le problème.

    je résume donc :
    j'ai 2 fiches : form1 et form2.
    J'aimerais afficher la form2 en premier plutôt que la form1 à l'exécution.
    Comment faire ?

    Par avance, merci.
    Nuclear.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Suffit de modifier les CreateForm dans le Main()
    D'ailleurs, tu n'es pas obligé de créer toutes les fenêtres mais juste une (la principale), les autres tu peux les créer avec newau moment voulue, dans le OnClick d'un TButton par exemple
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Tout dépend de ce que tu cherches à faire !
    Par exemple, on peut exploiter l'événement OnCreate de la fiche principale avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    MessageBox(NULL, "Créé par henderson !", "Bonjour !", MB_ICONINFORMATION + MB_OK);  
    }
    On fournit NULL pour le handle de la fenêtre principale (HWND hwnd) !
    Comme le processus est bloquant, l'affichage de la fenêtre principale ne surviendra qu'à la sortie de la Messagebox.

    Cela vaut aussi pour une DialogBox...(Unit1 et Unit2)
    Dans ce cas, on supprime la création de la DialogBox dans le source du projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
        try
        {
            Application->Initialize();
            Application->CreateForm(__classid(TForm1), &Form1);
            //Application->CreateForm(__classid(TOKBottomDlg), &OKBottomDlg); // <==
     
            Application->Run();
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
        return 0;
    }
    La OnCreate de la fiche principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include "Unit2.h" // pour TOKBottomDlg
    //...
    //...
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    OKBottomDlg = new TOKBottomDlg(NULL);
    OKBottomDlg->ShowModal();
    //...
    delete OKBottomDlg;
    }
    Il y a d'autres solutions qui dépendent du contexte !

    Ca fonctionne avec BCB3 Pro !

    A plus !

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Autre contexte qui consiste à faire apparaître simultanément deux fenêtres au lancement du programme,il suffit de fixer les propriétés de cette deuxième fenêtre de la manière suivante (depuis l'inspecteur d'objets):

    FormStyle sur fsStayOnTop
    Visible sur true
    Il n'y aurait rien de plus à faire !
    La deuxième fenêtre viendra s'afficher au premier plan, la fenêtre principale en arrière plan !

    Donc ... ça doit le faire aussi pour N fenêtres !

    Ca fonctionne sur BCB3 Pro !

    A plus !

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/09/2010, 12h51
  2. Désactiver un MenuItem de la fiche principale.
    Par aityahia dans le forum Windows Forms
    Réponses: 16
    Dernier message: 22/08/2008, 01h18
  3. Libérer une fiche principale
    Par ProgD dans le forum Delphi
    Réponses: 4
    Dernier message: 23/07/2007, 12h38
  4. Fiche principale <> Fiche identification
    Par yamino dans le forum Delphi
    Réponses: 11
    Dernier message: 10/06/2007, 18h30
  5. Déplacer fiche principale à l'exécution
    Par PyRoFlo dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/08/2004, 18h15

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