Variables globales borland c++ builder - C++ - Programmation
Marsh Posté le 11-05-2004 à 09:22:33
et bien. pour une première question...
les variables globales c'est pas terrible. mais si vraiment...
il te faut faire une nouvelle unit, et tu incluera celle-ci dans les 2 forms.
Marsh Posté le 11-05-2004 à 10:01:44
sinon tu peux faire aussi des accesseurs dans la classe de la Form1, du genre :
Code :
|
comme ça ta variable est accessible en lecture depuis les autres classes
Marsh Posté le 11-05-2004 à 10:34:49
JagStang a écrit : et bien. pour une première question... |
J'ai fait :
Code :
|
dans unit2.cpp mais ca marche pas.
Marsh Posté le 11-05-2004 à 10:36:02
kheon a écrit : J'ai fait :
|
l'as-tu sauvé et ajouté au projet ?
Marsh Posté le 11-05-2004 à 10:44:23
oui oui
en fait j'explique ce que je veux faire :
Je fait un prog qui gere une liaison serie. Et je voudrais faire une deuxieme form pour configurer la liaison (com1, com2, vitesse ...)
J'ai donc mis sur cette form2 des radiobuttons et des edits et je voudrais que quand on click sur ok, le valeurs soit enregistrées dans des varialbe utilisable dans la form1.
Voila.
Marsh Posté le 11-05-2004 à 10:50:06
j'ai declarer cette variable en globale dans la form1 :
Code :
|
et quand je veux l'utiliser dans la form2 il me dit qu'il ne connait pas port
Marsh Posté le 11-05-2004 à 10:54:18
pourquoi const ?
et puis si je la declare dans le .h et que j'inclue le .h dens unit2 il me dit declaration multiple de port.
Marsh Posté le 11-05-2004 à 11:00:31
ben oui, il ne faut le DECLARER qu'une fois (dans le .h)
pourquoi const, pour ne pas pouvoir modifier la valeur de port, vu que celle-ci est en dur
Marsh Posté le 11-05-2004 à 11:50:06
kheon a écrit : j'ai declarer cette variable en globale dans la form1 :
|
tu travailles sous C++ Builder, pourquoi t'utilises pas la classe AnsiString de la VCL plutot que de coder des chaines de caractères façon C ?
à la rigueur tu pourrais aussi utiliser std::string, mais surtout pas cet immonde char *
enfin bon, je dis ça, je dis rien hein !
edit: et mes accesseurs, ils te conviennent pas ? ils seraient pourtant tout indiqués pour ce que tu veux faire
Marsh Posté le 11-05-2004 à 12:09:18
heu je suis pas tres calé niveau class
et j'utilise char * parce que la fonction createfile veux un char * en argument
Marsh Posté le 11-05-2004 à 12:18:07
kheon a écrit : heu je suis pas tres calé niveau class |
t'as une fonction membre d'AnsiString qui te permet de convertir l'AnsiString en char * : AnsiString.c_str()
tu peux donc déclarer ta chaine en AnsiString et utiliser CreateFile avec :
Code :
|
c'est quand même plus propre
Marsh Posté le 11-05-2004 à 12:27:59
kheon a écrit : |
Tu la déclares dans le .cpp, et ensuite dans le .h mais avec un "extern" devant sa déclaration dans ce .h
Marsh Posté le 11-05-2004 à 12:40:42
mais enfin, et mes accesseurs, c'est pourtant tellement pas sorcier et propre
Marsh Posté le 11-05-2004 à 12:49:47
Harkonnen aurais tu un bon livre a me conseiller pour apprendre
la poo en c++ ?
Marsh Posté le 11-05-2004 à 12:52:00
"Le langage C++", édition spéciale, de Bjarne Stroustrup (le créateur du langage)
Marsh Posté le 11-05-2004 à 14:50:51
Harkonnen a écrit : mais enfin, et mes accesseurs, c'est pourtant tellement pas sorcier et propre |
Trop propre
(perso je ferais des property, c'est encore plus propre, mais bon, c'est probablement parce que je suis programmeur Delphi )
Marsh Posté le 11-05-2004 à 09:18:57
Je souhaiterais pouvoir utiliser les variables de la form1 dans la form2. Comment faire ?
Merci.