SÉPARER UN ESPACE DE TRAVAIL DANS UNE FEUILLE MDI ( REPONSE FORUM)

cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 29 oct. 2003 à 10:44
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 5 mai 2008 à 10:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/17487-separer-un-espace-de-travail-dans-une-feuille-mdi-reponse-forum

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 mai 2008 à 10:38
en subclassant et en interceptant des WM_NCACTIVATE ou autre, ca doit etre faisable
cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015
3 mai 2008 à 12:11
Renfield, petite question :

Comment faire pour que la fenêtre MDI mère garde visuellement le focus lorsque l'on clique sur une form fille ?

On peut toujours bidouiller mais je pense que tu dois déjà y avoir remédié.

Cordialement,
ym_trainz
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 avril 2008 à 06:21
m'en souvenais même pas, cette source ^^
cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015
28 avril 2008 à 22:48
L'affichage est revenu. Je peux noter ;-)
cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015
28 avril 2008 à 22:47
Encore du super boulot, facilement exploitable !
Décidément, trop fort ce Rey !

Merci !

Cordialement,
ym_trainz

10/10 ! (mais je n'ai pas l'affichage des ***** pour voter :-)
cs_DomZ Messages postés 1 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 22 février 2005
22 févr. 2005 à 14:49
Excellent travail !

Existe-il des composants commerciaux comme celui-ci ou des composants plus élolués ?

Merci bcp
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juil. 2004 à 12:12
maximized ?

Il faut le coder soit même....(Via API ou en changeant la Width et le Height)

pour qu'elle suive les redimensionnements de ta MDI mère, a vrai dire, c'est censé le faire deja, puisque la propriété Align est definie...
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
20 juil. 2004 à 09:51
j'ai une autre question au passage, lorsque tu as ta MDI parent avec menu et statusbar, et que je crée une seule ReyMDIAssistant.

Est il possible de lui dire dans le Form Load que la ReyMDIAssistant soit en Maximised.
De même lorsque je redimensionne mon programme, la ReyMDIAssistant est redimensionné.

Pour la 2ème question, je pense que la réponse est oui, mais pour la 1ère je ne sais pas si c'est possible.

Merci
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
20 juil. 2004 à 09:38
Non c'est bon, j'ai trouvé
je n'ai pas regardé dans la barre d'outil.

merci de l'aide

je vais essayer de tester le tout avec mon appli


merci , c'est du bon boulot tout ça :-)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juil. 2004 à 09:33
En fait, on insère pas directement "une form" on place un Controle qui va ensuite etre definie comme fenetre parente d'une Form. De sorte que cette dernière soit incorporée au controle, dans la fenetre MDI

Dans la barre des outils, a coté des divers boutons et textboxes... tu dois voir le controle utilisateur présent dans le Zip...

il te suffit d'en placer un dans la MDIForm

ensuite, il faut aller ajouter du code......

dans le Zip, dans le code de la Form,
ce sont les lignes SetParent.....

si tu as besoin de davantage d'information.... hésites pas.
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
20 juil. 2004 à 08:53
je suis désolé mais là je ne comprend pas.
Si je prend l'exemple avec la MDI parent et que je supprime sur la MDI parent, par exemple les 2 form, et bien je ne sais pas comment le recréer.

La question est peut être bête mais comment tu fais pour insérer les 2 form sur la MDI parent ?


Merci
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juil. 2004 à 08:36
Ces deux form sont des Form classiques.... elles pourraient être remplacée par toute autre fenetre (bouton / Frame / PictureBox / Treeview...)

pour les placer où bon te semble, il te suffit de placer les UserControl comme bon te semble, et de lier tel control a la Form que tu aura choisie.
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
20 juil. 2004 à 08:31
il y a une chose que je ne comprend pas dans la source.
On a le contrôle utilisateur et dans la fenêtre principale (MDI parent) on a deux Form. une à gauche et une à droite.
Comment on fait ces 2 Form ?
pour en mettre une en haut, ou en bas ?


merci d'avance
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
13 juil. 2004 à 10:46
Je viens de retélécharger le zip et ça fonctionne correctement
ça ne plante plus

Merci bcp
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juil. 2004 à 10:35
NB : Xp ne change rien a la chose.....
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juil. 2004 à 10:34
normallement ca devrai plus pourtant !

tu devrais avoir ce code :

'# decharge toutes les fenetres....
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
SetParent Form1.hWnd, Me.hWnd
SetParent Form2.hWnd, Me.hWnd
Dim Form As Form
For Each Form In Forms
Unload Form
Next Form
End Sub

dans le Zip, les lignes SetParent etaient en commentaire .... je joulais verifier que c'est bien ca qui faisait planter, et j'ai oublier de les enlever.....
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
13 juil. 2004 à 09:39
J'ai essayé la nouvelle version que tu as mis en ligne, et elle plante toujours chez moi
je suis sous XP

MErci
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juil. 2004 à 09:03
corrigé....

il fallait de detacher les Form du controle, qui doit, je suppose etre dechargé trop tot

bonne continuation
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
13 juil. 2004 à 08:25
Bonjour,

je voudrais tester la cette source sous WInXP
le fichier zip contient encore la source qui plante sous XP

est il possible de mettre à jour cette source dans le zip.
J'ai lu les commentaires et j'ai voulu tester la source avec les corrections mais j'ai une erreur à la ligne

If Form.Name <> "MDIForm1" Then

Merci d'avance
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 oct. 2003 à 15:48
j'avais pas ce soucis.... désolé, ca aide pas au debug !!
je suis au boulot, et de chez moi j'aurais sans doute pu voir...

ces lignes sont la car bien souvent avec des MDI, des fenetres restent ouvertes, même malgré un End, tout depends du boulot qu'elles font...

la modif apportée est assez logique, je m'en veux de ne pas l'avoir vue....
jacquesmazurier Messages postés 3 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 30 octobre 2003
30 oct. 2003 à 14:59
Re,
j'ai résolu le problème en passant à false la propriété MDIChild des forms.

D'autre par je ne Unload pas la MDI, mais je ferme tous avec End :

Dim Form As Form
For Each Form In Forms
If Form.Name <> "MDIForm1" Then
Unload Form
End If
Next Form
End


Pas de disfonctionnements après cette modif, et le code reste à effet constant.
jacquesmazurier Messages postés 3 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 30 octobre 2003
30 oct. 2003 à 14:40
Salut,
Exact, je confirme le malaise sous Windows XP Pro.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 oct. 2003 à 14:24
Etrange !!!

je regardes ca dans l'apres midi, et je te tiens au courant....
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
29 oct. 2003 à 11:53
Ben c'est encore moi, il y à un blème malgré tout, sur win2000 lorsque l'on ferme l'application j'ai un message comme quoi VB6 a généré des erreures et sera fermé par windows etc.... et cela se produit lors du unload des forms ??
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
29 oct. 2003 à 10:44
Voilà du bon code à la Renfield, pas sure d'avoir tout compris comment ça marche, mais une chose est certaine je m'en servirai.
Allez je met 9