Podstawowe własności komponentów: Name nazwa komponentu Width szerokość Height wysokość Enabled aktywny lub nie (true/false) Visible widoczność (true/false) Left pozycja lewego górnego rogu (w poziomie) Top pozycja lewego górnego rogu (w pionie) Tag pole liczbowe, do użytku programisty Hint wskazówka dla użytkownika pojawiająca się po najechaniu kursorem nad dany komponent, widoczna gdy ShowHint == true ShowHint true/false, czy wskazówka ma być widoczna Form ClientWidth szerokość obszaru roboczego (bez ramki) ClientHeight wysokość obszaru roboczego (bez ramki) Color kolor formatki, typu TColor, np. clred, clblack tytuł/nagłówek BorderStyle styl obramowania (bsnone - brak, bssingle bez możliwości zmiany wielkości, bssizeable z możliwością zmiany wielkości) OnCreate() zdarzenie wywoływane przy tworzeniu formatki TransparentColor true/false, czy ma być włączona przezroczystość TransparentColorValue kolor, który ma być przezroczysty (musi być różny od clbtnface) Constraints ograniczenia wielkości formatki, np. MinWidth, MaxHeight BorderIcons określenie, które przyciski mają być widoczne w prawym górnym rogu okna, np. biminimize, bimaximize AutoSize true/false, czy formatka ma dostosować rozmiary do zawartości KeyPreview czy formatka ma otrzymywać informację o naciśnięciu klawisza przed aktywnym komponentem Ustawienie koloru formatki za pomocą funkcji RGB(): Color = (TColor) RGB(r,g,b); Button - zdarzenia OnClick kliknięcie OnMouseDown naciśnięcie przycisku myszy. Parametry: X, Y aktualna pozycja kursora Button który przycisk myszy naciśnięto (typu TMouseButton ) Shift określa stan przycisków myszy i klawiszy Ctrl, Alt, Shift w momencie wywołania zdarzenia (typu TShiftState). Można również wychwycić podwójne kliknięcie. OnMouseMove poruszenie myszą OnMouseUp zwolnienie przycisku myszy OnKeyUp zwolnienie klawisza, parametrem jest Key naciśnięty klawisz OnKeyDown naciśnięcie klawisza OnKeyPress przytrzymanie klawisza OnEnter przycisk jest zaznaczony OnExit przycisk traci zaznaczenie na rzecz innego komponentu
Dynamiczne rzutowanie obiektu Sender (obiektu na rzecz którego zostało wywołane zdarzenie) na typ TButton: dynamic_cast <TButton *> (Sender) Memo pole edycyjne wieloliniowe Lines zawartość wszystkich linii Memo, typu TStrings Lines Add(tekst) wstawia tekst na końcu listy i zwraca indeks wstawionego elementu Lines Append(tekst) wstawia tekst na końcu listy bez zwracania wartości Lines Clear() czyści Memo Lines Count ilość linii Memo Lines Delete(i) usunięcie linii o numerze i (linie są numerowane od 0) Lines Insert(k, tekst) wstawienie linii zawierającej tekst w miejsce o numerze k Lines Strings[i] zwraca zawartość linii o numerze i Lines SaveToFile(nazwa pliku) zapis całej zawartości Memo do pliku Lines LoadFromFile(nazwa pliku) wczytanie z pliku do Memo ReadOnly true/false, tylko do odczytu ScrollBars można wybrać, który suwak będzie widoczny RadioGroup grupa przycisków radiowych Items zawartość wszystkich linii RadioGroup, typu TStrings Items Add(tekst) wstawia tekst na końcu listy i zwraca indeks wstawionego elementu Items Append(tekst) wstawia tekst na końcu listy bez zwracania wartości Items Insert(i, tekst) wstawienie linii zawierającej tekst w miejsce o numerze k Items Delete(i) usunięcie linii o numerze i (linie są numerowane od 0) ItemIndex indeks zaznaczonego elementu, domyślnie -1 (nic nie zaznaczone) Items Strings[i] zwraca zawartość linii o numerze i Items LoadFromFile(nazwa pliku) zapis całej zawartości ListBoxa do pliku Items SaveToFile(nazwa pliku) wczytanie z pliku do ListBoxa Items Clear() czyści ListBoxa Items Count ilość elementów na liście Items Assign(RadioGroup2 Items) przepisanie wszystkich elementów z RadioGroup2 do Radiogroup Columns = n ustawienie przycisków radiowych w n kolumnach Zawartość tekstowa aktualnie zaznaczonego elementu: AnsiString napis = RadioGroup1 Items Strings[RadioGroup1 ItemIndex]; ListBox Items MultiSelect CopySelection(ListBox2) DeleteSelected() ClearSelection() Selected[k] lista jak w RadioGroup true/false, możliwość zaznaczania kilku wierszy listy skopiowanie aktualnie zaznaczonych linii do ListBox2 usunięcie zaznaczonych elementów odznaczenie zaznaczonych elementów pole logiczne, określa czy element o numerze k jest zaznaczony
ComboBox Items Style = csdropdownlist rozwijalnej lista rozwijalna jak w RadioGroup blokada możliwości wpisywania tekstu przez użytkownika do listy CheckBox Checked pole wyboru pole zaznaczone/odznaczone GroupBox komponent do grupowania innych komponentów Panel komponent do grupowania innych komponentów Align dopasowanie rozmiarem do komponetu nadrzędnego (np. formatki), np. alleft do lewej, alclient - maksymalnie do komponentu nadrzędnego ScrollBar Min Max Position Kind suwak aktualna pozycja na suwaku suwak pionowy sbvertical lub poziomy - sbhorizontal Shape figura/kształt Shape - kształt figury - 6 możliwości: prostokąt (strectangle), koło (stcircle), elipsa (stellipse), kwadrat (stsquare), zaokrąglony prostokąt (stroundrect), zaokrąglony kwadrat (stroundsquare) Brush Color kolor wypełnienia Brush Style styl wypełnienia np. wykreskowane, puste, ciągłe Pen Color kolor obramowania Pen Style styl obramowania np. pusty, linia ciągła, wykropkowana Uwaga! Nie ma zdarzenia OnClick. W zastępstwie można skorzystać z OnMouseDown. Edit Text Clear() ReadOnly MaxLength pole edycyjne jednoliniowe czyszczenie pola edycyjnego tylko do odczytu max ilość wpisanych znaków Edit1 Text.IsEmpty() sprawdzenie czy pole niepuste
Label Alignment Layout AutoSize WordWrap etykieta wyrównanie w poziomie wyrównanie w pionie true/false, dopasowanie wielkości komponentu do zawartości true/false, zawijanie wierszy Timer Interval Enabled OnTimer() odstęp czasu co jaki mają się wykonywać instrukcje ze zdarzenia OnTimer true/false, włączanie/wyłączanie Timera zdarzenie wywoływane co dany odstęp czasu (określony przez Interval) ColorDialog Color SaveDialog Filter FileName OpenDialog Filter FileName okno dialogowe, w którym użytkownik może dokonać wyboru koloru kolor wybrany przez użytkownika z okna dialogowego okno dialogowe, w którym użytkownik może wybrać nazwę zapisywanego pliku filtr dla wyświetlanych typów plików nazwa wybranego przez użytkownika pliku okno dialogowe, w którym użytkownik może wybrać nazwę otwieranego pliku Przykłady zastosowania: if (ColorDialog1 Execute()) Label1 Font Color = ColorDialog1 Color; if (OpenDialog1 Execute()) Memo1 Lines LoadFromFile(OpenDialog1 FileName); Nowa formatka Aby dodać drugą formatkę wybieramy polecenie File New Form. Zostanie wstawiona formatka o nazwie Form2. Chcemy, aby ta formatka pojawiła się po naciśnięciu przycisku na pierwszej formatce. W tym celu możemy skorzystać z instrukcji Form2 Show() lub Form2 ShowModal(). Różnica funkcja ShowModal() wyświetlając nową formatkę jednocześnie blokuje inne elementy aplikacji, aż do momentu zamknięcia okna. Przy próbie kompilacji otrzymamy komunikat Undefined symbol Form2. Oznacza to, że musimy dołączyć odpowiedni plik nagłówkowy informujący o nowej formatce, czyli wybieramy File Include Unit Hdr i wybieramy z listy Unit 2.
BitBtn Glyph - bitmapa z pliku Kind - określa rodzaj przycisku, np. bkok to przycisk OK. Dodatkowo automatycznie pojawia się odpowiednia bitmapa i ustawiana jest właściwość ModalResult (w tym przypadku na mrok). ModalResult - określa czy i w jaki sposób kliknięcie przycisku zamknie formatkę. Uwaga! Metoda ShowModal() zwraca wartość ModalResult zamykanej formatki. Zdarzenie OnCloseQuery formatki posiada parametr CanClose. Przypisując mu wartość true/false możemy określić pod jakim warunkiem chcemy bądź nie chcemy kończyć pracę z bieżącą formatką. Przykład 1 (nie zamykamy okna jak okno edycyjne puste) if (Edit1->Text.IsEmpty()) CanClose = false; Przykład 2 (nie zamykamy okna jeśli wciśnięto przycisk Cancel) if (ModalResult == mrcancel) CanClose = false; Funkcja Trim() zwraca napis bez początkowych i końcowych spacji. Można to wykorzystać np. w przypadku, gdy chcemy sprawdzić czy pole edycyjne jest niepuste lub czy nie zawiera wyłącznie jednej bądź więcej spacji: if (!Edit1->Text.Trim().IsEmpty()) Application->MessageBoxA(tekst, tytuł, flagi) Funkcja, która wyświetla okno z komunikatem. Flagi to przyciski jakie mają się pojawić w oknie. Do wyboru mamy MB_ABORTRETRYIGNORE, MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL. Funkcja zwraca wartość, która wskazuje jaki przycisk został wybrany (IDOK, IDCANCEL, IDABORT, IDRETRY, IDIGNORE, IDYES, IDNO). Przykład int id = Application->MessageBoxA("Jeszcze raz?", "Koniec gry", MB_YESNO); if (id == IDYES)
Obsługa klawiatury Na liście parametrów zdarzenia OnKeyDown znajdują się parametry Key i Shift. Parametr Key przechowuje informację o naciśniętym klawiszu. W przypadku klawiszy alfanumerycznych przechowywana jest ich wartość, a dla pozostałych trzeba skorzystać z wirtualnych kodów klawiszy, np.vk_left (strzałka w lewo), VK_F1, VK_SHIFT. Lista kodów dostępna jest w Helpie pod hasłem Virtual key codes. Parametr Shift przechowuje informację o tym, czy w trakcie naciśnięcia klawisza nie jest przytrzymany klawisz Alt, Shift, Ctrl lub kombinacja tych klawiszy. Parametr Shift jest typu TShiftState (jest zbiorem). Żeby sprawdzić, czy jakiś klawisz został wybrany należy skorzystać z funkcji Contains(), a stałe, które mamy do dyspozycji to ssshift, ssalt, ssctrl. Przykład 1 (obsługa strzałek) switch (Key) { case VK_UP:... case VK_DOWN:... case VK_LEFT:... case VK_RIGHT:... } Przykład 2 (porównanie wciśniętego klawisza z zawartością pola edycyjnego) if ((AnsiString)((char)Key) == Edit1->Text) Przykład 3 (czy kliknięto kombinację klawiszy Ctrl+Shift+A) if ((char)key == 'A' && Shift.Contains(ssCtrl) && Shift.Contains(ssShift))