Classes ?

cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 26 févr. 2004 à 17:29
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 27 févr. 2004 à 07:41
Hello la compagnie

Un probleme me bloque en programmation, c'est le therme des classes. Je ne comprend pas ce que c'est éxactement, ni quelle est la différence sous VB entre un module et un module de classe. Je sais qu'il y en a, sinon sa éxisterai pas ! ;) , mais j'espere pouvoir compter sur vous pour m'expliquer !! Alors merci d'avance la compagnie ;)

@Z3RtY25 ==

3 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
26 févr. 2004 à 22:12
Module standard (extension .BAS) : Regroupe des procédure, fonctions, déclaration de variables, constante, etc ... à usage interne a ce module (déclaré Private) ou externe (décalré Public). Voici un exemple :
Tu as fait une fonction te permettant de lire dans un fichier INI à l'aide de l'API windows GetPRivateProfielString() et tu a besoin de cette fonction depuis plusieurs form de ton projet : Donc tu ecris ta déclaration pour l'API windows GetPRivateProfielString() (en Private) et ta fonction (en Public)dans un module que tu nomme "mdlINIFile.bas". Ainsi, tu peux appeler ta fonction depuis n'importe ou dans ton appli. Tu aurais pu faire tout cela dans un module de feuille tu vas me dire !! OIui mais comme cette partie de ton code concerne plusieurs feuille, il n'y a pas de raison qu'il soit dans le module de Form1, plustot que dans celui de Form2, etc ...
Ainsi tu le retrouve plus facilement et tu peux même réexploiter cette fonction pour un autre projet VB, juste en recopiant le fichier .BAS.
Pour un module de classe (extension .CLS), ca se corse un peu. Une classe est en fait une description d'un objet. Les textbox, les form, tous les controles que tu connais sont en fait des classes. Ou du moins, le textbox que tu poses sur une form est appelé une 'instance' de la classe 'Textbox'. En clair, une classe, donc un module de classe, définie les propriétés, les méthodes et les évènements d'un objet, car tu utilises les objets VB, mais tu peux fabriquer les tiens. Avec l'ex de tout à l'heure, Tu peux imaginer de créer une classe "INIFileClass", enregistrée dans un fichier "INIFileClass.CLS",
en lui ajoutant des déclaration de propriété (IniFileName par exemple) et de méthode (ReadString, par exemple) etensuite dans une form, tu ferais :
Dim Ini as new Inifileclass
Ini.IniFileName = "C:\toto.ini"
Mesgbox Ini.ReadString("Section1","CleA")
Pour plus de détail sur la construction de classe, tu dois te reporte au MSDN, car c'est un sujet vaste et ce n'est malheureusement pas l'endroit idéal pour t'expliquer cela en détail.

Christophe R.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 févr. 2004 à 22:38
Je vais essayer d'expliquer la différence entre les deux de façon claire

Un module peut servir à définir de
* fonctions pelemele qui sont utilisables dans tout le projet
* constantes utilisable partout
* utilisation aussi pour les declation des const, type, sub et function de l'API win 32

Je pense que tout tu le savais (j'ai peut etre oublié un point ou deux ;-)

Ensuite les classes la c'est pour la programation objet (bof en VB pour des puristes) il faut mieux utiliser VB.net ou c# ;-)

Alors pour les classes c'est un regroupement sont une structure spéciale des propriétés (champs) et des opérations(méthodes) d'un élément précis

En gros pour une voiture
class voiture
private m_couleur as string
private m_modele as string
private m_kilo as integer

public property set Couleur( couleur as string)
m_couleur = couleur
end property

public property get Couleur () as string
couleur = m_couleur
end property

public sub roule(kilo as integer)
m_kilo = m_kilo + kilo
end sub

public sub kilometage()
msgbox ( "mon kilometrage" & m_kilo
end sub

end class

'--appelle
dim v as new Voiture
dim v2 as new Voiture
v.modele = "Renault"
v.couleur =" rouge"
msgbox v.couleur
v.roule(10)
v.roule(20)
v.kilometrage()
v2.roule(v.kilometrage())

La tu remarques que les fonctions sont prefixer du nom de l'objet v de type voiture

Esperant d'avoir aider un peu
a comprendre les bases des classes
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
27 févr. 2004 à 07:41
Merci à vous 2 pour vos réponses, sa m'aide :)
Bonne prog les gars

@Z3RtY25 ==
0
Rejoignez-nous