Comment faire pour qu'une fenêtre fille quitte son conteneur ?

Signaler
Messages postés
7
Date d'inscription
mardi 25 juin 2002
Statut
Membre
Dernière intervention
20 juin 2006
-
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
-
Bonjour, comment faire en sorte qu'une fenêtre fille d'un programme externe externe sorte de sa zone client ? c'est à dire pour qu'on puisse la déplace en dehors des limites de la fenêtre qui la contient ? Comment faire pour qu'elle ne soit plus fille donc :)
Merci de votre aide !

8 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Il y a les applications MDI et SDI.
La différence ne s'arrête pas au nom de baptême mais au mode de fonctionnement des fiches enfants.
Regardes dans l'aide en ligne sur FormStyle.

May Delphi be with you.
Delphi advanced
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
DelphiProg, si je ne m'abuse, tu ne réponds pas à GuyoSt... Et tu ne l'aides pas plus, vu qu'il parle d'application externe... ;)
Je me trompe ??

Dans la théorie, je suppose qu'il faudrait récupérer le handle de cette fenêtre avec un FindWindow, puis lui envoyer un message ou un truc dans le genre... Malheureusement, je ne peux que t'annoncer la théorie !!

Bestiol.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Bestiol, tu as raison.
L'expression "programme externe" m'a échappé.
Envoyer un message à une fenêtre d'une autre application peut se faire. Mais je ne connais pas de message qui aurait pour but de faire modifier des propriétés de cette nature (vu unité Messages.pas et rien trouvé).

May Delphi be with you.
Delphi advanced
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
En fait, je ne pense pas que ce soit possible... Mais bon, peut-être Microsoft a pensé à cette possibilité pour les programmeurs que nous sommes !!

Bestiol.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Ce serait possible à condition que l'application externe, qui héberge la fenêtre, expose des procédures ou fonctions (style application COM) ou permette l'échange d'informations via DDE.

May Delphi be with you.
Delphi advanced
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
En gros, c'est un peu trop "sélectif", comme condition, non ??

Bestiol.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
C'est effectivement sélectif. Mais essayes d'imaginer comment une application, conçue selon le mode MDI, pourrait réagir si subitement on changeait son mode de positionnement des fenêtres sans qu'elle en soit prévenue !
Imagines que tu aies plusieurs fiches ouvertes et que tu éxécutes la méthode Tile alors qu'une fiche soit sortie du cadre de la fiche principale sans en avertir l'application ? Quelles en seraient les conséquences ? Difficile de prévoir, non ?
Je parierais sur un plantage certain.

May Delphi be with you.
Delphi advanced
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Tu n'as pas tort... A moins que la dite application vérifie si toutes ses fenêtres sont bien là...

En conclusion, GuyoSt, je pense que tu devrais abandonner l'idée de défaire une fiche fille de son parent... Tu n'as qu'à faire l'essai sur une application à toi :
Tu crées une application MDI, tu mets un bouton pour rendre une de tes fiches enfants en "fsNormal", et tu demandes à ton application de mettre toutes les fenêtres en mosaïque... Ah ? Bah non, ça marche normalement !!! L'application ne dit rien... Mais rien ne nous dit qu'une application externe acceptera !!

A toi de voir, mais je pencherais pour chercher autre chose...

Bestiol.