Zrození, život a smrt formy Delphi

click fraud protection

v Delphi, každý projekt má alespoň jedno okno - hlavní okno programu. Všechna okna aplikace Delphi jsou založena na Objekt TForm.

Formulář

Objekty formuláře jsou základní stavební bloky aplikace Delphi, skutečná okna, s nimiž uživatel při spuštění aplikace komunikuje. Formuláře mají své vlastní vlastnosti, události a metody, pomocí kterých můžete řídit jejich vzhled a chování. Formulář je ve skutečnosti komponenta Delphi, ale na rozdíl od jiných komponent se formulář na paletě komponent nezobrazí.

Normálně vytváříme objekt formuláře spuštěním nové aplikace (File | New Application). Tento nově vytvořený formulář bude ve výchozím nastavení hlavním formulářem aplikace - první formulář vytvořený za běhu.

Poznámka: Chcete-li do projektu Delphi přidat další formulář, vyberte Soubor | Nový formulář.

Narození

OnCreate
Událost OnCreate se spustí, když je TForm poprvé vytvořen, tj. Pouze jednou. Příkaz odpovědný za vytvoření formuláře je ve zdroji projektu (pokud je formulář nastaven tak, aby byl projekt automaticky vytvořen). Při vytváření formuláře a jeho viditelné vlastnosti je PRAVDA, nastanou následující události v uvedeném pořadí: OnCreate, OnShow, OnActivate, OnPaint.

instagram viewer

Obslužný program události OnCreate byste měli použít například k provádění inicializačních akcí, jako je přidělování seznamů řetězců.

Všechny objekty vytvořené v události OnCreate by měly být uvolněny událostí OnDestroy.

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

Na představení
Tato událost označuje, že se formulář zobrazuje. OnShow se nazývá těsně předtím, než bude formulář viditelný. Kromě hlavních formulářů se tato událost stává, když nastavíme vlastnost Visible na hodnotu True nebo zavoláme metodu Show nebo ShowModal.

OnActivate
Tato událost se volá, když program aktivuje formulář - to znamená, když formulář obdrží vstupní fokus. Pomocí této události můžete změnit, na který ovládací prvek se skutečně zaměřuje, pokud není požadovaný.

OnPaint, OnResize
Události jako OnPaint a OnResize se vždy vyvolávají po vytvoření formuláře, ale také se opakují. OnPaint nastane před malováním ovládacích prvků ve formuláři (použijte pro speciální malování ve formuláři).

Život

Zrození formy není tak zajímavé, jak může být její život a smrt. Když je formulář vytvořen a všechny ovládací prvky čekají na zpracování událostí, program běží, dokud se někdo pokusí formulář zavřít!

Smrt

Aplikace řízená událostmi se zastaví, když jsou všechny její formuláře uzavřeny a nevykonává se žádný kód. Pokud skrytý formulář stále existuje i po uzavření posledního viditelného formuláře, zdá se, že má vaše aplikace skončil (protože nejsou viditelné žádné formuláře), ale ve skutečnosti bude pokračovat, dokud nebudou všechny skryté formuláře Zavřeno. Jen si pomyslete na situaci, kdy se hlavní forma brzy ukryje a všechny ostatní formy se zavřou.

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

OnCloseQuery
Při pokusu o uzavření formuláře pomocí metody Zavřít nebo jiným způsobem (Alt + F4) se vyvolá událost OnCloseQuery. Obsluha události pro tuto událost je tedy místem, kde lze zachytit uzavření formuláře a zabránit mu. Používáme OnCloseQuery, abychom se zeptali uživatelů, zda si jsou jisti, že opravdu chtějí formulář zavřít.

postup TForm1.FormCloseQuery (Odesílatel: TObject; var CanClose: Boolean);

začít

-liMessageDlg(„Opravdu zavřete toto okno?“, MtConfirmation, [mbOk, mbCancel], 0) = mrCancel pak CanClose: = False;

konec; 

Obslužný program události OnCloseQuery obsahuje proměnnou CanClose, která určuje, zda je dovoleno zavřít formulář. Obsluha události OnCloseQuery může nastavit hodnotu CloseQuery na False (pomocí parametru CanClose) a zrušit metodu Close.

OnClose
Pokud OnCloseQuery označuje, že by měl být formulář uzavřen, je vyvolána událost OnClose.

Událost OnClose nám dává poslední šanci zabránit uzavření formuláře. Obsluha události OnClose má parametr Akce s následujícími čtyřmi možnými hodnotami:

  • caNone. Formulář není dovoleno uzavřít. Stejně jako v případě OnCloseQuery jsme nastavili CanClose na False.
  • caHide. Místo uzavření formuláře jej skryjete.
  • caFree. Formulář je uzavřen, takže jeho přidělená paměť je uvolněna společností Delphi.
  • caMinimize. Formulář je minimalizován, spíše než uzavřen. Toto je výchozí akce pro podřízené formuláře MDI. Když uživatel vypne systém Windows, aktivuje se událost OnCloseQuery, nikoli OnClose. Pokud chcete zabránit vypnutí Windows, vložte svůj kód do obslužné rutiny události OnCloseQuery, samozřejmě CanClose = False to neudělá.

OnDestroy
Po zpracování metody OnClose a uzavření formuláře je vyvolána událost OnDestroy. Tuto událost použijte pro operace, které se liší od operací v události OnCreate. OnDestroy se používá k přidělování objektů souvisejících s formulářem a uvolnění odpovídající paměti.

Po zavření hlavního formuláře projektu se aplikace ukončí.

instagram story viewer