Ce sujet est résolu.
1 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
didier18 | #1 Posté le 17/3/2014 à 11:53:19 | ||||
Bonjour Je souhaiterai pouvoir accéder au travers d'une boucle for/next à plusieurs objets picturebox (déjà en place et nommés) afin de modifier leur contenu (soit attribuer une nouvelle image ou effacer celle qui s'y trouve. J'ai essayé la syntaxe suivante (qui ne fonctionne pas) Dim I as integer For I = 45 to 55 picturebox(I).picture=null Next Évidement la solution picturebox45.picture=null picturebox46.picture=null etc... fonctionne en direct, mais ce n'est pas très élégant et fastidieux... D'autant + que de 45 to 55 peuvent faire référence à d'autres valeurs (que je passerai en variables) Auriez-vous une solution à me proposer, merci par avance pour vos réponses. | |||||
Reivillo | #2 Posté le 17/3/2014 à 18:56:49 | ||||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | Bonsoir didier18.
Reivillo. Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||||
Flachy Joe | #3 Posté le 17/3/2014 à 19:04:50 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Salut en fait c'est plus simple de créer tes picturebox dans le code, par exemple :
Sinon il faut remplir initialement le tableau avec tes pictbox pour pouvoir ensuite y accéder par un indice.
Flachy Joe | ||||
didier18 | #4 Posté le 17/3/2014 à 21:12:39 | ||||
Bonsoir Merci à Reivillo et Flachy Joe pour votre réactivité. Malheureusement cela ne fonctionne toujours pas. En remplaçant les "()" par des "[]" comme me conseille Reivillo, j'obtient toujours l'erreur d'attribution d'un interger alors qu'un objet est attendu... J'ai également testé la soluce de Flachy Joe. Erreur à la 1ère ligne (Erreur de syntaxe dans FMain.class:3.). Apparement le "[11] ne passe pas ??? Donc j'ote le [11] -cela indiquai je suppose le nombre d'objets- et là ça passe... jusqu'à LesPictBox = New PictureBox(Me). Là nouveau message d'erreur "Référence d'objet NULL dans FMain:11. J'ai également testé en remplissant initialement le tableau (2ème partie de la soluce) et même message d'erreur mais peut être cla vient-il de la suppression du [11] ? D'après ce que j'en comprend Flachy Joe, on attribue une variable objet à des objets (picturebox)... Ne peut-on travailler directement sur les objets au travers d'une boucle for/next ? Heu... sur la Form j'avais bien entendu déposé 11 picturebox numérotés de 1 à 11. Ci-après le code complet des essais... ' Gambas class file Public LesPictBox As Object '[11] Public Sub _new() End Public Sub Form_Open() Dim i As Integer For i = 1 To 11 LesPictBox = New PictureBox(Me) '<--- Erreur objet NULL 'Placement de la picturebox LesPictBox.x = 64 * i LesPictBox.w = 64 Next LesPictBox[1] = PictureBox1 LesPictBox[2] = PictureBox2 LesPictBox[3] = PictureBox3 LesPictBox[4] = PictureBox4 LesPictBox[5] = PictureBox5 LesPictBox[6] = PictureBox6 LesPictBox[7] = PictureBox7 LesPictBox[8] = PictureBox8 LesPictBox[9] = PictureBox9 LesPictBox[10] = PictureBox10 LesPictBox[11] = PictureBox11 End Public Sub Effacer(De As Integer, A As Integer) Dim I As Integer For I = De To A LesPictBox[I].picture = Null Next End | |||||
Flachy Joe | #5 Posté le 17/3/2014 à 21:21:01 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Quelle version de gambas tu utilises ? Mon code est valide pour Gambas3 (testé avec la version 3.5.90). Revoit la doc sur la déclaration et l'utilisation des tableaux. http://gambasdoc.org/help/comp/gb/object%5B%5D?v3 Flachy Joe | ||||
didier18 | #6 Posté le 17/3/2014 à 21:35:43 | ||||
J'utilise la version 3.5.2. Mais je pense que meme avec une version ultérieure, il doit y avoir une solution identique ? Arghh l'aide est en anglais... j'aurai du travaillé + à l'école... Bon ben apparemment c'est ma version de Gambas qui est "beuguée"... J'ai les mêmes message d'erreur en utilisant l'exemple "objtexbox". | |||||
Reivillo | #7 Posté le 18/3/2014 à 15:05:43 | ||||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | Tu utilises par exemple un tableau de 11 éléments: Tes éléments seront indexés de élément[0]...à...élément[10] l'indexage démarre à [0] et non à [1]. Quant tu invoques l'élément[11], tu as une Erreur, normal, l'élément[11] n'existe pas, il te faudrait un tableau à 12 éléments... Mais pour contourner ce problème, tu peux créer tes éléments dynamiquement.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||||
Reivillo | #8 Posté le 18/3/2014 à 18:00:21 | ||||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | Le Code, du message précédent à été modifier. Fonctionne sur Gambas 3.5.2. Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||||
didier18 | #9 Posté le 18/3/2014 à 18:03:11 | ||||
Et pis ça fonctionne !!! Bonsoir et MERCI Reivillo en créant les éléments dynamiquement on peut donc les manipuler. C'est un peu plus compliqué que ce que je tentais initialement mais bon le principal c'est d'y arriver. Merci également à Flachy Joe ta participation (même si je ne m'explique toujours pas pourquoi j'ai une erreur quand je tape en déclaration de variable "Public LesPictBox As Object '[11]" ou que je reprend l'exemple "PUBLIC aobjDisplay AS Object[9, 9]". Peut être un autre post... | |||||
Reivillo | #10 Posté le 18/3/2014 à 18:15:27 | ||||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | ou que je reprend l'exemple "PUBLIC aobjDisplay AS Object[9, 9]".Essaye ceci:
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||||
didier18 | #11 Posté le 18/3/2014 à 18:25:13 | ||||
Effectivement le NEW fait tout (plus de message d'erreur)! Pas si beugué que ça la crevette... Faut juste lui écrire correctement 2 problèmes résolu en 1 fois Bravo et merci encore Reivillo. | |||||
1 |