Opet prica o formama:
Kreiraj ih runtime; dakle iz aplikacije izbrisi ono na pocetku
Code:
Application.Initialize;
Application.CreateForm(TForm1, Form1);
// Application.CreateForm(TForm7, Form7);
// Application.CreateForm(TForm6, Form6);
//Application.CreateForm(TForm5, Form5);
//Application.CreateForm(TForm3, Form3);
//Application.CreateForm(TForm4, Form4); ... itd
vidis da je rezervisanje forme stavljeno kao komentar, dakle apliakcija ih pri startu ne kreira, vec ti to radis po potrebi.
formu koju sktiviras, pozivas sa
Code:
If not assigned(form4) then form4:=tform4.create(application);
form3.close; // odnosno o kojoj se formi radi, tj. koju zatvaras
form4.show;// koju formu otvaras itd..
.....
U svakoj od formi na OnClose event stavis:
Code:
action:=cafree;
form4:=nil; // odnosno o kojoj se formi radi, tj. koju zatvaras
Tako ces spreciti memory leak, jer aplikacija ne zauazima memorijski prostor prilikom pokretanja, vec samo kod izvrsavanja forme. Forma je uustvari promenjliva i delphi mora da joj dodeli prostor u memoriji; zamisli da imas program sa 100 formi, kako bi to radilo da su sve zauzete unapred. Ovo ti je skolski primer iz knjige.
Pozdrav