Delfin muodon syntymä, elämä ja kuolema

click fraud protection

Sisään Delfoi, jokaisella projektilla on ainakin yksi ikkuna - ohjelman pääikkuna. Kaikki Delphi-sovelluksen ikkunat perustuvat TForm-esine.

muoto

Muodosta esineitä ovat Delphi-sovelluksen peruskiviä, todelliset ikkunat, joiden kanssa käyttäjä on yhteydessä sovelluksen ajamiseen. Lomakkeilla on omat ominaisuudet, tapahtumat ja menetelmät, joilla voit hallita niiden ulkoasua ja käyttäytymistä. Lomake on oikeastaan ​​Delphi-komponentti, mutta toisin kuin muut komponentit, lomake ei näy komponenttipaletissa.

Luomme yleensä lomakeobjektin käynnistämällä uuden sovelluksen (Tiedosto | Uusi sovellus). Tämä vastikään luotu muoto on oletuksena sovelluksen päämuoto - ensimmäinen suorituksen aikana luotu muoto.

Huomaa: Jos haluat lisätä ylimääräisen lomakkeen Delphi-projektiin, valitse Tiedosto | Uusi muoto.

syntymä

onCreate
OnCreate-tapahtuma potkut, kun TForm luodaan ensimmäisen kerran, eli vain kerran. Lomakkeen luomisesta vastaava lausunto on projektin lähteessä (jos lomake on asetettu luomaan projekti automaattisesti). Kun lomaketta luodaan ja sen Visible-ominaisuus on totta, seuraavat tapahtumat tapahtuvat luetellussa järjestyksessä: OnCreate, OnShow, OnActivate, OnPaint.

instagram viewer

Sinun tulisi käyttää OnCreate-tapahtumakäsittelyohjelmaa esimerkiksi alustamaan askareita, kuten jakamaan merkkijonoluetteloita.

OnDestroy-tapahtuma vapauttaa kaikki OnCreate-tapahtumassa luodut objektit.

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

Esityksessä
Tämä tapahtuma osoittaa, että lomaketta näytetään. OnShow kutsutaan juuri ennen kuin lomake tulee näkyviin. Päälomakkeiden lisäksi tämä tapahtuma tapahtuu, kun asetamme lomakkeiden Näkyvä-ominaisuuden arvoksi Tosi tai kutsumme Näytä- tai ShowModal-menetelmää.

OnActivate
Tätä tapahtumaa kutsutaan, kun ohjelma aktivoi lomakkeen - toisin sanoen kun muoto vastaanottaa syöttötarkennuksen. Käytä tätä tapahtumaa muuttaaksesi mikä ohjain todella keskittyy, jos se ei ole haluttu.

OnPaint, OnResize
OnPaint- ja OnResize-tapahtumia kutsutaan aina lomakkeen luomisen jälkeen, mutta niitä kutsutaan myös toistuvasti. OnPaint tapahtuu ennen kuin lomakkeen kaikki hallintalaitteet maalataan (käytä sitä lomakkeen erityiseen maalaamiseen).

elämä

Muodon synty ei ole niin mielenkiintoista, kuin sen elämä ja kuolema voivat olla. Kun lomake on luotu ja kaikki hallintalaitteet odottavat tapahtumien käsittelyä, ohjelma on käynnissä, kunnes joku yrittää sulkea lomakkeen!

kuolema

Tapahtumavetoinen sovellus lakkaa toimimasta, kun kaikki sen muodot ovat suljettuina eikä mitään koodia suoriteta. Jos piilotettu muoto on edelleen olemassa, kun viimeinen näkyvä lomake suljetaan, sovelluksellasi näyttää olevan päättyi (koska lomakkeita ei ole näkyvissä), mutta jatkaa käytöstä, kunnes kaikki piilotetut lomakkeet ovat suljettu. Ajattele vain tilannetta, jossa päämuoto piiloutuu aikaisin ja kaikki muut muodot suljetaan.

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

OnCloseQuery
Kun yritämme sulkea lomaketta Sulje-menetelmällä tai muilla tavoilla (Alt + F4), OnCloseQuery-tapahtuma kutsutaan. Siksi tämän tapahtuman tapahtumakäsittelijä on paikka siepata lomakkeen sulkeminen ja estää sitä. Käytämme OnCloseQuery-sovellusta kysyäksesi käyttäjiltä, ​​ovatko he varmoja siitä, että he todella haluavat lomakkeen sulkeutuvan.

menettely TForm1.FormCloseQuery (Lähettäjä: TObject; var CanClose: Boolean);

alkaa

josMessageDlg('Suljetaanko tämä ikkuna?', MtConfirmation, [mbOk, mbCancel], 0) = mrCancel sitten CanClose: = Väärä;

pää; 

OnCloseQuery-tapahtumakäsittelijä sisältää CanClose-muuttujan, joka määrittää, sallitaanko lomakkeen sulkeminen. OnCloseQuery-tapahtumakäsittelijä voi asettaa CloseQuery-arvon arvoon False (CanClose-parametrin kautta), keskeyttäen Close-menetelmän.

OnClose
Jos OnCloseQuery osoittaa, että lomake olisi suljettava, kutsutaan OnClose-tapahtumaan.

OnClose-tapahtuma antaa meille viimeisen mahdollisuuden estää lomakkeen sulkeutumista. OnClose-tapahtumakäsittelijällä on toimintaparametri, jolla on seuraavat neljä mahdollista arvoa:

  • Canone. Lomaketta ei saa sulkea. Aivan kuin olemme asettaneet CanClose-arvoon vääriä OnCloseQuery-sovelluksessa.
  • caHide. Piilota se lomakkeen sulkemisen sijaan.
  • caFree. Lomake on suljettu, joten Delphi vapauttaa sille varatun muistin.
  • caMinimize. Muoto on minimoitu eikä suljettu. Tämä on MDI-lapsilomakkeiden oletustoiminto. Kun käyttäjä sammuttaa Windowsin, OnCloseQuery-tapahtuma aktivoituu, ei OnClose. Jos haluat estää Windowsin sammutusta, laita koodi OnCloseQuery-tapahtumakäsittelyohjelmaan, tietysti CanClose = False ei tee tätä.

OnDestroy
Kun OnClose-menetelmä on käsitelty ja lomake on tarkoitus sulkea, OnDestroy-tapahtuma kutsutaan. Käytä tätä tapahtumaa toimintoihin, jotka ovat vastakkaisia ​​kuin OnCreate-tapahtumassa. OnDestroy-sovellusta käytetään lomakkeeseen liittyvien kohteiden sijoittamiseen ja vastaavan muistin vapauttamiseen.

Kun projektin päälomake sulkeutuu, hakemus päättyy.

instagram story viewer