Delfi vormi sünd, elu ja surm

Sisse Delphi, igal projektil on vähemalt üks aken - programmi peaaken. Kõik Delphi rakenduse aknad põhinevad TFormi objekt.

Vorm

Vormi objektid on Delphi rakenduse peamised ehitusplokid, tegelikud aknad, millega kasutaja rakenduse käivitamisel suhtleb. Vormidel on oma omadused, sündmused ja meetodid, mille abil saate kontrollida nende välimust ja käitumist. Vorm on tegelikult Delphi komponent, kuid erinevalt teistest komponentidest ei ilmu vorm komponentide paletti.

Tavaliselt loome vormiobjekti, käivitades uue rakenduse (File | New Application). See vastloodud vorm on vaikimisi rakenduse põhivorm - esimene vorm, mis on loodud tööajas.

Märkus: Delphi projektile täiendava vormi lisamiseks valige File | Uus vorm.

Sünd

OnCreate
OnCreate'i sündmus vallandatakse, kui TForm esmakordselt luuakse, see tähendab ainult üks kord. Vormi loomise eest vastutav avaldus asub projekti allikas (kui vorm on seatud projekti automaatseks loomiseks). Vormi loomisel ja selle nähtaval atribuudil True on järgmised sündmused loetletud järjekorras: OnCreate, OnShow, OnActivate, OnPaint.

instagram viewer

Peaksite kasutama sündmuste käitlejat OnCreate, näiteks toimingute lähtestamiseks, näiteks stringiloendite eraldamiseks.

Kõik sündmused, mis on loodud OnCreate'i sündmusel, peaksid OnDestroy sündmuse abil vabastama.

 OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint... 

OnShow
See sündmus näitab, et vormi kuvatakse. OnShow kutsutakse vahetult enne vormi nähtavaks saamist. Lisaks põhivormidele juhtub see sündmus siis, kui määrame atribuutide Visble väärtuseks True või helistame meetodiks Show või ShowModal.

Sisse lülitatud
Seda sündmust kutsutakse siis, kui programm aktiveerib vormi - see tähendab siis, kui vorm saab sisendfookuse. Selle sündmuse abil saate muuta, millisele juhtnupule teravustatakse, kui see pole soovitud.

OnPaint, OnResize
Sündmustele nagu OnPaint ja OnResize kutsutakse alati pärast vormi loomist, kuid neid kutsutakse ka korduvalt. OnPaint toimub enne vormi mis tahes juhtelementide värvimist (kasutage seda vormi vormimiseks spetsiaalseks värvimiseks).

Elu

Vormi sünd pole nii huvitav, kui selle elu ja surm võivad olla. Kui teie vorm on loodud ja kõik juhtelemendid ootavad sündmuste käsitlemist, töötab programm seni, kuni keegi proovib vormi sulgeda!

Surm

Sündmuspõhine rakendus peatub, kui kõik selle vormid on suletud ja ühtegi koodi ei käivitata. Kui peidetud vorm on alles siis, kui viimane nähtav vorm on suletud, näib, et teie rakendus on olemas lõppenud (kuna vorme pole näha), kuid tegelikult jätkatakse nende kasutamist seni, kuni kõik peidetud vormid on suletud. Mõelge vaid olukorrale, kus põhivorm varjatakse varakult ja kõik muud vormid on suletud.

... OnCloseQuery -> OnClose -> OnDeactivate -> OnHide -> OnDestroy 

OnCloseQuery
Kui proovime vormi sulgeda sulgemismeetodi abil või muul viisil (Alt + F4), kutsutakse sündmus OnCloseQuery. Seega on sündmuse käitleja selle sündmuse jaoks vorm, mille abil vorm sulgeda ja seda takistada. Kasutame OnCloseQuery abil kasutajatelt küsimist, kas nad on kindlad, kas nad tõesti tahavad vormi sulgeda.

protseduur TForm1.FormCloseQuery (saatja: TObject; var CanClose: Boolean);

alustada

kuiMessageDlg('Kas sulgege see aken tõesti?', MtConfirmation, [mbOk, mbCancel], 0) = mrCancel siis CanClose: = Vale;

lõpp; 

OnCloseQuery sündmuste käitleja sisaldab muutujat CanClose, mis määrab, kas vormi on lubatud sulgeda. OnCloseQuery sündmuste käitleja võib seada CloseQuery väärtuseks Vale (parameetri CanClose kaudu), katkestades sulgemismeetodi.

OnClose
Kui OnCloseQuery näitab, et vorm tuleks sulgeda, kutsutakse sündmus OnClose.

OnClose üritus annab meile veel ühe võimaluse vormi sulgemist takistada. OnClose sündmuse käitlejal on parameeter Action, millel on järgmised neli väärtust:

  • caNone. Vormi ei tohi sulgeda. Just nagu oleksime OnCloseQuery seadistanud CanClose väärtuseks False.
  • caPeida. Vormi sulgemise asemel peidate selle.
  • tasuta. Vorm on suletud, nii et Delphi vabastab sellele eraldatud mälu.
  • caMinimiseeri. Vorm on viidud miinimumini, mitte suletud. See on MDI lapsevormide vaikimisi toiming. Kui kasutaja lülitab Windowsi välja, aktiveeritakse OnCloseQuery sündmus, mitte OnClose. Kui soovite Windowsi väljalülitamist takistada, pange oma kood OnCloseQuery sündmuste käitlejasse, muidugi CanClose = False seda ei tee.

OnDestroy
Pärast OnClose meetodi töötlemist ja vormi sulgemist kutsutakse OnDestroy sündmus. Kasutage seda sündmust toimingute jaoks, mis on vastupidised OnCreate'i sündmustele. OnDestroy kasutatakse vormiga seotud objektide leidmiseks ja vastava mälu vabastamiseks.

Kui projekti põhivorm suletakse, lõpeb taotlus.

instagram story viewer