v Delphi, každý projekt má aspoň jedno okno - hlavné okno programu. Všetky okná aplikácie Delphi sú založené na Objekt TForm.
formulár
Formulárové objekty sú základné stavebné bloky aplikácie Delphi, skutočné okná, s ktorými používateľ interaguje pri spustení aplikácie. Formuláre majú svoje vlastné vlastnosti, udalosti a metódy, pomocou ktorých môžete ovládať ich vzhľad a správanie. Formulár je v skutočnosti komponent Delphi, ale na rozdiel od ostatných komponentov sa formulár nezobrazí na palete komponentov.
Normálne vytvoríme objekt formulára spustením novej aplikácie (File | New Application). Tento novo vytvorený formulár bude v predvolenom nastavení hlavným formulárom aplikácie - prvý formulár vytvorený za behu programu.
Poznámka: Ak chcete do projektu Delphi pridať ďalší formulár, vyberte File | Nový formulár.
pôrod
OnCreate
Udalosť OnCreate sa spustí pri prvom vytvorení TForm, to znamená iba raz. Výrok zodpovedný za vytvorenie formulára je v zdroji projektu (ak je formulár nastavený tak, aby sa automaticky vytvoril v rámci projektu). Keď sa vytvára formulár a jeho viditeľná vlastnosť je PRAVDA, vyskytujú sa nasledujúce udalosti v uvedenom poradí: OnCreate, OnShow, OnActivate, OnPaint.
Obslužný program udalostí OnCreate by ste mali použiť napríklad na vykonávanie inicializačných úloh, ako je napríklad prideľovanie zoznamov reťazcov.
Všetky objekty vytvorené v udalosti OnCreate by mali byť uvoľnené udalosťou OnDestroy.
OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint...
OnShow
Táto udalosť označuje, že sa formulár zobrazuje. OnShow sa volá tesne predtým, ako sa formulár zviditeľní. Okrem hlavných formulárov sa táto udalosť stáva, keď nastavíme vlastnosť formulárov Visible na hodnotu True alebo zavoláme metódu Show alebo ShowModal.
OnActivate
Táto udalosť sa volá, keď program aktivuje formulár - to znamená, keď formulár dostane vstupné zameranie. Pomocou tejto udalosti môžete zmeniť, na ktorý ovládací prvok sa skutočne zameria, ak to nie je požadované.
OnPaint, OnResize
Udalosti ako OnPaint a OnResize sa volajú vždy po vytvorení formulára, ale tiež sa volajú opakovane. OnPaint sa vyskytuje predtým, ako sú maľované všetky ovládacie prvky formulára (použite ho na špeciálne maľovanie na formulári).
život
Zrod formy nie je tak zaujímavý, ako je jej život a smrť. Po vytvorení formulára a všetkých ovládacích prvkov čakajú na spracovanie udalostí, program beží, kým sa niekto pokúsi formulár zatvoriť!
úmrtia
Aplikácia riadená udalosťami sa zastaví, keď sú všetky jej formuláre zatvorené a nevykonáva sa žiadny kód. Ak skrytý formulár stále existuje aj po zatvorení posledného viditeľného formulára, zdá sa, že vaša aplikácia má skončil (pretože nie sú viditeľné žiadne formuláre), ale v skutočnosti bude pokračovať, až kým nebudú všetky skryté formuláre zatvorené. Len pomyslite na situáciu, keď sa hlavná forma skryje skoro a všetky ostatné formy sa zatvoria.
... OnCloseQuery -> OnClose -> OnDeactivate -> OnHide -> OnDestroy
OnCloseQuery
Keď sa pokúsime zatvoriť formulár pomocou metódy Close alebo iným spôsobom (Alt + F4), vyvolá sa udalosť OnCloseQuery. Obsluha udalosti pre túto udalosť je teda miestom, kde je možné uzavrieť formulár a zabrániť mu. Používame OnCloseQuery, aby sme sa používateľov opýtali, či sú si istí, že skutočne chcú formulár uzavrieť.
procedúra TForm1.FormCloseQuery (Odosielateľ: TObject; var CanClose: Boolean);
začať
akMessageDlg(„Naozaj zavrieť toto okno?“, MtPotvrdenie, [mbOk, mbCancel], 0) = mrCancel potom CanClose: = False;
koniec;
Obslužný program udalosti OnCloseQuery obsahuje premennú CanClose, ktorá určuje, či je povolené zatvoriť formulár. Obsluha udalostí OnCloseQuery môže nastaviť hodnotu CloseQuery na False (prostredníctvom parametra CanClose) a zrušiť metódu Close.
onClose
Ak OnCloseQuery naznačuje, že formulár by sa mal zatvoriť, vyvolá sa udalosť OnClose.
Udalosť OnClose nám dáva poslednú šancu zabrániť uzávierke formulára. Obsluha udalostí OnClose má parameter Action s týmito štyrmi možnými hodnotami:
- canon. Formulár nie je možné uzavrieť. Rovnako ako by sme nastavili CanClose na False v OnCloseQuery.
- caHide. Namiesto zatvárania formulára ho skryjete.
- caFree. Formulár je zatvorený, takže je vyhradená pamäť uvoľnená spoločnosťou Delphi.
- caMinimize. Forma je skôr minimalizovaná ako uzavretá. Toto je predvolená akcia pre podradené formuláre MDI. Keď používateľ vypne systém Windows, aktivuje sa udalosť OnCloseQuery, nie OnClose. Ak chcete zabrániť vypnutiu systému Windows, vložte svoj kód do obsluhy udalostí OnCloseQuery, samozrejme CanClose = False to neurobí.
OnDestroy
Po spracovaní metódy OnClose a zatvorení formulára sa vyvolá udalosť OnDestroy. Túto udalosť použite na opačné operácie ako v prípade udalosti OnCreate. OnDestroy sa používa na prideľovanie objektov súvisiacich s formulárom a uvoľnenie príslušnej pamäte.
Po zatvorení hlavného formulára projektu sa aplikácia ukončí.