Fenêtre Modale qui passe en arrière plan [Résolu]

anisb 22 Messages postés mercredi 16 novembre 2005Date d'inscription 19 février 2007 Dernière intervention - 8 févr. 2007 à 11:19 - Dernière réponse : cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention
- 26 mars 2007 à 11:58
Bonjour,

Alors voici mon "Etrange" problème ... je vais essayer d'être le plus
precis dans ma description en esperant que quelqu'un puisse m'aider à
le reseoudre.


Mon application principale fonctionne sur le principe des plugins : Une
DLL qui renferme une TForm et qui est chargée par mon appli principlae.
Pour afficher la TForm je lui passe via appel d'une fonction de la DLL
(ShowForm) le Handle du Panel dans lequel la Form (Plugin) doit
s'integrer (j'appel alors un SetParent sur la la form) et puis je fais
un Show sur ma Form. Voilà jusque là tout va bien ça marche et tout
s'affiche trés bien.

Ma Form (incluse dans la DLL) est rafraichie via une connexion TCP par
des données provenant d'une application serveur. Mon probleme c'est que
quand j'affiche cette Form (Plugin) qu'en même temps une fenêtre modale
(toujours de l'appli principale) est affiché ... alors celle ci (la
fenêtre modale) passe en arrière plan au premier rafraichissement de ma
FORM

Bizzare pour une fenetre Modale ... et le pire c'est que aux prochains
rafraichissement tout se passe bien (la fenetre modale reste toujours
affichée et on voit la Form (Plugin) se rafraichir tranquillement
derrière)

Je ne comprends vraiment rien ....

Quelqu'un aurait il déjà connu ce genre de probleme?

Merci d'avance
Afficher la suite 

Votre réponse

5 réponses

anisb 22 Messages postés mercredi 16 novembre 2005Date d'inscription 19 février 2007 Dernière intervention - 19 févr. 2007 à 11:16
+3
Utile
Bonjour Suite à mon Post au sujet d'un phenomene qui me semble etrange j'ai pu invesitguer de mon coté et trouver "la raison" ... en effet, j'utilisais un composanht externe qui fait appel à des fonctions Windows et je me suis rendu compte que le passage en arrière plan de la fenetre modale se fait sur appel de la fonction :

R := CreatePolygonRgn(APoints, 8, WINDING);
SetWindowRgn(Handle, R, True);

Dans le composant incriminé : cette fonction permet de créer une fleche qui sera affiché pendant un Drag'nDrop 8O 8O 8O
Voilà j'ai donc desactivé cette fonction et tout remarche bien. Merci bien à vous
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de anisb
anisb 22 Messages postés mercredi 16 novembre 2005Date d'inscription 19 février 2007 Dernière intervention - 9 févr. 2007 à 14:49
0
Utile
Bonjour Apparement j'ai mal expliqué mon problème ... il faut dire qu'il est pas facile à decrire,
voici quelques eclaircissement sur la façon dont mes fenetres sont gérées :
Je Vais Appeller :
- FormPrincipale : Ma Fenêtre Principale de l'appli
- FormPlugin : La Form incluse dans la DLL et qui sera affiché dans un Panel de FormPrincipale (cette form est fsNormal)
- FormModale : La Fenetre Modale ouverte dans l'application principale par la fenetre principale.

Voici le sequencement de la chose : Depuis l'application Principale je fais appel à la DLL :

ShowFormPlugin (PanelHandle : HWND)
Begin
    FormPlugin.BorderStyle := bsNone;
    FormPlugin.ParentWindow := PanelHandle ;
    If GetWindowRect( PanelHandle , WindowRect ) Then
    Begin
      MoveWindow( FormPlugin.Handle,
                  0,
                  0,
                  WindowRect.Right - WindowRect.Left,
                  WindowRect.Bottom - WindowRect.Top,
                  false );
 
      FormPlugin.Show;
    End;
End;

Ce bout de code me permet d'afficher la FormPlugin dans un Panel de la fenetre principale ... puis j'appelle

FormModale.ShowModal

Puis je lance une connexion vers le serveur qui elle va mettre à jour (rafraichir l'affichage) de FormPlugin ... Et là 8O 8O 8O 8O 8O FormModale Passe en arrière plan ... le seul truc à faire c'est de cliquer sur l'icone de l'application dans la barre et là on revoir notre fenetre modale ... J'insite sur le fait que cela n'arrive que la premiere connexion (après le lancement de l'appli)
Merci D'avance
Commenter la réponse de anisb
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 14 févr. 2007 à 13:25
0
Utile
Salut,


Pourquoi met tu une Form devant ton panel au lieu de mettre simplement un panel dans ta dll ?
Commenter la réponse de cs_rt15
cs_ibrahimakhalil 28 Messages postés samedi 29 avril 2006Date d'inscription 11 mars 2011 Dernière intervention - 24 mars 2007 à 14:23
0
Utile
salut à tous, je me tiens à demander de l'aide à tous, je travail sur un projet en delphi: description:
"Adduction d'eau potable à travers le réseau maillé", c'est celui de porteau et j'ai de sérieux problème, je dois d'abord représenter des points que l'utilisateur
va nommer puis il pourra les joindre avec une droite qui seront les mailles, mais lorsque je trace une prémière ligne, toutes les autres que je tracerai debuterons par le bout de celle-ci et le graphe n'est plus ordoné, j'ai vraiment chaud à ce stade
Commenter la réponse de cs_ibrahimakhalil
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 26 mars 2007 à 11:58
0
Utile
Salut,


Heu... Pourquoi avoir posté ici ?


Crée plutôt un nouveau topic, dans une section approprié et avec un titre expicit.


Et ce serait peut être sympa de nous dire avec quoi et sur quoi tu trace tes lignes.
Commenter la réponse de cs_rt15

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.