Znao sam odmah o čemu se radi, to sam ti već i rekao:
http://www.elitesecurity.org/t223268-0#1330661
Moraš bolje da paziš (ovako, na prostijem primeru sve je očigledno), dakle:
Code:
int a=0;
void NekaKlasa::NekaMetoda1()
{
int a=10; // <-- ovo "a" važi samo dok si u bloku, kasnije se uništava i nema veze sa "a" ispred funkcije
}
void NekaKlasa::NekaMetoda2()
{
NekaMetoda1(); // <-- Uzaludno, nema efekta na globalno "a" koje tebi zapravo treba
cout << a; // <-- globalno "a"
}
Međutim, u tvom konkretnom primeru, moraćeš još malo da doradiš kod, jer nemaš proveru da
li je neka forma već kreirana, već svaki pritisak na Button kreita novu instancu:
--- Unit1.cpp / Form1 ---
(prethodno Form2 prebaci u Available sekciju - Project / Options / Forms,
tj da naznacimo da cemo mi sami kreirati instance, a ne IDE po defaultu )
Code:
// ...
#include "Unit2.h"
// ...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if ( ! Form2 ) // <--- ako F2 nije kreirana, prvo kreiraj pa prikazi
{
Form2 = new TForm2( Application );
Form2->Show();
}
else
{
Form2->Show(); // <--- ako je F2 vec kreirana, nema potrebe za novom intalcom, samo je prikazi.
// ... Na primer [X] Close ns F2, ne unistava instancu, samo "sakrije" formu
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if ( Form2 ) <--- ovo je unitavanje F2.
delete Form2;
Form2 = NULL; <--- dodelili smo NULL, da bi sledeci put bili sigurni sta ispitujemo u Button1
}