jarabito Posté(e) le 8 janvier 2009 Posté(e) le 8 janvier 2009 Bonjour tout le monde, Je code une petite application et je viens de me taper contre un mur. Je ne sais plus quoi ou comment faire... J'ai une collection avec un nombre d'entités dans mon module, et je veux faire appel à une userform, montrer les entites dans un listbox et laisser l'utilisateur choisir s'il veut enlever des entites ou pas. En fait, je recupere des points, qui serviront à faire une spline, je veux dire à l'utilisateur "voila tous les points, si tu veux oter un, efface-le de la liste et puis clique sur ok". Je sais comment faire un listbox et le remplir, mais je ne sais pas comment integrer ma collection. Effacer un item d'un liste est facile, mais comment je fais le lien avec les items dans la collection??? Je fais un simple Public Sub Liste(Value) oCount = Value.count for Ii = 1 to oCount ListBox1.AddItem ("Point " & Ii) Next End SubPour remplir ma liste et un Public Sub SupButton_Click() If ListBox1.ListCount >= 1 then If ListBox1.ListIndex = -1 then MsgBox "Merci de choisir un point à enlever" Exit Sub End If ListBox1.RemoveItem (ListBox1.ListIndex) End If End Subpour effacer des points. mais maintenant je ne sais pas comment dire voila, efface les mêmes points de la collection et reprends la main avec catia.Quelqun a une idée?? Merci à tous cho Luis [Edité le 8/1/2009 par jarabito]
marc54 Posté(e) le 8 janvier 2009 Posté(e) le 8 janvier 2009 Salut Luis, Au final, dans ta liste il ne va rester que les points que tu veux. Pour créer ta spline, tu devras prendre chaque élément de ta liste, et parcourir chaque élément de ta collection pour voir si le nom du point correspond.Sinon, dans ta collection de points à l'écran, il y a peut-être une fonction GetItem qui te permet de trouver immédiatement un point en fonction de son nom. Mais il faut que dans ta liste il y ait exactement le nom du point. Pas sûr quand je vois ton bout de code. Marc http://www.3dsys.fr
jarabito Posté(e) le 8 janvier 2009 Auteur Posté(e) le 8 janvier 2009 Salut Marc, en fait non, je ne pensais pas utiliser le nom exact de chaque point, je pensais pouvoir eliminer les items de la collection selon leur index, et après faire la spline avec ce qui restait... Sur le petit code que j'ai posté il y avait juste la creation d'une liste avec le nombre des points dans la collection, et le traitement de la liste, mais je ne savais pas comment faire le lien entre les deux... si selon toi il faut passer par le nom des points, je vais modifier ça et faire differement... par contre, comment est-ce que je compare les elements dans la collection avec les elements dans la liste?:D merci [Edité le 8/1/2009 par jarabito]
marc54 Posté(e) le 8 janvier 2009 Posté(e) le 8 janvier 2009 Quand tu vas scanner ta collection de points, tu pourras avoir son nom avec Pt.Name.Et dans la liste tu dois le savoir, un truc du genre ListBox1.List(i). Je ne sais plus, entre VBA et .Net je m'emmêle souvent les crayons. J'avais commencé à faire ce programme pour le vendre, mais je n'ai jamais terminé... Un jour ... Marc http://www.3dsys.fr
jarabito Posté(e) le 8 janvier 2009 Auteur Posté(e) le 8 janvier 2009 HAHHAHAHAH en fait, je vais un peu plus loin que ça, l'idée est une creation interactive des fibres neutres, et j'arrive à le faire en faissant une SelectElement directement sur CATIA (la selection des points), mais je voulais ajouter un peu de forme et afficher une fenetre qui donne à l'utilisateur ses points pour qu'il puisse travailler avec eux... mon souci par contre n'est pas comment comparer les objets en eux mêmes, elle porte plutôt sur comment pouvoir lire la collection ou la liste dans la forme et le module... Je bloque car je n'utilise pas enormement les formes, je passe plutôt par les modules, car jusqu'à maintenant je faissais de l'automatisation des analyses géométriques, et je n'avais pas vraiement besoin d'une forme... Maintenant que je dois (veux) le faire, je bloque un peu... le vb je l'ai pris completement en autoaprentissage et j'ai quelques trous par-ci et par-la... merci pour le coup de main... luis
jarabito Posté(e) le 8 janvier 2009 Auteur Posté(e) le 8 janvier 2009 Et voila, je crois que j'ai trouvé comment faire.... Si tu declares la collection comme publique dans ton module, tu peux la recuperer avec la forme en faissant un Set Po_Forme = SectionMini.ColPoints et apres, il faut juste faire un Po_Forme.Remove ListBox1.ListIndex avec chaque point que tu effaces... maintenant il faut juste recuperer la collection dans le module et faire le spline :D
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant