Server de informații pentru codurile sursă ale programatorilor din întreaga lume

Nașterea, viața și moartea formei.

(Traducerea articolului cu același nume de la delphi.about.com)

În Windows, elementul principal al interfeței cu utilizatorul este un formular. În Delphi, fiecare proiect are cel puțin o fereastră - fereastra principală a aplicației. Toate ferestrele din Delphi se bazează pe obiectul TForm. În acest articol vom analiza principalele evenimente implicate în "formele de viață".







formă
Formularele au proprietățile, evenimentele și metodele prin care puteți controla forma și comportamentul formularului. Forma este o componentă regulată a Delphi, dar spre deosebire de altele, ea nu există în panoul component. În mod obișnuit, se creează un formular atunci când se creează un nou proiect (File | New Application). Forma nou creată va fi forma principală a aplicației.

Formulare suplimentare în proiect sunt create prin intermediul fișierului | Formular nou. Există și alte modalități de a crea forme, dar aici nu le vom lua în considerare.

Ca orice altă componentă (obiect), forma are propriile sale metode și răspunde la evenimente. Să ne uităm la unele dintre aceste evenimente.

OnCreate
Evenimentul OnCreate apare atunci când TForm este creat și o singură dată. Când creați un formular (proprietatea vizibilă este setată la True), evenimentele vor avea loc în ordinea următoare: OnCreate, OnShow, OnActivate, OnPaint.
În instrumentul de procesare a evenimentului OnCreate, puteți face o inițializare, totuși, orice obiecte create în OnCreate vor fi distruse în evenimentul OnDestroy.

OnShow
Acest eveniment este generat atunci când formularul devine vizibil. OnShow este chemat chiar înainte ca formularul să devină vizibil. Acest eveniment se întâmplă dacă setați proprietatea Visible la True sau când apelați metodele Show sau ShowModal.

OnActivate
Acest eveniment este generat atunci când formularul devine activ, adică când formularul primește focalizare de intrare. Acest eveniment poate fi folosit pentru a schimba elementul de formă care ar trebui să primească focalizare.







OnPaint, OnResize
Aceste evenimente sunt numite de fiecare dată când forma este creată. În același timp, OnPaint este apelat de fiecare dată când orice element de formă trebuie redresat (acest eveniment poate fi folosit dacă este necesar să se deseneze ceva special pe formular).

viață
Atunci când formularul este creat și toate elementele sale așteaptă ca evenimentele să le proceseze, viața formei continuă până când cineva face clic pe o cruce în colțul din dreapta sus al formularului!

distrugere
Atunci când un formular este distrus, evenimentele sunt generate în următoarea ordine:

OnCloseQuery
Dacă încercăm să închidem formularul folosind metoda de închidere sau prin altă metodă disponibilă (Alt + F4 sau prin meniul sistemului), evenimentul OnCloseQuery va fi generat. Astfel, acest eveniment poate fi folosit pentru a împiedica închiderea formularului. De obicei, evenimentul OnCloseQuery este folosit pentru a întreba utilizatorul dacă este sigur (probabil că există date nesalvate în aplicație).

Managerul de evenimente OnCloseQuery conține variabila CanClose, care determină dacă formularul poate fi închis. Valoarea inițială a acestei variabile este Adevărată. Cu toate acestea, în handlerul OnCloseQuery, puteți seta valoarea returnată CloseQuery la False pentru a anula metoda Close.

OnClose
Dacă OnCloseQuery a returnat CanClose = True (ceea ce indică faptul că formularul ar trebui să fie închis), evenimentul OnClose va fi generat.
Evenimentul OnClose oferă ultima șansă de a împiedica închiderea formularului. Handlerul OnClose are un parametru Action cu următoarele patru valori posibile:
caNone. Formularul nu este permis să se închidă. Este ca și cum am setat CanClose la fals în OnCloseQuery.
caHide. În loc să închidă, formularul va fi ascuns.
caFree. Formularul va fi închis, iar resursele pe care le va utiliza vor fi eliberate.
caMinimize. În loc de închidere, formularul va fi minimizat. Această valoare este setată implicit în formularele MDI pentru copii.

Notă: Atunci când un utilizator shutdaunit Windows, va fi numit OnCloseQuery, în loc de OnClose. Dacă nu doriți ca Windows să își finalizeze activitatea, apoi pune codul în tratare a evenimentului OnCloseQuery deși CanClose = Fals nu, ceea ce sa făcut aici.

OnDestroy
După ce metoda OnClose este procesată și formularul este închis, evenimentul OnDestroy va fi apelat. În OnCreate, de obicei faceți acțiuni care sunt opuse celor efectuate în OnCreate, adică distrugerea obiectelor create și eliberarea memoriei alocate.

Este firesc ca atunci când forma principală a proiectului este închisă, cererea va fi finalizată.







Trimiteți-le prietenilor: