[ Ramirez @ 02.06.2005. 14:07 ] @
jednostavna aplikacija koja ima dva inputa i dva dugmeta pri cemu jedno dugme pokrece novi dialog (opet nekoliko inputa, buttona, nista komplikovano)... e mene zanima da li glavni dialog da odmah "pravim" u main() ili da napravim klasu za njega... isto to i za ovaj drugi dialog... da li praviti taj dialog kao novu klasu (pa praviti jedan objekat te klase kada se klikne dugme ili da postoji jedan clan te klase u klasi glavnog prozora) ili samo upisati kod za kreiranje dialoga u callback dugmeta koje ga poziva???


Zanima me i kako da prikazem drugi dialog kao child prvog... znaci da ne moze da se pristupi glavnom prozoru dok je drugi otvoren?
[ itf @ 02.06.2005. 15:10 ] @
Ja to uvijek radim ovako:

Dinamickom alokacijom u funkciji MainWindow klase TApplication kreiras glavni prozor (pa u funkciji main napravis return na App.run...).

Klasa bilo kojeg prozora mora biti DERIVIRANA od npr klase TFrameWindow ili TWindow jer ces, u protivnom uvijek imati prazan prozor. Prilikom nadogradnje stavljas svoje objekte itd.. U npr. public dijelu klase glavnog prozora postavi pokazivace na pomocne prozore. Gdje ces ih dinamicki alocirati sasvim je svejedno, no dobro je da su oni "sastavni dio" glavnog prozora, pa ce se automatski unistiti i dealocirati prilikom izlaska iz programa (zbog automatskog destruktora klase glavnog prozora). To, ili ce ih operacijski sustav sam unistiti prilikom oslobadjanja memorije zauzete od strane tvog programa.

Za odredivanje dozovole pristupa za rad u pojednom prozoru koristi funkciju DoModal. Inace, mozes automatski poslije dinamicke alokacije samo staviti

Prozor->Visible = 1;
Prozor->ShowWindow(1);

pa si odjednom dozvolio rad i u glavnom i u pomocnom prozoru.