Cu constructorul, creați și ștergeți în mod programat formulare

C ++ Builder: creați și ștergeți în mod programat formulare

După cum știți, adăugarea unei noi ferestre vizuale (cum ar fi C ++ Builder) la proiect nu este o problemă. Pur și simplu includeți-o în proiect prin intermediul meniului File, New, Form și controlați afișarea / ascunderea formularului prin proprietatea Visible sau utilizând metode standard Show () și Hide () din clasa TControl.







Atunci când există o mulțime de forme dinamice într-o aplicație, ar fi mai bine să nu le adăugați tuturor la proiect, ci să le creați programabil după cum este necesar, deoarece TForm este o clasă obișnuită, ceea ce înseamnă că are un constructor:

Când formularul nu este necesar, îl puteți șterge în mod obișnuit:

Ce se întâmplă dacă formularul ar trebui să fie unic și doriți să împiedicați crearea celui de-al doilea? Următoarea instrucțiune vă va ajuta.







În clasa formei principale, declarăm la nivel global indicatorul pentru clasa TForm:

În fișierul antet al clasei principale de formă, din care se va crea noul formular, declarăm prototipul funcției (în domeniul public):

Descriim funcția însăși în corpul modulului:

Noi scriem un handler de evenimente OnClose pentru formularul generat:

De undeva, vom crea formularul, vom seta manualul și vom afișa fereastra:

Astfel, un duplicat nu va fi creat, dar după închiderea formei dinamice, puteți crea din nou o instanță a acestuia.

Un utilizator atent observă cu ușurință că, în cazul creării / ștergerii multiple dinamice a formularelor, memoria ocupată de aplicație poate crește la creație, dar nu scade atunci când formularul este închis, este normal? Poate, pentru mase - da, deoarece managerul de sarcini arată doar utilizarea memoriei virtuale prin proces. Managerul de memorie consideră că este inutil să returnați imediat o cantitate mică de memorie - aceasta poate duce doar la o scădere a performanței. Aria de memorie corespunzătoare din "heap" este marcată pur și simplu ca fiind gratuită și va fi refolosită de către aplicația în sine.







Trimiteți-le prietenilor: