Message apparaissant derrière en XP SP2

cs_chrisbert Messages postés 2 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 13 octobre 2007 - 13 oct. 2007 à 12:05
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 18 oct. 2007 à 22:22
Bonjour.
Voila, j'ai un problème assez chiant et je me casse la tête dessus.
Je travaille sur une application composée d'un menu qui ouvre divers écrans.

Ce menu a été mis en formstyle=FsNormal, les écran s'ouvrent en stayontop afin que le menu ne passe jamais derriere les écrans ouverts.

Le problème est que sur SP2, la plupart du temps les  messages d'erreur ( appelés avec showmessage() ou messagedlg ) apparaissent derrière, et les utilisateurs ne peuvent apparement rien faire (en fait en faisant entrée ils repondent au message par defaut ou clique sur le ok, mais sans savoir quel a été le message).
Aprés divers test, il semble que sur XP, parfois, il considère que la fenetre active en est une autre, qui est en fait derriere, et les messages apparaissent donc devant cette fenetre considérée active, et donc derriere la fenetre reellement active.

C'est trés ennuyeux, et la seule solution trouvée actuellement serait de mettre tout mes écrans en fsnormal, mais la, le menu passe devant tous les écrans ouverts si on clique dessus, et ca, c'est pas bon, car il est ensuite impossible de récupérer les ecrans ouvert ^^, et de toute facon la contrainte est qu'il soit toujours derrière le reste

J'ai testé de changer au Onactivate/Ondesactivate la propriété formstyle, en la mettant en stayontop/ fsnormal (pour n'avoir en stayontop que la fiche activée) , mais cela n'est pas possible, j'ai des messages d'erreurs, et l'aide dit que c'est fortement déconseillé.

Donc je viens vous demander votre aide,si quelqu'un aurait une solution à me proposer.
Surtout que cela n'arrive que sous SP2.

Merci d'avance.

3 réponses

cs_chrisbert Messages postés 2 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 13 octobre 2007
13 oct. 2007 à 12:06
Ce menu a été mis en formstyle=FsNormal, les écran s'ouvrent en
stayontop afin que le menu ne passe jamais derriere les écrans ouverts.


Je me suis trompé ici, je voulais bien sur dire "afin que le menu ne passe jamais devant les écrans ouverts."
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
14 oct. 2007 à 13:40
Je n'ai pas le sentiment que çà soit un souci de XP sp1 ou sp2..
ton exposé n'est pas clair..
déjà, il y a un problème de vocabulaire..
qd tu parles de Menu-->> on pense tout de suite au composant TMainMenu alors que dans ton cas je ne suis pas certain que nous évoquons la même chose..Pourrais-tu nous fournir un peu de code..


Un bon schèma vaut mieux qu'un long...

cantador
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 oct. 2007 à 22:22
Salut,


Tu peux essayer de remplacer tes ShowMessage et MessageDlg par leur équivalent Win32 (MessageBox).


Cette fonction est appelée en interne lors d'un ShowMessage ou d'un
MessageDlg, et propose donc les mêmes possibilités... A ceci près
qu'elle prend un handle de fenêtre en paramètre.


Tu peux y mettre le handle de la fenêtre qui est le plus devant, ou
alors 0. Mais si tu mets 0, la MessageBox ne serat plus modale...
<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
0
Rejoignez-nous