Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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 03-03-2009 17:28:45

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

[RESOLU] Comment créer dynamiquement un control

Bonsoir à tous,

J'avais une petite question à poser:

Est-ce qu'il possible de créer, dynamiquement et à partir du code powerbuilder, un control dans un object  comme par exemple : insérer dynamiquement une SingleLineEdit dans une fenêtre en lui donnant sa position dans la fenêtre.

NB: le SingleLineEdit ne se trouve pas dans la liste control de l'objet fenêtre.

Merci pour vous

Dernière modification par mattdamon (04-03-2009 09:26:18)

Hors ligne

 

#2 03-03-2009 18:33:02

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

Re: [RESOLU] Comment créer dynamiquement un control

oui (mais il vaut mieux passer par une DW)

Code: pb

// ex de code dans un bouton de fenêtre
SingleLineEdit sle_new

sle_new = Create SingleLineEdit
sle_new.Text = 'hello world'
sle_new.Width = 500
sle_new.Height = 100
sle_new.Visible = True
Parent.OpenUserObject( sle_new, 50, 50 )

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

Hors ligne

 

#3 04-03-2009 08:00:33

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [RESOLU] Comment créer dynamiquement un control

Bonjour à tous,

erasorz a écrit:

oui (mais il vaut mieux passer par une DW)

Oui je sais que avec la DW sera plus facile a le créer et le manipuler, mais pour l'instant je préfère travailler avec la création dynamique des controls...

dans l'événement open, j'ai mis le code suivant mais ça va pas marcher: 

Code: pb

// ex de code dans le open de la fenêtre

integer i
SingleLineEdit sle_new[]

FOR i=1 TO 10
sle_new[i] = Create SingleLineEdit
sle_new[i] .Text = 'hello world'
sle_new[i] .Width = 100
sle_new[i] .Height =100
sle_new[i] .Visible = True
Parent.OpenUserObject( sle_new[i] , i +50, i+50 )
NEXT

Avec ce code, je voulais créer un grand nombre des SLE avec des positions différentes. 

Bonne journée

Dernière modification par mattdamon (04-03-2009 08:10:55)

Hors ligne

 

#4 04-03-2009 08:10:56

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

Re: [RESOLU] Comment créer dynamiquement un control

mattdamon a écrit:

dans l'événement open, j'ai mis le code suivant mais ça va pas marcher: 



bouton / fenêtre => Parent.xxx
open / fenêtre => This.xxx


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

Hors ligne

 

#5 04-03-2009 08:15:20

micmx  
Membre Geek
Date d'inscription: 02-02-2009
Messages: 84
Pépites: 1,028
Banque: 1,383,846,119

Re: [RESOLU] Comment créer dynamiquement un control

Si ce n'est que tous tes SLE seront disposés de façon diagonale
X
X
  X
    X

:P

Et aussi attention à ceci :

When you open a user object during execution, the window does not destroy the user object automatically when you close the window. You need to call CloseUserObject to destroy the user object, usually when the window closes. If you do not destroy the user object, it holds on to its allocated memory, resulting in a memory leak.

Hors ligne

 

#6 04-03-2009 08:16:26

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [RESOLU] Comment créer dynamiquement un control

Merci erasorz pour votre attention. 

Est-ce que vous pouvez me dire pourquoi il n'a pas inséré 10 SLE dans ma fenêtre ?

Hors ligne

 

#7 04-03-2009 08:26:54

micmx  
Membre Geek
Date d'inscription: 02-02-2009
Messages: 84
Pépites: 1,028
Banque: 1,383,846,119

Re: [RESOLU] Comment créer dynamiquement un control

Je suppose que comme erasorz t'as mis un exemple à utiliser dans l'évènement d'un bouton => la fenêtre = parent
                                                          ton exemple est utiliser dans l'évènement de la fenêtre => la fenêtre = this ..

Essaye donc de remplacer "parent" par "this"

Dernière modification par micmx (04-03-2009 08:27:18)

Hors ligne

 

#8 04-03-2009 08:50:59

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

Re: [RESOLU] Comment créer dynamiquement un control

le code avec la boucle fonctionne très bien, mais les contrôles ne sont espacés que d'un point, ils sont quasiment superposés...

essaye avec Parent.OpenUserObject( sle_new[i] , 50, i*100 )


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

Hors ligne

 

#9 04-03-2009 09:24:57

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [RESOLU] Comment créer dynamiquement un control

Merci à tous ça marche bien maintenant 

Dernière modification par mattdamon (04-03-2009 09:25:45)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22