Porozumění typovým konstantám v Delphi

Když Delphi vyvolá obsluhu události, staré hodnoty lokálních proměnných budou vymazány. Co když chceme sledovat, kolikrát bylo na tlačítko kliknuto? Mohli bychom nechat hodnoty přetrvávat pomocí proměnné na úrovni jednotky, ale obecně je vhodné vyhradit proměnné na úrovni jednotky pouze pro sdílení informací. To, co potřebujeme, se v Delphi obvykle nazývají statické proměnné nebo konstanty typu.

Proměnná nebo konstantní

Zadané konstanty lze porovnat s inicializovanými proměnnými-proměnnými, jejichž hodnoty jsou definovány při vstupu do jejich bloku (obvykle obsluha událostí). Taková proměnná je inicializována pouze při spuštění programu. Poté hodnota zadané konstanty přetrvává mezi následnými voláními na jejich procedury.

Použití zadaných konstant je velmi čistý způsob implementace automaticky inicializovaných proměnných. Chcete-li implementovat tyto proměnné bez zadaných konstant, budeme muset vytvořit sekci inicializace, která nastaví hodnotu každé inicializované proměnné.

Proměnné konstanty

instagram viewer

Přestože deklarujeme konstantní konstanty v konstantní části procedury, je důležité si uvědomit, že nejde o konstanty. Pokud budete mít kdykoli v aplikaci přístup k identifikátoru zadané konstanty, budete moci upravit její hodnotu.

Chcete-li zobrazit zadané konstanty v práci, umístěte tlačítko na prázdný formulář a přiřaďte následujícímu kódu obsluhy události OnClick:

postup TForm1.Button1Click (Sender: TObject); konst kliknutí: celé číslo = 1; // není skutečná konstantazačít Form1.Caption: = IntToStr (kliknutí); kliknutí: = kliknutí + 1; konec; 

Všimněte si, že pokaždé, když kliknete na tlačítko, vytvoří se postupně přírůstky titulků.
Nyní zkuste následující kód:

postup TForm1.Button1Click (Sender: TObject); var kliknutí: celé číslo; začít Form1.Caption: = IntToStr (kliknutí); kliknutí: = kliknutí + 1; konec; 

Nyní používáme neinicializovanou proměnnou pro počítadlo kliknutí. Všimněte si, že po kliknutí na tlačítko je v titulcích formulářů podivná hodnota.

Constant Typed Constants

Musíte souhlasit s tím, že myšlenka na modifikovatelné konstanty zní trochu podivně. V 32bitových verzích Delphi Borland se rozhodl odradit jejich použití, ale podporoval je pro starší kód Delphi 1.

Můžeme povolit nebo zakázat přiřazitelné zadané konstanty na stránce Kompilátor v dialogovém okně Možnosti projektu.

Pokud jste pro daný projekt deaktivovali přiřazitelné konstanty zadané pro daný projekt, při pokusu o kompilaci předchozího kódu vám Delphi dá při kompilaci chybu „Levá strana nemůže být přiřazena“. Můžete však vytvořit přiřazitelnou typovanou konstantu deklarováním:

{$ J +}konst kliknutí: celé číslo = 1; {$ J-}

Proto první příklad kódu vypadá takto:

postup TForm1.Button1Click (Sender: TObject); konst{$ J +} kliknutí: celé číslo = 1; // není skutečná konstanta{$ J-}začít Form1.Caption: = IntToStr (kliknutí); kliknutí: = kliknutí + 1; konec; 

Závěr

Je jen na vás, zda chcete, aby byly zadané konstanty přiřazitelné nebo ne. Důležité je, že kromě ideálních čítačů jsou typizované konstanty také ideální pro výrobu komponenty, které jsou střídavě viditelné nebo neviditelné, nebo je můžeme použít k přepínání mezi libovolnými booleovskými vlastnosti. Napsané konstanty lze také použít v obslužném programu události TTimeru, aby bylo možné sledovat, kolikrát bylo dokonce spuštěno.