Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
879 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Copie de controles dynamiquement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Copie de controles dynamiquement

n°295292
fight
Posté le 28-01-2003 à 10:34:14  profilanswer
 

voila depuis hier je galère.
bon on vas prendre la base
un form avec un controle text1 et son index a 0
le but est de faire un load de se text1 en changeant son index bien sur.
Le principe est de conserver les noms des zones de saisies.
Mais voici le petit hic (il en fallait bien un quand meme)
On ne sait pas d'avance si nous aurons un text1, un combo1....
Actuellement je fait une recherche sur la collection controls mais je n'arrive pas a faire le load en créant une copie de l'objet ou en créant le control.
Premier cas :

Code :
  1. For Each Control In Form2.Controls
  2.     If Control.Container.Name = "frm_2" Then
  3.         Set txt_box = Control
  4.         Form2.Controls.Add "VB.TextBox", "Text1", Form2.frm_2
  5.         Load txt_box
  6.     End If
  7. Next Control


la il me dit que le control text1 existe déja (logique)
 
autre cas :

Code :
  1. For Each Control In Form2.Controls
  2.     If Control.Container.Name = "frm_2" Then
  3.         Set test = Control
  4.         Set tt = Control
  5.         Load test(1)
  6.     End If
  7. Next Control


la il sort erreur d'execution 344 "vous devez spécifier un index pour le groupe d'objet"
 
bien sur si je met "Load text1(1)" la il passe :/
 
Si quelqu'un a une idée ou juste une piste je prend :'(

mood
Publicité
Posté le 28-01-2003 à 10:34:14  profilanswer
 

n°295312
drasche
Posté le 28-01-2003 à 11:22:11  profilanswer
 

si ma mémoire est bonne, ton Load Text1(1) crée le contrôle que tu désires.  Quant à faire une "copie" d'un objet, je n'en ai jamais fait et je me demande si c'est vraiment possible de copier un objet visuel.
 
Dans MSDN, il y a une technique décrivant ce que tu veux faire, et que tu trouveras dans la documentation relative à l'objet Winsock, qui, bien que pas vraiment visuel, peut être "empilé" sur ton array grâce à des load ou unload de l'élément voulu.  Va voir ces articles pour plus de détails.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°295316
fight
Posté le 28-01-2003 à 11:26:49  profilanswer
 

t'as mémoire est bonne.
mais mon problème c'est que dans la form que j'utilise actuellement j'ai bien un text1, mais dans l'application finale, je ne saurais pas combien j'aurais de text, de combo étant donné qu'ils seront créés dynamiquement d'apres d'autres paramètres  :(

n°295339
drasche
Posté le 28-01-2003 à 11:59:29  profilanswer
 

ok.  à mon avis tu ne pourras pas faire de copie.  Il te faudra initialiser les propriétés du TextBox nouvellement créé, je pense surtout aux coordonnées.  N'ayant jamais fait ce genre de choses sur un contrôle visuel, je ne sais pas à quel endroit il va apparaître.  Peut-être sera-t-il initialisé sur base de ton TextBox en index 0, ce qui faciliterait les choses, mais je n'en suis pas certain.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°295381
fight
Posté le 28-01-2003 à 13:36:40  profilanswer
 

oui oui ca c pas un probleme
le seul probleme c de le creer en passant par une variable (et la g pas le choix :/)
c juste l'index qui m'embete

n°295384
drasche
Posté le 28-01-2003 à 13:43:16  profilanswer
 

au fait, je n'ai pas compris pourquoi tu veux l'ajouter à la collection des contrôles, cette opération est implicite dans ce cas il me semble.  Et puis rien ne t'empêche de l'assigner à une variable, mais après création seulement.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°295394
fight
Posté le 28-01-2003 à 13:53:18  profilanswer
 

alors dans ma frame (ou form peut importe)
je vais avoir des controles textbox, combo .... mais je ne sais pas ce qu'il y aura etant donné que ceux ci seront créés au moment de l'exécution.
Tous ces controles sont sur une meme ligne (visuellement parlant)
L'utilisateur à l'aide d'un bouton sera en mesure de copier la ligne (toujours visuellement parlant)
D'ou l'interet de détecter les controles dans la frame (ca ca marche) et de faire un load sur le control détecté.
 
Prenons une variable test définie comme controle
Si je fait un load test, ca me met une erreur "objet déjà chargé" tout ce qu'il y a de plus logique.
Mais si je fait un load test(1) ou load test.index(1) ca ne marche pas et me met l'erreur 344 "vous devez spécifier un index pour le groupe d'objet"  
 
Voila le probleme :'(
Le but est de pouvoir faire des load de controles avec une fonction sachant que les noms ne seront pas connus à l'avance ://
 
Ahhhhh je viens d'avoir une idée :)
 
Edit : non ct pas une bonne idée


Message édité par fight le 28-01-2003 à 14:17:49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Copie de controles dynamiquement

 

Sujets relatifs
Copie d'un fichier dans un tableau a 2 entrées de stringconstructeur de copie de base
Comment protéger un programme contre la copie?Comment changer dynamiquement le contenu de tag <select> ?
copie de chaines de caractèresCopie de fichiers automatisé
probleme de hierarchie de classes et copie profonde. [urgent]Créer un contrôle dynamiquement
Copie de fichiers ou duplication d'un répertoireRecuperer les champ Input dynamiquement...
Plus de sujets relatifs à : [VB] Copie de controles dynamiquement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR