Gambas France BETA


Pas de compte ? Incription

ME.Controls !??

Ce sujet est résolu.

1
AuteurMessages
Fly06#1 Posté le 11/4/2012 à 15:27:54
Bonjour à tous,
Je découvre Gambas2 en développant un petit projet de calculateur financier et je bloque sur un problème d'accès aux propriétés MinValue et MaxValue d'un controle de type ScrollBar.

Je peux accéder (lecture/écriture) à ces propriétés via :
myScrollBar.MinValue = 100

Par contre, la ligne de code qui suit ne fonctionne pas :
ME.Controls["myScrollBar"].MinValue = 100

J'obtiens ce message d'erreur :
Unknown symbol 'MinValue' in class 'Controls'

Savez-vous d'où vient l'erreur et si il y un moyen d'accéder aux propriétés de mes ScrollBar sans utiliser le nom du control en dur dans le code.
En fait je souhaiterais les gérer globalement via un tableau...
Merci.
Prokopy#2 Posté le 11/4/2012 à 22:25:49
Kinder PinguiSalut Fly06,

1
ME.Controls["myScrollBar"].MinValue = 100


Cette ligne ne fonctionne pas pour une simple raison : Me.Controls est un tableau de Control. Or tu essaies d'accéder à la propriété MinValue d'un Control ... propriété qui n'existe pas sur les Control génériques (elle n'existe que pour les ScrollBar et quelques autres).

Savez-vous [...] si il y un moyen d'accéder aux propriétés de mes ScrollBar sans utiliser le nom du control en dur dans le code.
En fait je souhaiterais les gérer globalement via un tableau...


Quand tu dis "gérer globalement", tu veux dire accéder à ces contrôles partout dans le code, pas seulement dans le code de ton formulaire c'est bien ça ?
Dans ce cas plusieurs possibilités :

  • Soit tu crées une fonction publique dans le code de ton formulaire que tu pourras appeller ailleurs. Par exemple :

    1
    2
    3
    4
    PUBLIC SUB FaireDefiler(distance AS INTEGER)
    myScrollBar.Value += distance
    'Peut être autre chose ici
    END
    1
    myForm.FaireDefiler(12)'Appel ailleurs
  • Soit tu rends les contrôles de tes formulaires publics en cochant l'option correspondante dans le menu Projet > Propriétés > Options de l'IDE, puis tu y accèdes comme ceci :
    1
    myForm.myScrollBar.Value += 10


Reste à voir ce qui te convient le mieux. :)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
Fly06#3 Posté le 12/4/2012 à 20:18:38
Bonsoir,

Effectivement, ME.Controls ne permet d'accéder qu'aux propriétés génériques des controls.

J'ai fini par comprendre que pour gérer des contrôles globalement (dans un tableau) il fallait les créer dynamiquement :

Vous pouvez facilement créer un tableau de contrôles, mais vous devez le faire dans le code. Il n'existe aucune façon de le faire de manière graphique.

http://gambasdoc.org/help/doc/diffvb?fr

Le code du programme Démineur m'a bien aidé :
http://www.gambasforge.org/code-9-demineur.html

Merci pour avoir le temps de répondre à une heure tardive ;-)


jeanyvon#4 Posté le 13/4/2012 à 07:45:14
Gambas? Ma! Et gustoMerci,
ça fait plaisir de savoir qu'on sert à quelque chose
Jy
Vieillir? On peut retarder mais pas y échapper!
1