Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai une petite question à propos de l'objet Window de PowerBuilder.
Je cherche à créer une boucle qui parcourirais tous les objets d'une Window pour repérer les objets de type DataWindow. Avec cette boucle je pourrais créer génériquement un bouton imprimer pour n'imprimer que le contenu de la DataWindow.
J'ai déjà trouvé la propriété control[] de la Window mais ce que je cherche maintenant c'est la fonction qui permet de retrouver le nombre de contrôles présents sur cette Window.
Avez vous une idée sur cette fonction ou existe t'il une méthode plus simple?
Par avance merci de vos réponses
Dernière modification par Nephtis (10-07-2007 13:05:29)
Hors ligne
Bonjour,
Integer li_count
li_count = UpperBound( w_1.control )
NB : n'inclut pas les objets contenus dans les tabs
Hors ligne
Salut !
sinon, va jeter un coup d'oeil sur le contenu de l'outil que j'ai developpé... FindPick...
ca lit tous les ojbets d'une fenetre... que ce soit un objet ancestor ou non...
Hors ligne
WAAAAOOUUUU!!!
Vous êtes super rapides. Merci beaucoup les gars je vais tester ça tout de suite.
Hors ligne
Bon j'ai un peu de temps pour me consacrer à cette partie de mon code.
Je suis maintenant un peu bloqué pour récupérer le tableau de contrôles.
Comme je l'ai dit précédement, ce que j'essaie de faire c'est un bouton générique qui permet d'imprimmer n'importe quelle la première datawindow présente dans la liste de ces contrôles.
Je code donc le script clicked de ce bouton et j'ai entre autre ce bout de code
PowerObject list_objet_fen[] // Initialisation des variables list_objet_fen = Parent.Control[]
Et bien sur j'ai un message d'erreur qui survient lorsque j'essaie d'enregistrer mon script
Incompatible property control for the type graphicobject
J'ai regardé dans le browser et je ne trouve pas de fonction pour les objets de type graphicobjects qui renverraient le tableau de contrôles.
Comment faire pour le récupérer?
Merci de vos reponses.
Dernière modification par Nephtis (10-07-2007 10:01:23)
Hors ligne
Ton problème c'est que PB ne sait pas de quel type est le parent de ton bouton :
userobject luo_parent window lw_parent windowObject lobj_array[] choose case parent.TypeOf() case window! lw_parent = parent lobj_array = lw_parent.control case userobject! luo_parent = parent lobj_array = luo_parent.control end choose
Le deuxième cas (userObject) te permet de gérer les onglets des tab control.
Nephtis a écrit:
J'ai regardé dans le browser et je ne trouve pas de fonction pour les objets de type graphicobjects qui renverraient le tableau de contrôles.
En même temps c'est un petit peu normal qu'un commandButton ne possède pas une liste d'objets
Hors ligne
shahin a écrit:
Ton problème c'est que PB ne sait pas de quel type est le parent de ton bouton :
Code: pb
userobject luo_parent window lw_parent windowObject lobj_array[] choose case parent.TypeOf() case window! lw_parent = parent lobj_array = lw_parent.control case userobject! luo_parent = parent lobj_array = luo_parent.control end chooseLe deuxième cas (userObject) te permet de gérer les onglets des tab control.
Merci Shahin, j'ai pensé ensuite à cette solution mais je savais pas trop quels types d'objets possedaient la propriété control[]
Nephtis a écrit:
J'ai regardé dans le browser et je ne trouve pas de fonction pour les objets de type graphicobjects qui renverraient le tableau de contrôles.
En même temps c'est un petit peu normal qu'un commandButton ne possède pas une liste d'objets
C'est sur le type graphicobjects que j'ai regardé les fonctions et propriétés
En tout cas merci pour ta reponse je vais tester ça tout de suite
Testé et ok
Dernière modification par Nephtis (10-07-2007 13:06:01)
Hors ligne