Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1869 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Variables globales borland c++ builder

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variables globales borland c++ builder

n°721426
kheon
Posté le 11-05-2004 à 09:18:57  profilanswer
 

Je souhaiterais pouvoir utiliser les variables de la form1 dans la form2. Comment faire ?
Merci. :)

mood
Publicité
Posté le 11-05-2004 à 09:18:57  profilanswer
 

n°721427
jagstang
Pa Capona ಠ_ಠ
Posté le 11-05-2004 à 09:22:33  profilanswer
 

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.

n°721502
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-05-2004 à 10:01:44  profilanswer
 

sinon tu peux faire aussi des accesseurs dans la classe de la Form1, du genre :
 

Code :
  1. class TForm1
  2. {
  3.    private:
  4.       int var;
  5.    public:
  6.       TForm1();
  7.       int GetVar();
  8. };
  9. TForm1::TForm1()
  10. {
  11.    var = 3;
  12. }
  13. int TForm1::GetVar()
  14. {
  15.    return var;
  16. }


 
comme ça ta variable est accessible en lecture depuis les autres classes


Message édité par Harkonnen le 11-05-2004 à 10:02:41
n°721547
kheon
Posté le 11-05-2004 à 10:34:49  profilanswer
 

JagStang a écrit :

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.


J'ai fait :

Code :
  1. #include "unit1.h"


dans unit2.cpp mais ca marche pas.

n°721552
jagstang
Pa Capona ಠ_ಠ
Posté le 11-05-2004 à 10:36:02  profilanswer
 

kheon a écrit :

J'ai fait :

Code :
  1. #include "unit1.h"


dans unit2.cpp mais ca marche pas.


l'as-tu sauvé et ajouté au projet ?

n°721568
kheon
Posté le 11-05-2004 à 10:44:23  profilanswer
 

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.

n°721571
jagstang
Pa Capona ಠ_ಠ
Posté le 11-05-2004 à 10:46:54  profilanswer
 

qu'entends-tu par "ça ne marche pas ?"

n°721578
kheon
Posté le 11-05-2004 à 10:50:06  profilanswer
 

j'ai declarer cette variable en globale dans la form1 :

Code :
  1. char *port = "COM1";


et quand je veux l'utiliser dans la form2 il me dit qu'il ne connait pas port

n°721583
jagstang
Pa Capona ಠ_ಠ
Posté le 11-05-2004 à 10:51:52  profilanswer
 

il faut la déclarer les variables dans le .h

n°721584
jagstang
Pa Capona ಠ_ಠ
Posté le 11-05-2004 à 10:52:03  profilanswer
 

oublie pas const non plus dans ce cas

mood
Publicité
Posté le 11-05-2004 à 10:52:03  profilanswer
 

n°721588
kheon
Posté le 11-05-2004 à 10:54:18  profilanswer
 

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.

n°721592
jagstang
Pa Capona ಠ_ಠ
Posté le 11-05-2004 à 11:00:31  profilanswer
 

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


Message édité par jagstang le 11-05-2004 à 11:01:06
n°721678
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-05-2004 à 11:50:06  profilanswer
 

kheon a écrit :

j'ai declarer cette variable en globale dans la form1 :

Code :
  1. char *port = "COM1";




[:aaah]
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 ? :o
à la rigueur tu pourrais aussi utiliser std::string, mais surtout pas cet immonde char *
enfin bon, je dis ça, je dis rien hein ! :o
 
edit: et mes accesseurs, ils te conviennent pas ? ils seraient pourtant tout indiqués pour ce que tu veux faire


Message édité par Harkonnen le 11-05-2004 à 11:51:53
n°721711
kheon
Posté le 11-05-2004 à 12:09:18  profilanswer
 

heu je suis pas tres calé niveau class
et j'utilise char * parce que la fonction createfile veux un char * en argument

n°721726
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-05-2004 à 12:18:07  profilanswer
 

kheon a écrit :

heu je suis pas tres calé niveau class
et j'utilise char * parce que la fonction createfile veux un char * en argument


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 :
  1. AnsiString s("C:\\test.txt" );
  2. CreateFile(s.c_str(), ...);


c'est quand même plus propre :o

n°721729
kheon
Posté le 11-05-2004 à 12:22:13  profilanswer
 

ok merci. Mais cela ne resoud pas mon probleme

n°721737
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-05-2004 à 12:27:59  profilanswer
 

kheon a écrit :


et puis si je la declare dans le .h et que j'inclue le .h dens unit2 il me dit declaration multiple de port.


 
Tu la déclares dans le .cpp, et ensuite dans le .h mais avec un "extern" devant sa déclaration dans ce .h


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°721743
kheon
Posté le 11-05-2004 à 12:30:16  profilanswer
 

ok j'essaie, merci

n°721748
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-05-2004 à 12:40:42  profilanswer
 

mais enfin, et mes accesseurs, c'est pourtant tellement pas sorcier et propre [:sisicaivrai]

n°721762
kheon
Posté le 11-05-2004 à 12:49:47  profilanswer
 

Harkonnen aurais tu un bon livre a me conseiller pour apprendre      
la poo en c++ ?

n°721766
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-05-2004 à 12:52:00  profilanswer
 

"Le langage C++", édition spéciale, de Bjarne Stroustrup (le créateur du langage)

n°721769
kheon
Posté le 11-05-2004 à 12:56:27  profilanswer
 

ok merci !

n°721960
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-05-2004 à 14:50:51  profilanswer
 

Harkonnen a écrit :

mais enfin, et mes accesseurs, c'est pourtant tellement pas sorcier et propre [:sisicaivrai]


 
Trop propre :o
 
(perso je ferais des property, c'est encore plus propre, mais bon, c'est probablement parce que je suis programmeur Delphi :D)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Variables globales borland c++ builder

 

Sujets relatifs
Indirection pour des noms de variables[Fixed!][HTML] (Form) 'action' avec variables en GET ? (Pb)
Probleme d'utilisation des variables je crois (PHP + SVG)[PHP] Super globales et directive error_reporting sur E_ALL
gros naze ne pige pas pourquoi borland lui signale des erreurs[PHP]Problème avec les variables de session
[JAVA/TOMCAT] Variables d'environnementacces à certaines variables définies dans une IDL ...
[ Borland C++ Builder ] Partager une variable sous windows (SHM style) 
Plus de sujets relatifs à : Variables globales borland c++ builder


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR