Thursday, April 29, 2010

Tipy a triky v Delphi

V naší ukázce si předvedeme změnu parametrů u Editu a u tlačítka. U komponenty Edit bude při aktivaci změněna barva, u tlačítka se změní font popisku na tučný. Provedeme to tak, že si vytvoříme vlastní obsluhy událostí OnEnter a OnExit, které nazveme prostě Enter a Exit. Poté na formulář umístěte libovolný počet editačních polí a nějaká tlačítka. U všech těchto prvků poté nastavte v Object Inspectoru obsluhu událostí OnEnter a OnExit právě na naše připravené procedury. U těch komponent, kde tyto události nenastavíte, se nestane pochopitelně nic, což ovšem rozhodně nemusí být na škodu a můžete si tak vybrat, které komponenty budou takto "postiženy".
.
.
.
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Enter(Sender: TObject);
procedure Exit(Sender: TObject);
.
.
.

procedure TForm1.Enter(Sender: TObject);
begin
if (Sender is TCustomEdit) then TEdit(Sender).Color := clRed;
if (Sender is TButton) then TButton(Sender).Font.Style := [fsBold];
end;

procedure TForm1.Exit(Sender: TObject);
begin
if (Sender is TCustomEdit) then TEdit(Sender).Color := clWindow;
if (Sender is TButton) then TButton(Sender).Font.Style := [];
end;
Jak vidíte, každá obsluha obsahuje podmínku, podle které se určuje, jaké parametry budou změněny na základě typu daného vizuálního objektu (tedy u typu TButton font, u TEdit zase barva). Změnit se dají vlastně libovolné parametry, ale nás budou zřejmě zajímat pouze ty vizuální. V události OnEnter jednotlivých komponent tedy naše procedura Enter změní barevnost či další parametry a poté, když uživatel přejde na jinou komponentu (zaktivuje ji), původní hodnoty budou opět obnoveny procedurou Exit v události OnExit. Tím docílíme jednoduchého efektu, kdy právě aktivní prvek na formuláři bude vždy zvýrazněn.

Labels: