Comment passer des variables ?

Résolu
Signaler
Messages postés
188
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2011
-
Messages postés
188
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2011
-
Bonjour à tous,

Je suis en VB 2010 mais je suppose que c'est pareil en 2008...

Voilà : je voudrais créer un Module dans lequel je déclare toutes mes variables globales. Puis, dans la feuille Main, me servir de ces variables. Je n'y arrive pas. Il doit sûrement falloir déclarer le module quelque part mais je ne trouve pas comment (et je sue pourtant...).

D'autre part, j'ai déclaré, dans la feuille Main, une variable Public 'Public FondDeLaFenêtre as string = "ControlDarkDark"' (la couleur que je veux au départ pour ma form, mais que l'utilisateur peut changer, d'où la variable.

VB plante en disant qu'une valeur String n'est pas une couleur déclarée dans le System.Drawing... Je veux bien, mais alors, c'est quoi qui est déclaré dans le System.Drawing ? Et si c'est un Long (par exemple), on trouve où le tableau des équivalences du nom en String et de la valeur en Long ?

Si je me trompe, criez fort... Ça me permettrait de déclarer, par exemple, 'PUBLIC FondDeLaFenetre as Long = 125365445'. Non ?

Deux petits tuyaux qui me rendraient grand service. Il faut que j'arrive à comprendre (ça ne veut pas rentrer...) comment ça marche. Pas grand chose pour l'humanité mais un grand pas pour moi. D'avance merci.

Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.

9 réponses

Messages postés
188
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2011

J'ai trouvé ma réponse :

[url]}http://www.vbfrance.com/codes/NET-COMBOCOLOR-TOUTES-COULEURS-DANS-COMBOBOX_43112.aspx/url

Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.
Messages postés
233
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
3 novembre 2011
1
Une couleur est de type "Color" :

Public FondDeLaFenêtre As System.Drawing.Color = System.Drawing.Color.Red

Simon
Messages postés
188
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2011

Ok, Merci pour cette bonne réponse.

Comment je fais pour déclarer mes variables globales au niveau d'un Module pour qu'elles soient effectives dans toutes mes forms ?

Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
Salut

Puis, dans la feuille Main, me servir de ces variables. Je n'y arrive pas


c'est à dire
dans le main
moduletruc.tavariable
Messages postés
188
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2011

Merci pour cette réponse mais j'ai un doute (peut-être pas du tout légitime d'ailleurs) :

Tu veux dire, par ex, dans ModuleTruc :
Public nomDeLaVille as String = "Marseille"

Dans la form Main, ou Option, ou Autre :

Ville = ModuleTruc.nomDeLaVille

C'est ça ?

Je croyais qu'il y avait une façon de déclarer la variable Globale, une fois pour toutes et pour toutes les forms, du genre :

dans ModuleTruc :
Public nomDeLaVille as String = String.empty

Dans la form Main, ou Option, ou Autre :
Ville = nomDeLaVille

Et, évidemment, si la valeur de nomDeLaVille change dans Main (en Paris par ex.), dans Options on aura la nouvelle valeur automatiquement, cad Paris et non plus Marseille.

Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
dans ModuleTruc :
Public nomDeLaVille as String = String.empty

Dans la form Main, ou Option, ou Autre :
Ville = nomDeLaVille

c'est bon aussi à condition que nomDeLaVille
est seulement déclaré dans ton module
et pas dans ton form Main
Messages postés
188
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2011

Re-merci pour cette bonne réponse.

Après plein d'essais, je suis rassuré, votre tuyau fonctionne parfaitement. C'est ce que je croyais avoir (pourtant...) fait mais ça ne fonctionnait pas. J'avais dû coincer mon code quelque part.

Par contre, j'ai une question subsidiaire. Dans mes essais, ça plantait et j'ai trouvé : c'était la variable sur la couleur. En fait, une couleur (ou plusieurs, ou toutes, je n'ai pas fait tout le tour) qui est donnée par la fenêtre 'Propriété' (F4), dans l'onglet 'System', c'est le cas de la couleur 'ControlDarkDark' par ex., n'est pas prise en compte par l'objet System.Drawing.Color.

Outre le fait que je vois pas bien la logique la dedans, cela implique la questions : y a-t-il un doc avec les couleurs acceptées et l'exemple coloré, pour voir à quoi ça correspond ? Certes, on peut certainement les trouver au coup par coup dans ces fameux onglets de la fenêtre Propriété, mais on a pas la vue d'ensemble.

Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
Salut

pas trop compris tu veux un document qui
illustre chaque couleur
http://en.wikipedia.org/wiki/Web_colors
Messages postés
188
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2011

Il y a deux façons de coder :

Public FondDeLaFenêtre As System.Drawing.Color = System.Drawing.Color.Red

et

Public FondDeLaFenêtre As SystemColors = SystemColors.Red

si j'ai bien compris...

Problème : les exemples de couleurs que l'on a dans les propriétés BackColor ou ForeColor ne fonctionnent pas avec ces deux Systems. Par exemple, la couleur ControlDarkDark de la fenetre 'Propriété' n'existe dans aucun des 2 Systems.

Donc, il faudrait la liste avec la réelle couleur en exemple (parce que la liste, sinon, on l'a déjà dans le library de Microsoft... mais sans couleur...) aussi bien pour le System.Drawing.Color que pour le SystemColors.

De plus, avoir une seule couleur en exemple, si cela existe, n'apporte pas grand chose. C'est mieux que rien, certes, mais if faudrait les avoir toutes, ou du moins un certain nombre ensemble, sous les yeux, pour se faire une réelle opinion et donc réaliser le choix le plus adapté.

Ai-je été plus clair ?

Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.