[ E42 @ 28.03.2007. 11:28 ] @
Pozdrav svima, imam problem ... kako da deklarisem promenjivu npr. int , a da ona pripada svim formama (npr. 3 forme) jednog projekta ??
[ X Files @ 28.03.2007. 12:25 ] @
Ako hoćeš u duhu OOP-a, pridruži tu zajedničku promenljivu nekoj klasi, na primer klasi TForm1:

--- Unit1.h ---
Code:

class TForm1 : public TForm
{
   // ...
   public: // <--- obavezno u public sekciju, u suprotnom treba druge klase proglasiti kao friend
   int moja_zajednicka_promenljiva;
   // ...
};

Onda joj negde u CPP možeš menjati i vrednost.
--- Unit1.cpp ---
Code:

// ...
Negde()
{
   moja_zajednicka_promenljiva = 10;
}


Pristup toj promenljivoj iz drugih klasa, možeš postići ovako:
--- Unit2.cpp ---
Code:

// ...
#include "Unit1.h" // <--- Da bi forma znala gde je pointer preko koga se priostupa zajednickoj promenljivoj
// ...
ShowMessage( Form1->moja_zajednicka_promenljiva ); // <--- pristup posredstvom Form1 pointera


--- Unit3.cpp ---
Code:

// ...
#include "Unit1.h"
// ...
ShowMessage( Form1->moja_zajednicka_promenljiva );


itd...

Može se deklarisati i GLOBALNA promenljiva (van kase), u CPP fajlu:
int moja_zajednicka_promenljiva;
... a u CPP drugih formi tada moraš imati ključnu reč extern:
extern int moja_zajednicka_promenljiva;

[ itf @ 29.03.2007. 12:11 ] @
Kao što je X Files rekao, možeš koristiti globalnu varijablu koju staviš u jednu od header datoteka, no ako baš želiš da je ta varijabla zajednička za sve forme kao njihov zajednički član u klasi onda možeš napraviti sljedeće:

Unit1.h....
Code:

//---------------------------------------------------------------------------
class MojaForma : public TForm
{
    public:        // User declarations
        int zajednicka1;          // za svaku instancu po jedna varijabla...
        static int zajednicka2;   // sve instance dijele istu varijablu!

        __fastcall MojaForma(TComponent* Owner):TForm(Owner){}
};
//---------------------------------------------------------------------------

Sve ostale forme nastaju nasljeđivanjem od ove gornje klase! Npr. za prvu formu:

Unit1.h....
Code:

class TForm1 : public MojaForma
{
__published:    // IDE-managed Components
private:    // User declarations
public:        // User declarations
    __fastcall TForm1(TComponent* Owner);
};


itd...:

Unit2.h....
Code:

class TForm2 : public MojaForma
{
__published:    // IDE-managed Components
private:    // User declarations
public:        // User declarations
    __fastcall TForm2(TComponent* Owner);
};


Točnije, napraviš novu klasu koja nasljeđuje TForm, no ona u sebi neka sadrži i one zajedničke članove koje trebaju imati sve ostale forme, a nove forme nastaju nasljeđivanjem od te tvoje nove klase.

Code:
int zajednicka1;          // za svaku instancu po jedna varijabla...
static int zajednicka2;   // sve instance dijele istu varijablu!


U prvoj liniji svaka forma će imati po jednu vlastitu instancu varijable 'zajednicka1', dok ako baš želiš da sve forme dijele jednu te istu varijablu onda ona mora biti statička, tj. kao u ovom slučaju 'zajednicka2'.

[ E42 @ 30.03.2007. 10:16 ] @
X Files & itf hvala!
rade oba nacina.
(izvinite ,moj odgovor malo kasni ).pozdrav.