Programowanie w języku Delphi » FAQ

Komponent czy Szablon komponentu

Czasami zastanawiamy się czy instalować komponent, który zaoszczędzi nam trochę pracy przy tworzeniu aplikacji, czy też istnieje inna możliwość, aby za dużo się nie napracować. Jeżeli ów komponent jest rozbudowany i wykonuje zaawansowane działania, to z pewnością warto go zainstalować. Jeżeli natomiast jest tylko jakimś klonem standardowego komponentu Delphi wykonującym dodatkowe działanie (np. komponent TEdit posiadający zabezpieczenie umożliwiające wpisywanie np. tylko cyfr), to racz nie warto go instalować. Zamiast tego można w DELPHI stworzyć sobie tzw. szablon komponentu. W tym celu należy:

1) Umieścić na formularzu okno edycyjne Edit.

2) Z zakładki Events wybrać zdarzenie OnKeyPress i wpisać w jego wnętrze przykładowy następujący kod:   
if Key in ['0'..'9', ',', '+', '-'] then Key := Key
else Key := #0;

Kod ten filtruje możliwe do wpisania w okno edycyjne znaki, tzn. cyfry, przecinek, plus, minus.

3) Upewnić się, iż wybranym komponentem jest pole edycji, a następnie wybranie polecenia Component | Create Component Template. Wyświetlone zostanie okno dialogowe informacji o szablonach komponentów (Component Template Information).

4) W pole nazwy komponentu (Component Name) należy wpisać nazwe komponentu (w naszym przykładzie niech będzie to np. TNumEdit). W polu Palette page można wybrać paletę, na której komponent ma zostać umieszczony, lub zostawić domyślną TEMPLATE. Można również zmienić bitmapę, która będzie wyświetlana dla tego komponentu.

5) Po kliknięciu OK szablon komponentu zostaje zapisany i umieszczony na wybranej zakładce Palety Komponentów.

Po umieszczeniu takiego komponentu na formatce, zostaje automatycznie wygenerowany kod źródłowy dla zdarzenia OnKey Press.
Od tej pory można tego szablonu używać jak "normalnego" komponentu.

Powodzenia

1 komentarz

januszs 2009-11-16 20:32

uzyteczne, ja osobiscie uwazam ze nalezaloby uzupelnic warunek if o dodatkowy kod #8, co pozwala uzyc klawisza backspace. dodatkowo w pole text wpisac wartosc 0 i bedzie jak znalazl.
wskazowka jak najbardziej trafiona