Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 12-01-2009 16:28:26

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

[RESOLU] Sheet invisible dans une MDI

Salut
j'ai un petit souci avec des appels de sheet (opensheet) dans une MDI...

A partir du moment ou il existe un objet graphique, visible ou pas, dans ma MDI, l'opensheet fonctionne, enfin la valeur de retour est correct, mais la sheet reste invisible...

La sheet est de type child...

Si je passe par un open(), cela fonctionne très bien, mais je ne peux pas utiliser open()

Quelqu'un a t-il une idée??

Code: pb

//code dans l'open de la MDI
close(This.GetActiveSheet ( ))
integer li_test

li_test = opensheet(w_menu_info, This,0, Original!) //li_test vaut bien 1...

Merci de votre aide...

Dernière modification par Pilou007 (13-01-2009 10:11:39)

Hors ligne

 

#2 12-01-2009 16:33:45

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Sheet invisible dans une MDI

Bonsoir,

Tu as vérifié que la case "Visible" dans l'onglet "General" des properties de ta sheet est bien cochée?
Ou que tu ne modifies pas cette propriété par code?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 12-01-2009 16:42:42

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Sheet invisible dans une MDI

oh boh oui alors!!!!
oui bien sur, comme je viens de modifier mon dernier message....
si je supprime les objet de ma MDI, ça fonctionne, si j'utiliseopen au lieu de opensheet, ça fonctionne....
Merci

Hors ligne

 

#4 12-01-2009 16:49:07

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Sheet invisible dans une MDI

Ce ne serait pas une response ta sheet par hasard?

Aide Pb a écrit:

Opening response windows   Do not use the OpenSheet function to open a response window.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 12-01-2009 16:51:20

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Sheet invisible dans une MDI

Bon ok je viens de mettre mon message à jour trop tard, hihihihi, elle est de type child ma sheet...
Merci

Dernière modification par Pilou007 (12-01-2009 16:51:35)

Hors ligne

 

#6 12-01-2009 18:09:14

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Sheet invisible dans une MDI

Bonjour,

Ta fenêtre principale est bien de type : Main ?

Hors ligne

 

#7 12-01-2009 19:09:03

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Sheet invisible dans une MDI

Non ma fenêtre principale est de type MDI,

Le plus simple, c'est de le tester, et c'est très simple à faire...
Tu prends une MDI, tu y place un bouton un un statictext, dans l'open, tu lui fais opensheet( my_sheet, this) et on voit le résultat de suite....
merci

Hors ligne

 

#8 12-01-2009 22:58:21

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Sheet invisible dans une MDI

Bonjour,

Autant pour moi en fait je voulais effectivement dire mdi!.

Le comportement que tu observes est tout à fait normal, en fait la taille de la surface cliente pour dessiner les fenêtres mdi enfants n'est pas prise en charge par Powerbuilder lorsque tu positionnes des contrôles graphiques sur la fenêtre MDI, tu dois la retailler manuellement :

However, in a custom MDI frame window—where the client area contains controls in addition to open sheets—PowerBuilder does not size the client area; you must size it. If you do not size the client area, the sheets open but may not be visible and are clipped if they exceed the size of the client area.

Tu trouveras un exemple dans la documentation de Powerbuilder qui correspond exactement à ta situation pour retailler la surface cliente de la MDI :
Application Techniques -> Chapter 5 Building an MDI Application -> Sizing the client area

Hors ligne

 

#9 13-01-2009 09:21:30

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Sheet invisible dans une MDI

Salut Buck
Merci pour la réponse, de mon coté ça ne marche toujours pas...
Voici mon code, je vois bien mes bouton dans la MDI, mais toujours pas de sheet, si tu as une idée...
J'ai mis en commentaire la hauteur de la microhelp car cette propriétét n'existe pas...

Code: PB

integer li_width, li_height

li_width = This.WorkSpaceWidth() 
li_height = This.WorkSpaceHeight()



li_height = li_height - (this.cb_gestion_des_droits.y + this.cb_gestion_des_droits.height) 
//li_height = li_height - this.MicroHelpHeight 
li_height = li_height + this.WorkspaceY()

this.move( this.workspacex( ), this.cb_gestion_des_droits.y + this.cb_gestion_des_droits.height)

This.resize( li_width, li_height)

opensheet(w_menu_info, This,0, Original!)

Dernière modification par Pilou007 (13-01-2009 09:22:28)

Hors ligne

 

#10 13-01-2009 09:42:13

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Sheet invisible dans une MDI

Bonjour,

Il suffit simplement :

this.move => mdi_1.move
this.resize => mdi_1.resize

Hors ligne

 

#11 13-01-2009 10:11:20

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Sheet invisible dans une MDI

Salut Buck
Effectivement ça fonctionne mieux comme cela.....
Cela m'a permis aussi de comprendre ce qu'était la variable mdi_1 de type mdiclient déclarée lors de la création d'une fenêtre MDI..
Merci
Pilou

Hors ligne

 

#12 13-01-2009 13:16:40

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: [RESOLU] Sheet invisible dans une MDI

Rien à rajouter sur la réponse apportée au problème. Mais quant au problème lui-même...
Je ne connais rien du contexte de ton application. Mais par ailleurs, je connais très peu (de mémoire : aucune) d'applications utilisant le modèle MDI et qui disposent des contrôles graphiques dans le cadre MDI.
Ne serait-il pas plus compréhensible pour les utilisateurs de transformer "cb_gestion_des_droits" en un bouton de barre d'outils qui ouvre soit une boîte de dialogue, soit une feuille MDI adéquate ?

Hors ligne

 

#13 13-01-2009 14:51:17

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Sheet invisible dans une MDI

En fait c'est un peu plus compliqué que cela...
Je suis ici en mission pour plaquer un FW sur toutes les applications.... or certaine application démarre avec une MDI, d'autre avec une main, alors que toutes les appli sont SDI....
Donc en l'occurence, j'ai créé une MDI ancêtre et je la colle sur toutes les appli...
En plus celle qui avait une MDI de base, fait un opensheet dans l'open pour afficher une fenêtre d'info alors qu'une autre appli elle affiche des info dans des dw directement (c'est une main)....
De plus il y a une histoire de bouton de gestion de droit,  il y a  trois boutons size(0,0) et position (0,0) et je les ai mis dans la MDI ancêtre et ce sont eux qui me provoquaient ce phénomène sur l'appli qui a  été construite avec une MDI de base... le fonctionnement avec les boutons est particulier, mais ça fonctionne comme ils le souhaitent...

Bref un peu compliqué tout cela, mais bon il faut que j'avance comme on me le demande, je ne vais donc pas tout refaire et essayer d'avoir un FW au mieux...

Merci

Hors ligne

 

#14 13-01-2009 15:00:20

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Sheet invisible dans une MDI

FMolinas a écrit:

Mais par ailleurs, je connais très peu (de mémoire : aucune) d'applications utilisant le modèle MDI et qui disposent des contrôles graphiques dans le cadre MDI.



il me semblait que c'était une pratique à proscrire, d'autant que :

Keep in mind that if you add a control to the MDI frame you're responsible for resizing the MDI Client. Are you doing this already?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#15 13-01-2009 15:04:59

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Sheet invisible dans une MDI

Oui c'est vrai, mais il me semble que l'on a tous été débutant en pb....
Pour ma part je me rappelle du code que je faisait, je n'avait quasiment personne pour m'aider, en 2000 il n'existait pas pBàDonf , et donc ces appli sur lesquelles je travaille ont toutes été commencé il y a longtemp, par des débutant à l'époque, il y en a même une qui a été faite par des Roumains....
Bref parfois c'est le Whyyyyyyy!!!!!

Hors ligne

 

#16 13-01-2009 16:34:41

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Sheet invisible dans une MDI

Pilou007 a écrit:

.. il y en a même une qui a été faite par des Roumains....
Bref parfois c'est le Whyyyyyyy!!!!!

Je confirme pour les roumains.... :-)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22