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 :

Probl�me de chevauchement des forms


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 93
    Par d�faut Probl�me de chevauchement des forms
    Bonjour,

    J'ai deux forms : une r�serv� aux mesures et l'autre r�serv� aux images et j'aimerais que la form sur laquelle on clic passe devant l'autre.

    Voici en image :


    Alors que ma page visualisation est s�lectionn� par clic, la page Edition des valeurs mesur�es reste devant.

    Ci-dessous le code pour l'affichage de ma page visualisation :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    {        TVisualisationGdeImg * tmp = new TVisualisationGdeImg(this);
            tmp->ChargerImage(Image1->Picture->Bitmap);
     
         tmp->Show();
            //tmp->ShowModal();
            //tmp->Release();
    }
    J'ai essay� avec les actions ShowModal mais la fenetre de l'image bloque l'acc�s au programme empechant ainsi l'acces a ma page de mesures...


    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Salut, j'ai le m�me probl�me que toi dans mon application. J'ai tent� qqchose, mais sa ne fonctionne pas:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    void __fastcall TFormMain::FormActivate(TObject *Sender)
    {
        SetWindowPos(this->Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
    }
    Pour plus d'info sur SetWindowPos: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 93
    Par d�faut
    MERCIIII
    tu me sauves la vie !

    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
    17
    18
    19
    20
    21
    void __fastcall TVisualisationGdeImg::FormClick(TObject *Sender)
    {
    SetWindowPos(this->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
    SetForegroundWindow(this->Handle);
     
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TVisualisationGdeImg::FormActivate(TObject *Sender)
    {
    SetWindowPos(this->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
     SetForegroundWindow(this->Handle);
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TVisualisationGdeImg::FormCreate(TObject *Sender)
    {
     SetWindowPos(this->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
     SetForegroundWindow(this->Handle);
    }
    Voila j'ai fait ca !
    Quand il ouvre, cela met la page dans le coin gauche : FormCreate et conserve la size. j'ai rajout� SHOWWINDOW mais je crois il sert � rien.
    Quand tu cliques dessus, il garde l'emplacement d'avant et la met au premier plan. (Je pense que juste le FormActivate est n�cessaire.)


    Cela marche impecc pour moi. J'esp�re vraiment que pour toi cela va march�.
    Merci encore
    a +

    PS1 : Je ne le met pas en r�solu, j'attend ta r�ponse.
    PSG : c'est les meilleurs

  4. #4
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Je suis content que sa fonctionne pour toi. C'est une des raisons pourquoi je ne n'h�site pas � mettre des bouts de code qui ne fonctionne pas Des fois sa donne des id�es � quelqu'un et sa ouvre un nouvel horizon

    Dans mon cas, le code ne fonctionne pas. Je ne cr�e pas ma Form dynamiquement comme toi par contre. Voici mon probl�me:
    1. FormPrincipale est ouverte au d�marrage
    2. Je clique sur un bouton dans ma FormPrincipale qui fait FormSecondaire->Show();
    3. Maintenant FormSecondaire est par dessus FormPrincipale
    4. Quand je clique sur FormPrincipale le focus vient sur celle-ci, mais elle reste en arri�re plan

    Si je met ton code dans l'�v�nement FormActivate, FormPrincipale sera TOPMOST car au d�marrage cet �v�nement est appel�. Donc, quand elle va ouvrir FormSecondaire, elle aussi sera TOPMOST. Car elle va se placer dans z-order de TOPMOST devant FormPrincipale.

    Le probl�me n'est pas si grave que �a car en g�n�ral dans mon application les gens n'ont pas besoin de voir les deux fen�tres en m�me-temps. Donc, il n'ont qu'a fermer la FormSecondaire.

Discussions similaires

  1. Probl�me dans d�sign des formes g�om�triques
    Par ahmadov47 dans le forum AWT/Swing
    R�ponses: 1
    Dernier message: 26/01/2015, 10h09
  2. [VI-2010] Probl�me de lissage des formes et textes
    Par cic31 dans le forum Visio
    R�ponses: 0
    Dernier message: 12/09/2014, 10h43
  3. Probl�me d'administration des form services MOSS 2007
    Par hyuu! dans le forum SharePoint
    R�ponses: 5
    Dernier message: 09/04/2008, 14h13
  4. R�ponses: 6
    Dernier message: 27/11/2006, 06h42
  5. R�ponses: 2
    Dernier message: 31/03/2006, 09h23

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