Ĺadny brzuch
Mam pytanko. Jak w C++ Builderze sprawić, aby formy utworzone, w sposób dynamiczny, po naciśnięciu klawisza uruchomiały się - tylko w jednej kopii?
http://piepik.w.interia.pl/prog.html
w przycisku:
TForm* forma = new TForm(Handle);
forma->ShowModal();
delete forma;
Kod pisałem z głowy, wieć daj znać jak coś jest źle.
I am the REAL Noname
Moja strona: www.coderulers.prv.pl Proszę o pomoc w rozkręceniu mojego forum
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup, twórca języka C++
Tylko chciałbym, żeby nie były to formy modalne ;-) Uściśle może problem, każde naciśnięcie przycisku. Powoduje utworzenie nowej formy, powstaje w ten sposób kilka zbędnych kopii.
www.piepik.blo.pl
powinno sie dac zrobic cos w stylu prostego singletona. wywalasz konstruktor formy z sekcji public do sekcji private, wtedy nie mozna stworzyc formy przez operator new, bo nie ma publicznego konstruktora. zamiast niego tworzysz sobie metode i.e. createForm, ktora jest publiczna i statyczna i ktora dokonuje sprawdzenia czy jest juz stworzony egzemplarz klasy, jesli nie to tworzy okno, jesli okno juz jest to nic nie robi [albo zwraca na przyklad uchwyt do okna juz kiedys stworzonego].
pozdrawiam
pepsi^no1
To zdefiniuj gdzieś globalny wskaźnik formy TForm i stwórz ją na przykład w OnCreate linijką forma = new TForma(Handle); i dodatkowo forma->Hide(); (żeby ją schować), a w przycisku tylko forma->Show();
PS: tylko nie zapomnij zwolnić pamięci (delete forma) przy zakończeniu działania programu.
I am the REAL Noname
Moja strona: www.coderulers.prv.pl | Moje Forum
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup, twórca języka C++
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
http://piepik.w.interia.pl/prog.html
w przycisku:
TForm* forma = new TForm(Handle);
forma->ShowModal();
delete forma;
Kod pisałem z głowy, wieć daj znać jak coś jest źle.
I am the REAL Noname
Moja strona: www.coderulers.prv.pl Proszę o pomoc w rozkręceniu mojego forum
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup, twórca języka C++
Tylko chciałbym, żeby nie były to formy modalne ;-) Uściśle może problem, każde naciśnięcie przycisku. Powoduje utworzenie nowej formy, powstaje w ten sposób kilka zbędnych kopii.
www.piepik.blo.pl
powinno sie dac zrobic cos w stylu prostego singletona. wywalasz konstruktor formy z sekcji public do sekcji private, wtedy nie mozna stworzyc formy przez operator new, bo nie ma publicznego konstruktora. zamiast niego tworzysz sobie metode i.e. createForm, ktora jest publiczna i statyczna i ktora dokonuje sprawdzenia czy jest juz stworzony egzemplarz klasy, jesli nie to tworzy okno, jesli okno juz jest to nic nie robi [albo zwraca na przyklad uchwyt do okna juz kiedys stworzonego].
pozdrawiam
pepsi^no1
To zdefiniuj gdzieś globalny wskaźnik formy TForm i stwórz ją na przykład w OnCreate linijką forma = new TForma(Handle); i dodatkowo forma->Hide(); (żeby ją schować), a w przycisku tylko forma->Show();
PS: tylko nie zapomnij zwolnić pamięci (delete forma) przy zakończeniu działania programu.
I am the REAL Noname
Moja strona: www.coderulers.prv.pl | Moje Forum
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup, twórca języka C++