Рођење, живот и смрт Делфи форме

Ин Делпхи, сваки пројекат има најмање један прозор - главни прозор програма. Сви прозори Делпхи апликације се заснивају ТФорм објект.

Образац

Формирајте објекте су основни градивни дијелови Делпхи апликације, стварни прозори с којима корисник комуницира приликом покретања апликације. Обрасци имају своја својства, догађаје и методе помоћу којих можете контролисати њихов изглед и понашање. Образац је заправо Делпхи компонента, али за разлику од других компоненти, облик се не појављује на палети компоненти.

Ми обично креирамо објект обрасца покретањем нове апликације (Датотека | Нова апликација). Овај новостворени образац биће, по дефаулту, главни образац апликације - први образац креиран током извођења.

Напомена: Да бисте додали додатни образац у пројекат Делпхи, изаберите Датотека | Нови образац.

Рођење

ОнЦреате
ОнЦреате догађај се покреће када се ТФорм први пут креира, то јест само једном. Изјава одговорна за креирање обрасца налази се у извору пројекта (ако је форма постављена да се аутоматски креира пројектом). Када се образац креира и његово видљиво својство је Труе, следећи догађаји се дешавају по наведеном редоследу: ОнЦреате, ОнСхов, ОнАцтивате, ОнПаинт.

instagram viewer

Требали бисте користити програм за управљање догађајима ОнЦреате да бисте, на пример, обавили послове иницијализације као што је додељивање пописа низа.

Сви објекти креирани у догађају ОнЦреате требало би да се ослободе догађајем ОнДестрои.

 ОнЦреате -> ОнСхов -> ОнАцтивате -> ОнПаинт -> ОнРесизе -> ОнПаинт... 

На изложби
Овај догађај указује да се образац приказује. ОнСхов се позива непосредно пре него што образац постане видљив. Поред главних образаца, овај догађај се догађа када поставимо форме Висибле на Труе, или позовемо Схов или СховМодал методу.

ОнАцтивате
Овај догађај се назива када програм активира образац - односно, када образац прими фокусни фокус. Помоћу овог догађаја промените која контрола заправо постаје фокус ако није та која је жељена.

ОнПаинт, ОнРесизе
Догађаји попут ОнПаинт и ОнРесизе увек се позивају након што се образац првобитно креира, али се такође позивају више пута. ОнПаинт се дешава пре него што се било које контроле на обрасцу офарбају (користите га за посебно сликање на обрасцу).

Живот

Рођење форме није толико занимљиво колико могу бити живот и смрт. Када се створи ваш образац и све контроле чекају да се догађаји обраде, програм се покреће док неко не покуша затворити образац!

Смрт

Апликација вођена догађајем престаје да се покреће када су сви обрасци затворени и не извршава се никакав код. Ако скривени образац и даље постоји када је затворен последњи видљиви образац, чини се да ваша апликација има завршио (јер није видљив ниједан образац), али ће се у ствари и даље одвијати док сви скривени обрасци не буду затворено. Замислите само ситуацију када се главни облик сакрије рано, а сви остали облици се затворе.

... ОнЦлосеКуери -> ОнЦлосе -> ОнДеацтивате -> ОнХиде -> ОнДестрои 

ОнЦлосеКуери
Када покушамо да затворимо образац методом Затвори или на други начин (Алт + Ф4), догађај ОнЦлосеКуери се позива. Стога је обрађивач догађаја за овај догађај место да пресреће затварање обрасца и спречи га. Ми користимо ОнЦлосеКуери да питамо кориснике да ли су сигурни да заиста желе да се образац затвори.

процедура ТФорм1.ФормЦлосеКуери (Пошиљалац: ТОбјецт; вар ЦанЦлосе: Боолеан);

започети

акоМессагеДлг('Стварно затворите овај прозор?', МтЦонфирматион, [мбОк, мбЦанцел], 0) = мрЦанцел онда ЦанЦлосе: = Нетачно;

крај; 

Руковалац догађаја ОнЦлосеКуери садржи варијаблу ЦанЦлосе која одређује да ли је неки облик дозвољен за затварање. Руковатељ догађаја ОнЦлосеКуери може поставити вредност ЦлосеКуери на Фалсе (преко параметра ЦанЦлосе), прекидајући методу Цлосе.

ОнЦлосе
Ако ОнЦлосеКуери укаже да образац треба бити затворен, позива се догађај ОнЦлосе.

Догађај ОнЦлосе даје нам последњу шансу да спречимо затварање обрасца. Руковатељ догађаја ОнЦлосе има параметар Ацтион, са следеће четири могуће вредности:

  • цаНоне. Није дозвољено затварање обрасца. Баш као да смо поставили ЦанЦлосе на Фалсе у програму ОнЦлосеКуери.
  • цаХиде. Уместо да затворите образац, сакријте га.
  • цаФрее. Образац је затворен, тако да му је додељена меморија ослободила Делпхи.
  • цаМинимизе. Образац је минимизиран, а не затворен. Ово је задана радња за МДИ обрасце за децу. Када корисник искључи Виндовс, активира се догађај ОнЦлосеКуери, а не ОнЦлосе. Ако желите да спречите да се Виндовс искључи, ставите свој код у програм за управљање догађајима ОнЦлосеКуери, наравно ЦанЦлосе = Фалсе то неће урадити.

ОнДестрои
Након што је обрађена метода ОнЦлосе и образац треба затворити, позива се догађај ОнДестрои. Користите овај догађај за операције супротне онима у ОнЦреате догађају. ОнДестрои се користи за лоцирање објеката повезаних са формом и ослобађање одговарајуће меморије.

Када се главни образац за пројекат затвори, апликација се прекида.