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 :

Question sur la gestion des fenetres MDI


Sujet :

C++Builder

  1. #1
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut Question sur la gestion des fenetres MDI
    Bonjour

    J'ai un lot de questions à soumettre à votre saggacité. Voilà je suis en train de dévelloper une application de type MDI et j'ai quelques petits soucis.

    1/ J'ai un menu dans la Form principale et je veux pouvoir interdir ou autoriser certain élément de ce menu en fonction de ce qui se passe sur les fenetres fille. Pour ce faire à partir de la fenêtre fille j'appelle une fonction de le fenetre mère qui met à jour le menu et là une exception se produit.

    2/J'aimerais que certaines de mes fenetres ne changent pas de taille quand j'execute une commande du type cascade ou tile.

    3/Des scrollbar apparaissent sur ma Form principale si les fenetres filles débordent comment peut on empécher l'apparition de ces scrollbar

    Voilà c'est tout pour aujourd'hui, j'aurais sans doute d'autres questions par la suite

  2. #2
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut Re: Question sur la gestion des fenetres MDI
    Je vous déconseille de poser plusieurs questions dans le même message.

    Citation Envoyé par RémiONERA
    j'appelle une fonction de le fenetre mère qui met à jour le menu et là une exception se produit.
    Veuillez nous montrer votre code ou un fragment et nous dire en quoi consiste cette mise à jour. Il n'y a évidemment aucune raison pour que vous ne puissiez pas mettre à jour votre menu comme vous l'entendez.

    À bientôt
    Gilles

  3. #3
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut Mise à jour d'un menu
    Bonjour

    Voici les bouts de codes demandé:

    Dans la fenêtre fille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall TCarteForm::FormMouseDown(TObject *Sender,
    			TMouseButton Button, TShiftState Shift, int X, int Y)
    {
     
    	if(Shift.Contains(ssDouble))
    	 {
    		AjouteUneUnite(X,Y);
    	 }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void __fastcall TCarteForm::AjouteUneUnite(int X, int Y)
    {
     
    	TMainForm *pMainForm;
    	if(SetupUniteDlg->ShowModal()==mrOk)
    	 {
    		//Ici ajout d'u pointeur dans un TList déclaré dans la
                    // partie private de la classe TCarteForm
    		Refresh();
    		pMainForm=(TMainForm*)Parent;
    		pMainForm->AjouteUneUnite(pU);
    	 }
     
    }
    Dans la fenêtre principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TMainForm::AjouteUneUnite(TUnite * pU)
    {
    	//TODO: Add your source code here
    	ListeUnitesForm->AjouteUneUnite(pU);
    //C'est à cette instruction que j'ai le message EAccesViolation 
    	pSauverScenario->Enabled=true;
    }
    Dès que je retire l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	pSauverScenario->Enabled=true;
    tout fonctionne bien sauf que l'état de mon menu ne change pas

  4. #4
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    2/J'aimerais que certaines de mes fenetres ne changent pas de taille quand j'execute une commande du type cascade ou tile.
    Dans ce cas il faut le faire manuellement.
    Tu disposes pour celà des propriétés de la MDIForm qui permettent de gérer les MDIChild
    (celles que j'ai indiquées dans le repost).

    A plus !

  5. #5
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut
    Salut

    J'ai du rater to repost. J'ai vu que dans les propriétés des fenêtres il y a:

    Constraints TSizeConstraints
    Je suppose qu'il sagit de cette variable que je dois ajuster manuellemnt

  6. #6
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Si TCarteForm est une MDIChild, dans ce cas la MDIForm (MainForm) se récupère avec Owner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TCarteForm::AjouteUneUnite(int X, int Y) 
    { 
       if(SetupUniteDlg->ShowModal()==mrOk) 
        { 
          //Ici ajout d'u pointeur dans un TList déclaré dans la 
                    // partie private de la classe TCarteForm 
          Refresh(); 
          TMainForm *pMainForm = (TMainForm*)Owner; 
          pMainForm->AjouteUneUnite(pU); 
        } 
    }
    A plus !

  7. #7
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut
    Salut

    Ca marche en utilisant la propriété Owner. Bravo et merci

    A+

    Rémi

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

Discussions similaires

  1. Question sur la gestion des swing
    Par donnadieujulien dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 11/07/2008, 11h32
  2. Réponses: 3
    Dernier message: 12/08/2007, 16h49
  3. Réponses: 4
    Dernier message: 13/09/2006, 16h53
  4. question sur la gestion des css
    Par boustor dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/07/2006, 16h57
  5. Quelques questions sur la gestion des droits
    Par sylsau dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/03/2006, 14h11

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