Hacking  
  Wrzesień 20 2014 03:53:07  
 
Nawigacja
folder Portal
. Artykuły
. Download
. Forum
. Szukaj
. FAQ
. Regulamin
folder Hacking
. Gry Hakerskie
. Filmy
folder Delphi
. Kursy
. Faq
. Źródła
. Komponenty
. Artykuły
folderWebmaster
. JavaScripts
. Skrypty PHP
folderRóżne
. Kontakt
. Zlokalizuj ip
Aktualnie online
. Gości online: 3

. Użytkowników online: 0

. Łącznie użytkowników: 152,013
. Najnowszy użytkownik: vernie_38
Ostatnie artykuły
. Metoda ataku symlin...
. Asembler x86 w pigułce
. Binder plików z komp...
. [Asembler/MASM] Pobi...
. Braifuck 4 fun
Zobacz temat
Hacking » Programowanie » Delphi
 Drukuj temat
Kurs Delphi Trojany.keylogger
cze123
Siema chciałbym się nauczyć Delphi aby umieć pisać programy oraz trojany,wirusy,keyloggery i moglibyście polecić mi jakiś bardzo fajny dobrze opisany kurs np. z którego wy korzystaliście . Wiem moge sobie poszukać itp. ale chciałbym już ze sprawdzonego ??
 
krecik324
Wiadomości wstępne 4
Wprowadzenie. 4
Środowisko programistyczne. 4
Tworzenie przykładowej aplikacji. 5
Projektowanie formularza 5
Kompilowanie i uruchamianie projektu. 6
Obsługa zdarzeń. 6
Pliki wchodzące w skład projektu. 7
Zachowywanie projektu 8
Komponenty. 8
Komponent - formularz 8
Paleta komponentów. 9
Manipulowanie komponentami na formularzu. 11
Właściwość Name 11
Dodawanie komponentów do formularza 11
Zmiana rozmiaru komponentu 11
Wybieranie komponentów na formularzu 12
Zmiana rozmiaru komponentów 12
Dodanie wielokrotnych kopii komponentu 12
Grupowanie komponentów 12
Wycinanie, kopiowanie i wklejanie komponentów 12
Kasowanie i odtwarzanie komponentów 13
Wyrównywanie komponentów 13
Ustawianie właściwości komponentów. 13
Wyświetlanie i ustawianie właściwości jednocześnie dla kilku komponentów 15
Wykorzystanie edytora właściwości 15
Ustawianie właściwości w czasie uruchomienia aplikacji 15
Praca z kodem 16
Generowanie procedury dla domyślnego zdarzenia 16
Praca z edytorem kodu 16
Wyszukiwanie istniejącej procedury obsługi zdarzenia 16
Powiązanie zdarzenia z istniejącą procedurą obsługi zdarzeń 16
Wyświetlanie i kodowanie procedur dla kilku zaznaczonych komponentów 17
Usuwanie procedury obsługi zdarzenia 17
Opis podstawowych komponentów i ich właściwości 18
Właściwości wspólne dla wielu komponentów 18
Opis wybranych komponentów 19
Dostosowywanie biblioteki komponentów. 20
Dodawanie i usuwanie komponentów z biblioteki 20
Korzystanie z dostosowanych bibliotek 21
Programowanie obiektowe w Delphi 21
Obiekty w Delphi. 21
Co to jest obiekt? 21
Badanie obiektu Delphi 22
Zmiana nazwy komponentu 23
Dziedziczenie danych i kodu w obiekcie. 24
Obiekty, komponenty i kontrolki 24
Zasięg obiektu. 25
Odwołanie do komponentu z innego formularza 25
Zasięg i dziedziczenie obiektów 25
Deklarowanie pól i metod w obiekcie 26
Publiczne i prywatne deklaracje. 26
Przypisywanie wartości polom w obiekcie 27
Przypisywanie wartości do zmiennych obiektowych 28
Operatory is i as. 28
Tworzenie obiektów niewizualnych. 29
Tworzenie instancji obiektu 30
Usuwanie (destroying) obiektu 30
Tworzenie odpornych aplikacji. 30
Ochrona bloków kodu 30
Zagnieżdżona odpowiedź na wyjątek 31
Ochrona przydzielonych zasobów 31
Zarządzanie wyjątkami RTL 33
Tworzenie obsługi wyjątku 34
Zarządzanie wyjątków komponentów 36
Ciche wyjątki 37
Posumowanie 37
Zarządzanie projektami 37
Składowe projektu. 37
Co to jest projekt? 37
Pliki tworzące projekt (Składowe projektu) 37
Zrozumienie plików w projekcie 38
Dostosowywanie opcji projektu 40
Opcje środowiska 40
Opcje projektu 41
Menedżer projektu. 42
Wyświetlenie Menadżera projektów 42
Elementy okna Menadżera projektu 42
Nawigacja pomiędzy składnikami projektu 43
Budowanie formularzy i menu 43
Wykorzystanie w jednym formularzu innych formularzy. 43
Sprawianie, że formularze są widoczne w innych formularzach 43
Umożliwienie wykorzystania dwóch formularzy nawzajem przez siebie 44
Wykorzystanie szablonów formularzy. 44
Tworzenie okien dialogowych. 44
Procedury i funkcje do wyświetlania okien dialogowych 44
Tworzenie własnych okien dialogowych 47
Ustalenie kolejności przejścia przy klawiszu Tab. 49
Testowanie kolejności klawisza Tab 50
Usunięcie komponentu z listy kolejności klawisza Tab 50
Wyłączanie komponentu. 50
Ustawianie fokusu. 50
Tworzenie menu formularzy. 51
Otwieranie Projektanta menu 51
Tworzenie menu 51
Polecenia z menu podręcznego Projektanta menu 53
Łączenie zdarzeń menu z kodem programu 54
Wygaszanie poleceń menu. 54
Menu podręczne. 54
Tworzenie paska narzędzi 55
Dodanie do formularza paska narzędzi 55
Dodanie przycisków do paska narzędzi 55
Obsługa kliknięcia przycisku 56
Komponenty. Grafika. Teksty. 56
Grafika w Delphi. 56
Komponenty graficzne. 57
Komponent Shape 57
Zmiana koloru komponentu 57
Komponent Image. 57
Wstawianie rysunku 57
Tworzenie grafiki za pomocą kodu. 58
Różnica między rysowaniem a malowaniem 58
Wykorzystanie tablicy pikseli 58
Wykorzystanie pióra 59
Wykorzystanie pędzla 59
Zdarzenie OnPaint 60
Rysowanie linii prostych i łamanych 60
Rysowanie kształtów 60
Komponenty posiadające kanwę 61
Praca z plikami graficznymi. 61
Ładowanie do komponentu Image zawartości pliku graficznego 61
Zachowywanie grafiki w pliku 62
Drukowanie grafiki 62
Opis wybranych komponentów 62
MaskEdit 63
PageControl 63
StatusBar 64
Bevel 64
ScrollBox 64
Timer 64
Wykorzystanie typowych okien dialogowych. 65
Opcje typowych okien dialogowych 65
Wykorzystanie komponentu OpenDialog 66
Wykorzystanie komponentu SaveDialog 66
Komponent okna dialogowego Czcionka 66
Wykorzystanie okien dialogowych drukarki 66
Dźwięk i multimedia. 67
Funkcja PlaySound 67
Komponent MediaPlayer 68
Przeciąganie elementów za pomocą myszki. 69
Co to jest zdarzenie myszki? 69
Przeciąganie i upuszczanie 71
Listy tekstów i ich zastosowanie. 73
Manipulowanie tekstami na liście 74
Ładowanie i zachowywanie list tekstów 76
Komponenty wykorzystujące listy tekstów 76
Komponent Memo i RichEdit 77
Manipulowanie tekstem w komponencie memo 77
TRichEdit 78
Wydruk zawartości listy tekstów. 79
Drukowanie 79
Przesyłanie pliku tekstowego do drukarki 79
Obsługa plików zdefiniowanych. 80
Deklaracja typu plikowego 80
funkcje i procedury do obsługi plików zdefiniowanych 81
Przykład operacji na plikach zdefiniowanych 82
Formularze MDI i SDI. 84
Aplikacje wielodokumentowe (MDI) 85




Wiadomości wstępne
Wprowadzenie.
W epoce DOS-u tworzenie aplikacji za pomocą języka programowania takiego jak Turbo Pascal zajmowało bardzo dużo czasu. Dużą jego część poświęcano na tworzenie interfejsu użytkownika.
W momencie pojawienia się systemu Windows programista dostał do ręki nowe narzędzia. Mógł wykorzystać gotowe funkcje, które tworzyły podstawowe elementy aplikacji , takie jak: okna, przyciski, grupy opcji itp. Niestety, programowanie w WinAPI było zadaniem bardzo trudnym i wymagało sporej wiedzy i umiejętności.
Wkrótce jednak pojawiło się rozwiązanie: Rapid Application Development (RAD)(szybkie tworzenie aplikacji). Narzędzia te oferowały już na starcie gotowe okno aplikacji. Aby dodać do niego jakieś elementy, np. przyciski, wystarczy przeciągnąć je myszką z paska narzędzi. Za pomocą myszki można dowolnie zmienić ich położenie i rozmiary.
Borland Delphi jest narzędziem RAD umożliwiającym szybkie tworzenie aplikacji działających w systemie Windows. Ma dwie podstawowe cechy:
r6; jest wizualny tzn. pozwala przenosić myszką elementy aplikacji (np. przyciski) i układać je w oknach.
r6; jest obiektowy tzn. oparty jest na obiektowej wersji Pascala (Object Pascal).
Doświadczenie zdobyte podczas programowania w Borland Pascalu będzie w Delphi owocować i ułatwi pracę z nowym narzędziem. Język Object Pascal wchodzący w skład Delphi jest zgodny z językiem Borland/Turbo Pascal . W czasie programowania nie można odwoływać się do takich modułów jak: Crt, DOS, Graph itp. Ze starej biblioteki zachowano jedynie moduł System, który został znacznie rozwinięty. Istnieją też różnice w nazwie funkcji, np. zamiast Close, jest CloseFile. W Object Pascalu został wprowadzony nowy model typu obiektowego definiowany za pomocą słowa kluczowego class.
Tworzenie aplikacji w Delphi jest dwutorowe (ang. two-way-tools). Pierwszym torem są narzędzia wizualne, drugim - pisanie kodu źródłowego. Najważniejsze jest to, że wszystko co zrobisz za pomocą narzędzi wizualnych jest automatycznie uwzględniane w kodzie źródłowym. Obydwie drogi są równie ważne: narzędzia wizualne służą do szybkiego projektowania interfejsu użytkownika, jednak aby aplikacja robiła coś konkretnego, musimy to napisać za pomocą języka Object Pascal.
Środowisko programistyczne.
r6; Elementy środowiska programistyczne: formularz, paleta komponentów, Inspektor obiektów, edytor kodu
Środowisko Delphi (menu, okna itd.), w którym tworzymy aplikacje, jest zintegrowane (IDE - Integrated Development Environment). Zawiera wiele potrzebnych narzędzi do ułatwienia pracy programiście
Elementy widoczne po uruchomieniu Delphi
Formularz
Formularz używamy jako kanwy lub umieszczamy na nim komponenty, tworząc w ten sposób interface użytkownika. Komponenty są swoistymi klockami, z których możemy budować aplikację. Są one umieszczone na Palecie komponentów. Można myśleć o formularzu jako o komponencie, który może zawierać inne komponenty. Główny formularz Twojej aplikacji wraz z innymi formularzami (np. oknami dialogowymi) tworzy interface Twojej aplikacji. Formularz wygląda i zachowuje się jak każde standardowe okno Windows.
Właściwości formularza (określające np. tekst na pasku tytułu) można zmieniać korzystając z Inspektora Obiektów (Object Inspector). Określając właściwości dowolnego komponentu określamy jego wygląd i zachowanie
Tworzenie formularzy ułatwiają nam
r6; Szablony projektów (Project Templates -umożliwiają wybór aplikacji) i formularzy (Form Templates ).
r6; Expert projektów (Project Experts ) i Expert formularzy (Form Experts ) tworzą projekt i formularz zgodnie z naszymi wyborami. Np. Database Form Expert tworzy formularz wyświetlający dane z zewnętrznej bazy danych.
Paleta komponentów (Component palette)
Komponenty są elementami, z których budujemy aplikację. Mogą być widoczne (przyciski, pola tekstowe, etykiety) lub niewidoczne w czasie działania aplikacji.
Komponenty są pogrupowane na różnych stronach (fiszkach) palety komponentów. Można tworzyć własne komponenty i umieszczać je na palecie komponentów.
Inspektor obiektów (Object Inspector)
Inspektor obiektów służy do łatwego określania wyglądu i zachowania komponentów. W oknie inspektora obiektów pojawiają się właściwości wyróżnionego obiektu na stronie Properties (właściwości) . Na stronie Events (zdarzenia) umieszczony jest spis zdarzeń, na które reaguje komponent. Możemy tu dołączyć do odpowiedniego zdarzenia procedurę obsługi zdarzenia (event handlers ).
Selektor obiektów(Object selector)
Jest to rozwijana lista na górze inspektora obiektów, która zawiera spis wszystkich komponentów formularza (także sam formularz) i umożliwia wygodne przełączanie pomiędzy nimi.
Edytor kodu (Code Editor)
Wpisujemy tu kod programu. Każdy moduł ma swoją zakładkę. Wystarczy na nią kliknąć aby oglądać kod odpowiedniego modułu.
Pasek szybkiego dostępu (SpeedBar)
Umożliwia dostęp do najczęściej używanych komend z menu File, Edit, View.
Wybrane elementy niewidoczne podczas pierwszego uruchomienia.
Menadżer projektów (Project Manager)
Menadżer projektów wyświetla listę plików, które wchodzą w skład aktualnie tworzonej aplikacji. Umożliwia łatwą nawigację pomiędzy plikami. Przyciski dostępne w Menadżerze projektów umożliwiają tworzenie nowych formularzy i modułów, oglądanie plików aktualnego projektu, zachowanie wszystkich plików.
Projektant Menu (Menu Designer)
Dzięki niemu możemy w łatwy sposób dodawać menu do formularzy.
Debuger (Integrated debugger)
Delphi ma wbudowany debuger służący pomocą przy wykrywaniu błędów w programie.

Tworzenie przykładowej aplikacji.
r6; tworzenie nowego formularza.
r6; Dodawanie komponentów do formularza
r6; Ustawianie właściwości formularza i komponentów w Inspektorze obiektów
Zostanie tu zaprezentowana bardzo prosta aplikacje, która umożliwia zmianę koloru formularza po kliknięciu przycisku. Przykład ten ma na celu zaprezentowanie tworzeniu aplikacji w Delphi:
r6; Projektowanie formularza
r6; Obsługa zdarzeń
Projektowanie formularza
Projektowanie formularza polega na prostym rozmieszczeniu obiektów (komponentów) w oknie (formularza).
Kolejne kroki wykonywane przy tym to:
Tworzenie nowego formularza
Przy uruchomieniu Delphi otrzymujemy już pusty formularz (projekt).
ä Uruchamiamy Delphi.
Dodanie komponentów do formularza
Pierwsza przykładowa aplikacja ma tylko jeden komponent r11; przycisk (button component).
ä Kliknij Button component na standardowej stronie palety komponentów, następnie kliknij w miejscu, gdzie chcesz umieścić komponent np. na środku formularza.
Ustawienie właściwości
Właściwości określają wygląd obiektu i jego zachowanie. Można je ustawiać w Inspektorze obiektów lub w kodzie programu.
W naszym przykładzie ustawimy tytuł (caption) dla formularza i dla przycisku.
ä Zmień właściwość Caption dla Form1 na 'Mój program demonstracyjny'. Potem zmień właściwość Caption dla Button1 na 'Kolor'. Zauważ, że efekty dokonywanych zmian są od razu widoczne na pasku tytułu formularza i na przycisku.
Atrybut (właściwość) Name
Ta właściwość identyfikuje komponent i jest wykorzystywana przede wszystkim w kodzie programu. Bardzo dobrą praktyką jest nadawanie komponentom czytelnych nazw i unikanie takich jak Form1 lub Button1.
Uwaga Nazwa komponentu jest identyfikatorem i nie może zawierać polskich liter ani spacji. Tytuł jest tekstem i może zawierać dowolny ciąg znaków.
Kompilowanie i uruchamianie projektu.
r6; Kompilowanie i uruchamianie projektu

Za każdy razem, gdy dodajesz nowy komponent, Delphi tworzy odpowiedni kod programu.
Po wybraniu komendy Run tworzony jest wykonywalny program .EXE.
ä Uruchom program wybierając Run
Zauważ, że dodane komponenty zachowują się zgodnie z oczekiwaniami: przycisk się wciska (choć nic się nie dzieje), można zmieniać myszką rozmiary okna formularza itp. Każdy komponent ma już wbudowane typowe reakcje, których nie musisz programować.
Powinniśmy jednak zaprogramować zachowanie programu w odpowiedzi na pewne zdarzenia (events) takie jak np. kliknięcie przycisku. Dokonujemy tego w kodzie programu.
ä Zakończ działanie aplikacji (zamknij okno aplikacji).
Obsługa zdarzeń.
r6; Obsługa zdarzeń
Zdarzenia (events) reprezentują działania użytkownika (albo przerwania systemowe), które twoja aplikacja może rozpoznać np. kliknięcie myszką. Kod programu, który określa jak komponent powinien odpowiedzieć na zdarzenie nazywa się obsługą zdarzenia (event handler).
Strona Events w Inspektorze obiektów wyświetla wszystkie zdarzenia przyporządkowane do wybranego komponentu.
Możesz użyć Inspektora obiektów do utworzenia obsługi zdarzenia dla dowolnego komponentu. Po dwukrotnym kliknięciu na wybrane zdarzenie Delphi tworzy część kodu. Na przykład następujący kod jest początkowym zarysem obsługi zdarzenia, które Delphi tworzy dla zdarzenia OnClick przycisku Button1 na formularzu Form1:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Kod programu, który ma być wykonany zawsze, gdy zajdzie odpowiednie zdarzenie zapisujemy pomiędzy begin i end (w bloku procedury).

n Tworzenie obsługi zdarzenia,
1 Zaznacz komponent, wybierz w Inspektorze obiektów zakładkę Events.
2 Dwukrotnie kliknij obok właściwego zdarzenia. Zostanie utworzona procedura obsługi zdarzenia w Edytorze kodu i kursor zostanie automatycznie umieszczony w bloku begin..end.
3 Wpisz teraz polecenia, które chcesz, aby były wykonane kiedy wystąpi to zdarzenie.
ä Utwórz procedurę obsługi zdarzenia dla zdarzenia OnClick przycisku, i wpisz następujący kod w bloku procedury:
Form1.Color := clAqua;
Oznacza to, że w momencie kliknięcia przycisku właściwość Color formularza zostanie zmieniona na clAqua.
Cała procedura obsługi zdarzenia wygląda teraz tak:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Color := clAqua;
end;
ä Wypróbuj procedurę obsługi zdarzenia, którą właśnie napisałeś. (Uruchom program).
Pliki wchodzące w skład projektu.
r6; Elementy projektu: plik projektu, plik modułu, plik formularza
Najprostszy projekt, na przykład domyślny Project1 zawiera plik z kodem w Pascalu (moduł) .PAS i plik zawierający zapisany w postaci tekstowej robrazr1; formularza (.DFM). Oba te pliki są niezbędne do utworzenia formularza.
Plik projektu (.DPR)
Jest również tworzony dla każdego projektu. Zawiera program główny, łączący w jedną całość wszystkie plik projektu. Domyślny plik projektu zawiera:
r6; Domyślną nazwę projektu (np. Project1).
r6; Deklarację modułów (także należących do projektu formularzy, które są modułami).
r6; Część główną programu uruchamiającą aplikację.

n Aby obejrzeć plik projektu .DPR:
1 Wybierz View|Project Source
Plik projektu jest tworzony automatycznie. W przypadku dodania nowego formularza plik projektu jest automatycznie aktualizowany.
ä Dodaj nowy, pusty formularz do projektu i obejrzyj zmiany w pliku projektu.
Zostanie dodany nowy moduł (Unit2), plik (UNIT2.PAS) oraz identyfikator formularza (Form2).

Plik modułu (.PAS)
Domyślny plik modułu zawiera:
r6; Domyślną nazwę modułu.
Powinna być zmieniona na bardziej znaczącą np. główny moduł programu może się nazywać MainForm. Nazwę modułu można zmienić za pomocą polecenia File|Save As lub przy pierwszym zachowywaniu projektu.
r6; Część interface zawierającą:
r6; Deklaracje modułów uses
r6; Deklaracja typu formularza (klasa r11; formularz)
r6; Deklaracja zmiennej obiektowej (obiekt r11; formularz)
Po utworzeniu nowego formularza deklaracja potrzebnych modułów jest wykonywana automatycznie.
r6; Część implementation z kodem źródłowym formularza.

n Aby obejrzeć plik modułu formularza .PAS:
1 Wybierz zakładkę z nazwą odpowiednie****iku w oknie edytora kodu (Code Editor). Jeśli w oknie Edytora kodu jej nie ma, wybierz View|Units....
Plik formularza (.DFM)
Plik .DFM jest plikiem binarnym i na ekranie jest widoczna jego graficzna reprezentacja.
Można jednak oglądać plik formularza w postaci tekstowej otwierając go w oknie edytora kodu (Code Editor).
Moduły nie związane z formularzem
Większość modułów jest związana z formularzem, ale można też tworzyć moduły niezależne.
Przy tworzeniu niezależnego modułu Delphi generuje tylko następujący kod
unit Unit2;
interface
implementation
end.
Sami musimy zadeklarować użycie potrzebnych modułów.
Zachowywanie projektu
r6; Zachowywanie projektu
Można zachować wybrany formularz lub cały projekt.
n Aby zachować bieżący formularz (i jego moduł), wybierz File|Save lub kliknij na przycisk Save.
n Aby zachować projekt i wszystkie pliki wchodzące w jego skład wybierz File|Save All.
n Aby zachować kopię projektu w nowym położeniu wybierz polecenie File|Save Project As i podaj nowy katalog i ewentualnie nową nazwę projektu.
Jeśli chcemy, aby pliki modułów również zostały skopiowane w nowe położenie musimy dla każdego z nich indywidualnie wybrać polecenie File|Save File As.

Każdy plik projektu powinien mieć unikatową nazwę, mówiącą jednocześnie o jego przeznaczeniu. Najlepiej jeżeli główny plik projektu nosi nazwę odpowiadającą przeznaczeniu aplikacji. Wszystkie pliki danego projektu powinny być umieszczone w oddzielnym katalogu.
Nazwy plików powinny być poprawnymi identyfikatorami, tzn. nie mogą zawierać polskich liter i spacji.
Komponenty.
Możemy je znaleźć na palecie komponentów. Komponenty są typu wizualnego i niewizualnego. Komponenty wizualne pojawiają się na formularzu dokładnie w takiej samej postaci, jak podczas uruchomienia aplikacji. Niewizualne takie jak np. MainMenu wyglądają zupełnie inaczej w trakcie projektu i podczas uruchomienia. W projekcie widać komponent MainMenu, podczas uruchomienia nie widać komponentu tylko menu.
Komponent - formularz
Formularz jest komponentem, który zwiera inne komponenty. Domyślnie komponent formularza nie pojawia się na palecie komponentów, ale można go tam umieścić.
Paleta komponentów.
r6; Paleta komponentów
Zostaną tu przedstawione tylko dwie strony z palety komponentów.
Uwaga Ikona wskaźnika pojawia się na każdej stronie palety komponentów. Wybór wskaźnika umożliwia wybranie komponentów z palety.
Komponenty na stronie standardowej
Wizualny Nazwa komponentu Zastosowanie
Nie
MainMenu
Menu. Tworzy pasek menu wraz z rozwijanym menu.
Nie
PopupMenu Menu podręczne. Tworzy podręczne menu rozwijane po kliknięciu prawym klawiszem myszki na formularzu lub komponentach
Tak
Label Etykieta. Tworzy etykietę wyświetlającą teksy. Zwykle opisuje inne komponenty na formularzu.
Tak
Edit Pole tekstowe. Tworzy na formularzu obszar, gdzie użytkownik może wprowadzać i modyfikować pojedynczą linię tekstu.
Tak
Memo Memo. Wyświetla obszar w którym użytkownik może wprowadzać i modyfikować wiele linii tekstu.
Tak
Button
Przycisk. Tworzy przycisk.
Tak
CheckBox
Pole wyboru. Prezentuje opcje typu Tak/ Nie, Wł/Wył, True/False itp.
Tak
RadioButton Przycisk opcji. Zwykle używane w grupach opcji, w których można wybrać tylko jedną opcję.
Tak
ListBox Pole listy. Wyświetla listę, z której można wybrać jeden lub kilka elementów.
Tak
ComboBox Pole kombi. Łączy pole edycji z listą wyboru. Użytkownik może pisać tekst w pole edycji lub wybrać element z listy.
Tak
ScrollBar Pasek przewijania. Pasek przewijania, który przewija na przykład elementy na liście lub może służyć do zmiany jakiejś wartości.
Tak
GroupBox
Pole grupy. Grupuje inne komponenty na formularzu.
Tak
RadioGroup
Grupa opcji.
Tak
Panel Panel. Grupuje inne komponenty, zwykle używamy go do utworzenia paska statusu lub paska narzędzi.
Komponenty na stronie Additional (dodatkowej)
Wizualny Nazwa komponentu Zastosowanie
Tak
BitBtn
BitBtn. Tworzy przycisk, na którym dodatkowo można umieścić bitmapę.
Tak
SpeedButton Przyciski z bitmapą (ale bez tekstu), umieszczone na panelu tworzą paski narzędzi.
Tak
MaskEdit Podobny do pola tekstowego, ale dodatkowo potrafi formatować wyświetlaną informację i tworzyć maskę wprowadzania dla danych.
Tak
StringGrid

Wyświetla informacje tekstowe w postaci tabeli.
Tak
DrawGrid
Wyświetla informacje inne niż teksty w postaci tabeli.
Tak
Image
Wyświetla bitmapy, ikony lub pliki w formacie WFM.
Tak
Shape
Rysuje geometryczne kształty: elipsę, prostokąt, zaokrąglony prostokąt.
Tak
Bevel
Tworzy linie lub prostokąty, które są wypukłe lub wklęsłe (efekt 3D).
Tak
ScrollBox Tworzy obszar, w którym automatycznie pojawiają się paski przewijania, gdy wyświetlany obiekt jest większy niż ten obszar.
Komponenty na stronie Windows 95
Zostaną omówione później.
Komponenty na stronie Data Access
Umożliwiają operację na bazie danych.
Komponenty na stronie Data Controls
Ułatwiają operacje na danych w bazie danych. Są tu takie elementy kontrolne jak: pola tekstowe, pola kombi, pola listy, grupa opcji i inne.
Komponenty na stronie Windows 3.1
Znajdują się tu komponenty występujące w wersji Delphi 1.0, wykorzystywane w Windows 3.1. W Windows 95 stosujemy ich odpowiedniki przystosowane do tego systemu (znajdują się one na stronie Windows 95).
Komponenty na stronie System
Wizualny Nazwa komponentu Zastosowanie
Nie
Timer Komponent wywołuje zdarzenie OnTimer w określonych przedziałach czasu.
Tak
PaintBox Oferuje prostokątny obszar, na którego kanwie (czyli na nim) możemy rysować, bez obawy wyjścia poza ten obszar.
Tak
FileListBox Wyświetla przewijaną listę plików znajdujących się w bieżącym katalogu.
Tak
DirectoryListBox Wyświetla listę katalogów bieżącego napędu. Zmiana katalogu na liście powoduje zmianę bieżącego katalogu.
Tak
DriveComboBox Wyświetla rozwijaną listę dostępnych napędów. Można tu zmienić bieżący napęd.
Tak
FilterComboBox Służy do tworzenia filtrów, ograniczających zbiór wyświetlanych plików.
Tak
MediaPlayer Wyświetla panel kontrolny do odtwarzania i nagrywania plików AVI, MID i WAV.
Tak

OLEContainer Tworzy obszar do łączenia i osadzania obiektów OLE
Nie
DDEClientConv Komponent do nawiązania połączenia DDE (obszar klienta)
Nie
DDEClientItem Komponent do nawiązania połączenia DDE (określa dane do wymiany r11; klienta)
Nie
DDEServerConv Komponent do nawiązania połączenia DDE (określa serwer)
Nie
DDEServerItem Komponent do nawiązania połączenia DDE (określa dane do wymiany r11; serwera).
Komponenty na stronie Dialogs
Wyświetlają okna dialogowe wspólne dla środowiska Windows. Zostaną omówione później.
Manipulowanie komponentami na formularzu.
r6; Właściwość Name
r6; Umieszczanie komponentów na formularzu
r6; Wycinanie, kopiowanie i wklejanie komponentów
r6; Grupowanie komponentów
r6; Wyrównywanie komponentów
Właściwość Name
Każdy element aplikacji (komponent) musi mieć unikalną nazwę. Nazwa komponentu musi spełniać te same zasady co identyfikatory w Pascalu.
Uwaga Po zmianie nazwy komponentu w Inspektorze obiektów, zmianie ulegnie również nazwa tego komponentu w Edytorze kodu. Ale nie odwrotnie! Po zmianie nazwy komponentu w edytorze kodu Delphi może mieć kłopoty z załadowaniem formularza.

Przykład: tworzenie formularza About.
ä Na początku rozpocznij nowy projekt.
ä Ustaw właściwości formularza:
r6; Name - ustaw AboutBox.
r6; Caption r11; ustaw About .
r6; BorderStyle r11; ustaw na bsDialog .To ustawienie usuwa z formularza przycisk Minimize i Maximize i sprawia, że nie będzie można zmienić rozmiarów formularza.
r6; Position r11; ustaw na poScreenCenter . Nasz formularz pojawi się na środku ekranu. To ustawienie nie jest widoczne w trybie projektu.
Dodawanie komponentów do formularza
n Aby dodać komponent do formularza:
1 Wybierz komponent na palecie a następnie kliknij na formularzu w miejscu, gdzie ma się on znaleźć.
ä Ze strony Additional wybierz komponent BitBtn i umieść go w dolnej środkowej linii formularza AboutBox.
Delphi dodaje komponent jako pole do definicji klasy formularza.
type
TAboutBox = class(TForm)
BitBtn1: TBitBtn; { ten kod dodaje Delphi )
end; { reszta kodu ominięta dla większej przejrzystości }
Podobnie r11; jeżeli komponent zostanie usunięty z formularza, deklaracja komponentu jest automatycznie usuwana z deklaracji klasy formularza.
Zmiana rozmiaru komponentu
n Tworzenie komponentu o wybranym rozmiarze:
1 Wybierz komponent na palecie komponentów.
2 Zaznacz myszką obszar na formularzu, który ma zająć komponent i puść klawisz myszki.
ä Dodaj komponent Image w dolnym lewym rogu formularza ustalając od razu jego rozmiar.
Wybieranie komponentów na formularzu
Można to zrobić na kilka sposobów
n Aby zaznaczyć pojedynczy komponent :
r6; Kliknij na komponent na formularzu.
r6; Wybierz go z Selektora obiektów znajdującego się na górze Inspektora obiektów.
r6; Mając zaznaczony dowolny inny element na formularza wciskaj odpowiednio długo klawisz Tab.
n Aby zaznaczyć grupę obiektów:
r6; Trzymając wciśnięty klawisz Shift klikaj na komponenty, które chcesz zaznaczyć.
r6; Zaznacz myszką obszar, w który znajdują się wybrane komponenty. .(Jeśli komponenty znajdują się wewnątrz komponentu Panel lub GroupBox najpierw wciśnij Ctrl)
n Aby zaznaczyć wszystkie komponenty na formularzu, wybierz Edit|Select All.
Zmiana rozmiaru komponentów
Kiedy komponent jest zaznaczony na formularzu, na jego brzegu znajdują się małe kwadraciki, zwane uchwytami rozmiaru.
n Aby zmienić rozmiar pojedynczego elementu, zaznacz go, a następnie uchwyć myszką uchwyty rozmiaru i przeciągnij do uzyskania satysfakcjonującego rozmiaru.
n Aby zmienić rozmiar kilku elementom (wyrównać ich wielkość):
1 Zaznacz wybrane komponenty, wybierz Edit|Size , a następnie wybraną opcję.
ä Dodaj komponent Panel , a następnie powiększ go tak, aby nie wypełniał większość formularza, ale nie zakrywał innych komponentów.
Dodanie wielokrotnych kopii komponentu
n Aby dodać kilkakrotnie ten sam komponent:
1 Podczas wybierania komponentu z palety trzymaj wciśnięty klawisz Shift
2 Aby odblokować wybór komponentu kliknij przycisk wskaźnika na Palecie komponentów.
ä Dodaj dwa komponenty Label w dolnej części formularza AboutBox, z prawej strony przycisku BitBtn.
Grupowanie komponentów
Oprócz formularza w Delphi jest kilka komponentów, które służą do grupowania innych w jedną całość. Takie komponenty noszą nazwę zbiorczych (container components ). Są nimi np. GroupBox, Panel, ScrollBox.
Kiedy umieszczamy komponent wewnątrz komponentu zbiorczego, tworzona jest w ten sposób relacja rodzic r11; potomek pomiędzy komponentem zbiorczym i jego elementami. Zmiany dokonywane na rodzicu takie jak kopiowanie, usuwanie czy przesuwanie odnoszą się również do jego potomków.
Uwaga Formularz jest właścicielem dla komponentów w nim zawartych.
Zazwyczaj najpierw dodajemy do formularza komponent zbiorczy np. Panel, a dopiero potem wybieramy z palety komponentów jego elementy, podobny sposób jak dodajemy je do formularza. Dodanie kilku elementów tego samego typu możemy sobie ułatwić przez wciśnięcie klawisza Shift (podobnie jak przy dodawaniu kilku komponentów tego samego typu do formularza). Jeżeli na formularzu już mamy komponent, który chcemy dodać do komponentu zbiorczego, to możemy to zrobić wycinając do, a następnie wklejając do komponentu zbiorczego.
äDodaj dwa komponenty typu Label do komponentu Panel component.
Wycinanie, kopiowanie i wklejanie komponentów
Podczas kopiowania są również kopiowane właściwości komponentu wraz z procedurami obsługi zdarzeń. Zmieniana jest jedynie nazwa komponentu, tak, aby każdy element na formularzu miał unikatową nazwę.
r6; Przy zaznaczaniu obiektów do kopiowania należy pamiętać, że mogą być zaznaczone tylko obiekty posiadające tego samego rodzica.
r6; Wklejane komponenty pojawią się obok kopiowanych komponentów
r6; Procedury obsługi zdarzeń kopiowanych obiektów nie są kopiowane, jedynie w kopiach obiektów jest umieszczane odwołanie do oryginalnych procedur
n Aby skopiować (wyciąć) obiekty wybierz Edit|Copy (Edit|Cut ).
n Aby wkleić obiekty zaznacz formularz lub komponent zbiorczy w którym chcesz umieścić kopiowane obiekty wybierz Edit|Paste .
ä Wytnij dwie etykiety (Label) znajdujące się na formularzu i wklej je do komponentu Panel. A następnie wytnij obiekt Image i wklej go w lewym górnym rogu Panelu.
Kasowanie i odtwarzanie komponentów
n Aby skasować komponent zaznacz go i wciśnij Del lub wybierz Edit|Delete.
n Aby odtworzyć komponent, który właśnie został skasowany wybierz Edit|Undelete. Uwaga: komponent można odtworzyć tylko natychmiast po skasowaniu, zanim zostaną wykonane inne operacje.
Wyrównywanie komponentów
n Aby wyrównać komponenty:
1 Zaznacz komponent (komponenty).
2 Wybierz View|Alignment Palette, a następnie kliknij na odpowiednią ikonę lub wybierz Edit|Align a następnie wybraną opcję. Możesz kontynuować wyrównywanie komponentów tak długo, jak długo są zaznaczone.
ä Wyrównaj do lewej dwie górne etykiety (Label). Zrób to samo dla dwóch dolnych etykiet
Wykorzystywanie siatki formularza do wyrównywania
Siatka formularza ułatwia wyrównywanie komponentów. Domyślnie siatka oraz opcja Snap To Grid (powodująca automatyczne wyrównywanie obiektów do najbliższego oczka siatki) są włączane.
Można też zmieniać odstęp pomiędzy oczkami siatki.
n Aby zmieniać ustawienia siatki formularza wybierz Tools|Options , a następnie stronę Preferences.
Blokowanie pozycji komponentów
Jeżeli już ustawimy komponenty możemy je zabezpieczyć przed przypadkowym przemieszczeniem.
n Aby zablokować pozycję komponentu wybierz Edit|Lock Controls .

Ustawianie właściwości komponentów.
r6; Wyświetlanie i ustawianie właściwości jednocześnie dla kilku komponentów
r6; Wykorzystanie edytora właściwości

ä Zmień właściwości komponentów na formularzu About zgodnie z tabelką:
Komponent Właściwość Wartość
Panel Name PanelTla
BevelOuter BvLowered
Caption <Blank>
Image Name IkonaProgramu
Label1 Name NazwaProduktu
Label2 Name Wersja
Label3 Name Copyright
Label4 Name Komentarz
AutoSize False
WordWrap True
BitBtn Name PrzyciskOK
Wyświetlanie i ustawianie właściwości jednocześnie dla kilku komponentów
n Aby wyświetlić i ustawić właściwości jednocześnie dla kilku komponentów
1 Zaznacz kilka komponentów. W Inspektorze obiektów zostaną wyświetlone ich wspólne właściwości, które można zmienić. Jeśli komponenty mają różne właściwości wyświetlana jest właściwość pierwszego zaznaczonego elementu. Właściwość Name nie jest wyświetlana.
ä Wypróbuj zaznaczanie kilku obiektów:
1 Zaznacz komponent BitBtn i Panel. Obejrzyj ich wspólne właściwości.
Wykorzystanie edytora właściwości
Aby wpisać nową wartość właściwości możemy ją wpisać, wybrać z listy lub skorzystać z edytora właściwości.
Dla niektórych właściwości dwukrotne kliknięcie w kolumnie Value otwiera okno dialogowe, ułatwiające zmianę wartości właściwości. Właściwości, dla których są takie okna są oznaczone w Inspektorze obiektów trzema kropkami (...). Dla niektórych komponentów dwukrotne kliknięcie na komponent na formularzu otwiera takie okno. Przykładem takiego komponentów jest Image.

n Aby umieścić obrazek na formularzu:
1 Dodaj komponent Image i dwukrotnie na nim kliknij.
2 W oknie dialogowym Picture Editor kliknij przycisk Load..
3 W oknie dialogowym Load Picture zaznacz opcję bitmapa (.BMP), ikona (.ICO), lub Windows
Metafile (.WMF).
4 Wybierz obraz, który chcesz wstawić i kliknij OK. lub powtórz poprzednie kroki by wybrać inny obraz.
ä Wstaw obraz z biblioteki Delphi (Image Library) do komponentu Image.
ä Zachowaj projekt.
Domyślna nazwa Zmień na:
UNIT1.PAS ABOUT.PAS
UNIT2.PAS MAINFORM.PAS
PROJECT1.DPR MYPROJ.DPR
Ustawianie właściwości w czasie uruchomienia aplikacji
Każdą właściwość można zmieniać nie tyko w czasie projektu, ale również w czasie uruchomienia aplikacji wykorzystując kod programu. Są również właściwości, które można ustawiać tylko za pomocą kodu (run-time-only ). Aby ustawić właściwość w kodzie musimy podać nazwę komponentu, nazwę odpowiedniej właściwości i podać nową wartość. Jeśli komponent ma ustawioną właściwość i w czasie projektu i w kodzie to aktualna jest ta ustawiona w kodzie.
Praca z kodem
Większość kodu pisanego w Delphi to procedury obsługi zdarzeń lub jest przez nie wykorzystywane. Najczęściej dwukrotnie klikamy przy odpowiedniemu zdarzeniu w oknie Inspektora obiektów, aby napisać procedurę obsługi tego zdarzenia. Możemy też pisać procedury i funkcje niezależne, które pełnią najczęściej rolę pomocniczą.
Generowanie procedury dla domyślnego zdarzenia
Dla większości komponentów jest określone zdarzenie domyślne. Dwukrotne kliknięcie na takim komponencie powoduje generowanie procedury obsługi takiego zdarzenia. Na przykład dwukrotne kliknięcie na przycisku (Button) powoduje generowanie procedury obsługi zdarzenia OnClick .
Praca z edytorem kodu
Kiedy otwierasz nowy projekt Delphi automatycznie generuje stronę w Edytorze kodu dla pierwsze****iku projektu. Z każdym razem. gdy dodajesz do projektu nowy moduł czy formularz Delphi dodaje kolejną stronę do Edytora kodu.
Oglądanie stron w Edytorze kodu
n Aby obejrzeć stronę w Edytorze kodu, wybierz jedną z następujących metod:
r6; Kliknij fiszkę z nazwą odpowiedniej strony.
r6; Wybierz View|Units (lub kliknij na przycisk View Unit) aby otworzyć okno dialogowe View Unit dialog i wybrać moduł, który chcesz oglądać.
n Aby wrócić do formularza wybierz jedną z następujących metod:
r6; Kliknij na dowolny fragment formularza widoczne spod Edytora kodu.
r6; Wybierz View|Form (lub kliknij na przycisk View Form) aby otworzyć okno dialogowe View Form i wybierz formularz. który chcesz oglądać.
Wyszukiwanie istniejącej procedury obsługi zdarzenia
n Aby wyszukać istniejącą procedurę obsługi zdarzenia w Edytorze kodu:
1 W formularzu zaznacz komponent, którego procedury poszukujesz.
2 W Inspektorze obiektów dwukrotnie kliknij obok zdarzenia, które obsługuje poszukiwana procedura.
n Aby wyszukać istniejącą procedurę obsługi domyślnego zdarzenia danego komponentu dwukrotnie kliknij ten komponent na formularzu.
Powiązanie zdarzenia z istniejącą procedurą obsługi zdarzeń
Jedną procedurę obsługi zdarzenia można powiązać z kilkoma zdarzeniami. Na przykład jedna procedura może być powiązana z odpowiednią pozycją w menu i z odpowiednim przyciskiem na pasku narzędzi.
Wykorzystanie parametru Sender
Parametr Sender informuje Delhi, który komponent otrzymał zdarzenie i wywołał procedurę. Można napisać procedurę obsługi zdarzeń połączoną z kilkoma komponentami wykorzystując ten parametr do identyfikacji komponentu, który otrzymał zdarzenie.
ä Procedura obsługująca zdarzenie OnClick dla przycisku Kolory:
procedure TMainForm1.KoloryClick(Sender: TObject);
begin
if Sender = Kolory then
Edit1.Text := 'Wybrałeś kolory '
else Edit1.Text := 'Inny przycisk';
end;
n Aby połączyć nowy komponent z istniejącą procedurą obsługi zdarzeń:
1 W Inspektorze obiektów przejdź do odpowiedniego zdarzenia komponentu, dla którego chcesz dodać procedurę.
2 Wybierz z listy odpowiednią procedurę. Lista wyświetla procedury, które mogą być połączone z danym zdarzeniem
ä Połącz zdarzenie OnClick przycisku Button2 z procedurą Button1Click. Zauważ, że Delphi nie duplikuje procedury a jedynie umieszcza jej wywołanie.
ä Uruchom program i kliknij Button1. Nazwa aplikacji pojawia się w nagłówku okna. Zamknij okno dialogowe i kliknij Button2 . W nagłówku okna nie ma nazwy aplikacji.
Wyświetlanie i kodowanie procedur dla kilku zaznaczonych komponentów
n Aby powiązać zdarzenie kilku komponentów z istniejącą procedurą obsługi zdarzenia:
1 Zaznacz odpowiednie komponenty i w Inspektorze obiektów wyświetl stronę Events.
2 Wybierz z rozwijanej listy przy właściwym zdarzeniu właściwą procedurę.
n Aby stworzyć procedurę obsługi zdarzenia dla kilku komponentów:
1 Zaznacz odpowiednie komponenty i w Inspektorze obiektów wyświetl stronę Events.
2 Wpisz nazwę nowej procedury i wciśnij Enter lub dwukrotnie kliknij, aby Delphi sam utworzył nazwy dla procedur.
3 Wpisz odpowiedni kod w bloku begin..end procedury.
ä Aby zobaczyć powyższe w przykładzie:
1 Dodaj komponent do formularza MainForm.
2 Zaznacz Button1 i wyświetl stronę Events w Inspektorze obiektów.
3 Zaznacz dodatkowo (tak, aby dwa komponenty były zaznaczone).
4 Przy zdarzeniu OnClick wybierz z listy procedurę Button1Click.
ä Uruchom program i kliknij SpeedButton. Powinno się ukazać okno dialogowe About.
Modyfikowanie procedur obsługi zdarzeń kilku zaznaczonych komponentów
Jeśli zaznaczymy klika komponentów i przejdziemy do procedury obsługi dowolnego zdarzenia to modyfikowanie jest takie jak w przypadku jednego zdarzenia. Należy jednak pamiętać, że zmieniając procedurę modyfikujemy ją dla wszystkich zdarzeń komponentów, które ją wywołują (także te, które nie zostały zaznaczone).
n Aby zmodyfikować procedurę obsługi zdarzenia dla kilku zaznaczonych komponentów:
1 Zaznacz odpowiednie komponenty i w Inspektorze obiektów wyświetl stronę Events.
2 W Edytorze kodu zmień procedurę obsługi zdarzenia
ä Zmodyfikuj procedurę obsługi zdarzenia OnClick dla Button1 poprzez dodanie następującej linii przed wywołaniem metody ShowModal , gdzie <path> jest ścieżką do katalogu \BIN Delphi:
AboutBox.ProgramIcon.Picture.LoadFromFile('<path>\TDW.ICO'Wink;
ä Uruchom program i kliknij na dowolny przycisk. Pojawi się okno dialogowe About ze zmienioną ikoną w komponencie Image.
Można się zabezpieczyć przed zmianą okna dialogowego About w aplikacjach wywołujących te okno.
Usuwanie procedury obsługi zdarzenia
Kiedy usuwasz komponent Delphi usuwa jego deklarację w definicji typu klasy formularza. Ale nie usuwa związanych z tym komponentem metod. Dzieje się tak, bo te metody mogą być powiązane z innymi komponentami.
n Aby ręcznie usunąć procedurę obsługi zdarzenia usuń kod procedury i jej deklarację.
n Aby pozwolić Delphi na usunięcie procedury usuń wszystkie instrukcje z ciała procedury (także komentarze). Podczas kompilowania lub uruchamiania projektu cała procedura zostanie usunięta.

Opis podstawowych komponentów i ich właściwości
Zostaną tu przedstawione najważniejsze właściwości.
Właściwości wspólne dla wielu komponentów
Caption
Nagłówek. Jest to tekst opisujący dany komponent. Dla formularza jest to tekst pojawiający się na pasku tytułu formularza. Właściwość Caption etykiety określa jej zawartość.
Label1.Caption:=r17;Pierwszy poziomr17;;
Font
Czcionka. Kontroluje atrybuty tekstu pojawiającego się na komponencie. Po dwukrotnym kliknięciu obok tej właściwości pojawi się typowe okno dialogowe, w którym będziemy mogli zmienić czcionkę. W kodzie programu oddzielnie zmieniamy właściwości Color, Name, Size i Style obiektu Font.
Label1.Font.Name:=r17;Times New Romanr17;;
Color
Kolor. Określa tło formularza lub kolor komponentów.
Edit1.Color:=clRed;
Enabled
Dostępny. Właściwość ta określa, czy obiekt ten jest dostępny, np. czy można kliknąć na przycisk. Ustawienie właściwości na True, powoduje, że obiekt jest dostępny, ustawienie na False sprawia, że obiekt jest niedostępny. Jest wówczas wyświetlany na szaro.
Visible
Widoczny. Właściwość ta określa. czy komponent jest widoczny czy nie (True r11; komponent jest widoczny, False r11; komponent jest niewidoczny).
Edit1.Visible:=False; // Pole tekstowe będzie niewidoczne
Hint, ShowHint
Wskazówka. Pojawia się, gdy użytkownik najedzie kursorem myszki nad komponent. Do właściwości Hint wpisujemy tekst, który powinien się wtedy pojawić. Aby wskazówka się pojawiała należy jeszcze ustawić właściwość ShowHint na True.
Height, Width, Top, Left
Wysokość, szerokość, od góry, od lewej. Określają rozmiar i położenie komponentu w pikselach. Położenie jest określane jako odległość lewego górnego rogu komponentu odpowiednie od góry i od lewego brzegu komponentu, który je zawiera (najczęściej jest to formularza).
Zazwyczaj modyfikujemy te właściwość za pomocą myszki, ale możemy też to zrobić w kodzie programu.
ListBox1.Height := ListBox1.Height * 2; // powiększa dwukrotnie dotychczasową wysokość pola listy
Button1.Width := Button1.Width * 2; // powiększa dwukrotnie dotychczasową szerokość przycisku
Button1.Top := Button1.Top - 10; // przesuwa przycisk o dziesięć pikseli do góry
Button1.Left := Button1.Left + 10; // przesuwa przycisk o dziesięć pikseli w prawo.
Opis wybranych komponentów
Label
Etykieta. Wyświetla tekst, który użytkownik nie może zmieniać. Tekst wyświetlany w etykiecie określa właściwość Caption . Wyrównanie tekstu wewnątrz etykiety (do lewej, do prawej, wyśrodkowany) określa właściwość Alignment. Etykieta może się dokładnie dopasować do wyświetlanego w niej tekstu, jeśli ustawimy AutoSize na True. Zamiast tego możemy uzyskać efekt zawijania tekstu poprzez ustawienie WordWrap na True.
Jeśli etykieta jest umieszczona na jakimś elemencie graficznym, to przydatne może być określenie jej tła jako przezroczystego poprzez zmianę wartości Transparent na True.
Edit
Pole tekstowe. Wyświetla obszar, w którym użytkownik może zmodyfikować lub wprowadzić pojedynczą linię tekstu. Aby ograniczyć ilość znaków, które użytkownik może wprowadzić, określ właściwość MaxLength. Aby Jeśli chcemy, aby użytkownik nie mógł zmienić wyświetlanego tekstu, ustawiamy właściwość ReadOnly na True. Jeśli pole ma służyć do wprowadzania hasła wpisz do właściwości PasswordChar znak, który ma być wyświetlany zamiast liter hasła (najczęściej *).
Wyświetlanie i wczytywanie danych za pomocą pola tekstowego
Najważniejszą właściwością pola tekstowego jest Text. Zawiera ona tekst, który jest wyświetlany lub wprowadzany przez użytkownika.

n Aby wyświetlić tekst w polu tekstowym zmień wartość właściwości Text.
Edit1.Text:=r17;Nowy tekstr17;;

n Aby odczytać tekst wprowadzony przez użytkownika sprawdź wartość właściwości Text:
if Eidt1.Text=r17;Usersr17;
then Edit2.Text:=r17;Masz uprawnienia użytkownikar17;;

Ponieważ właściwość ta jest typu String, więc jeśli chcemy wyświetlać lub wprowadzać dane innego typu, musimy je przekonwertować. Służą do tego min. funkcje
r6; StrToInt r11; zamienia tekst na liczbę całkowitą
r6; IntToStr r11; zamienia liczbę całkowitą na tekst
r6; StrToFloat- zamienia tekst na liczbę rzeczywistą
r6; FloatToStr r11; zamienia liczbę rzeczywistą na tekst
a:=StrToInt(Edit1.Text); // wczytujemy do zmiennej całkowitej a zawartość pola tekstowego Edit1
Edit2.Text:=FloatToStr(b+r17; kgr17Wink; // wypisuje w polu tekstowym Edit2 wartość zmiennej rzeczywistej b z dodatkiem
r16;kgr17; na końcu
TButton
Przycisk. Używany do zainicjowania określonej akcji. Obsługując zdarzenie OnClick decydujemy o tym, jaka jest to akcja.
TCheckBox
Przycisk wyboru. Używamy go, gdy oferujemy użytkownikowi wybór Tak/Nie. Przyciski wyboru można grupować umieszczając je na komponencie Panel, GroupBox lub ScrollBox. Użytkownik może wtedy zaznaczyć dowolną ilość przycisków w grupie.
Tekst opisujący przycisk wyboru jest zawarty we właściwości Caption. Jeśli przycisk jest zaznaczony, to wartością właściwości Checked jest True, w przeciwnym wypadku False. Zmiana wartości przycisku przez użytkownika generuje zdarzenie OnClick.

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
Label1.Text:='Znasz język angielski'
else
Label1.Text:='Nie znasz języka angielskiego'
end;
TRadioButton
Przycisk opcji. Komponent podobny do komponentu przycisku wyboru. Różnica polega na tym, że jeśli zgromadzimy kilka przycisków opcji na komponencie zbiorczym (formularz, panel, GroupBox) to w danym momencie tylko jeden przycisk może być zaznaczony.
Tak samo jak w przypadku TCheckBox tekst opisujący przycisk opcji jest zawarty we właściwości Caption. Jeśli przycisk jest zaznaczony, to wartością właściwości Checked jest True, w przeciwnym wypadku False. Zmiana wartości przycisku przez użytkownika generuje zdarzenie OnClick.
Dostosowywanie biblioteki komponentów.
r6; Dostosowywanie biblioteki komponentów
Delphi umożliwia samodzielne tworzenie komponentów, a następnie umieszczanie ich na palecie komponentów. Można również poszukać w Internecie potrzebnych nam komponentów.
Do zmian w bibliotece komponentów (a tym samym na palecie) służy okno dialogowe Install Components. Można również przygotować kilka różnych plików bibliotek (.) komponentów i do budowania danej aplikacji wykorzystać jeden z nich.
Uwaga Dostosowywanie Palety komponentów poprzez używanie strony Palette okna dialogowego Tools|Options nie wpływa na zawartość biblioteki .VCL.
Kiedy modyfikujesz bibliotekę pamiętaj o kilku zasadach:
r6; Możesz pracować z projektem tylko wtedy, gdy bieżąca biblioteka zawiera wszystkie komponenty używane w projekcie
r6; Delphi zachowuje ostatnią wersję biblioteki komponentów w pliku o tej samej nazwie i rozszerzeniu .BAK. Dzięki temu zawsze możesz wrócić do poprzedniej wersji biblioteki. Jeśli chcesz mieć więcej wersji bibliotek, każdą z nich zachowaj w pliku o innej nazwie
r6; Unikaj używania tej samej nazwy biblioteki co nazwa projektu.
Dodawanie i usuwanie komponentów z biblioteki
Możesz dodawać (usuwać) komponenty z biblioteki poprzez dodawanie (usuwanie) pliku modułu połączonego z komponentem (komponentami).
n Aby dodać komponenty do biblioteki komponentów:
1 Wybierz Component|Install.
2 Katalog w którym znajduje się moduł, musi być w ścieżce dostępu zapisanej w oknie dialogowym instalatora. Jeśli to potrzebne dodaj ścieżkę do pliku komponentu lub od razu wybierz Add aby otworzyć okno dialogowe Add Module..
3 W oknie dialogowym Add Module wpisz nazwę modułu, który chcesz dodać lub wybierz Browse aby podać ścieżkę dostępu (uwaga, przy wyszukiwaniu modułu zwróć uwagę, że komponenty mogą być w postaci pliku .PAS lub w postaci skompilowanego modułu o rozszerzeniu .DCU).
4 Kliknij OK. aby zamknąć okno dialogowe Add Module.
Nazwa komponentu, który wybrałeś pojawi się na dole listy Installed Units. Na liście są wyświetlane już zainstalowane w bibliotece moduły wraz z nazwami klas. Nowo instalowany moduł jest na dole listy i nie ma nazwy klasy.
5 Wybierz OK., aby zamknąć okno dialogowe Install Components i przebudować bibliotekę. Następnie nowo zainstalowane komponenty są wyświetlane na Palecie komponentów.
Uwaga Nowo zainstalowany komponent pojawi się na stronie przewidzianej przez twórcę komponentów. Można to zmienić.
n Aby usunąć komponent z biblioteki komponentów:
1 Wybierz Component|Install aby otworzyć okno dialogowe Install Components.
2 Na liście Installed Units wybierz moduł, który chcesz usunąć.
3 Wybierz Remove ,aby usunąć moduł z listy.
4 Wybierz OK aby zamknąć okno dialogowe Install Components. Biblioteka zostanie przebudowana. Usunięte komponenty nie będą już widoczne na Palecie komponentów.
Obsługa kompilacji, która nie zakończyła się sukcesem
Zanim biblioteka zostanie przebudowana, Delphi sprawdza, czy wszystkie moduły dodane do biblioteki mogą się poprawnie kompilować. Tylko w przypadku pomyślnej kompilacji nowe komponenty zostaną umieszczone na Palecie komponentów. Jeśli w czasie kompilacji wystąpi błąd jest wyświetlane okno Edytora kodu, tak, aby błąd mógł zostać poprawiony. Czasem źródłem błędów jest brak katalogu na ścieżce path. Delphi pozostawia Unit list nie zmieniony, tak że można ponowić próbę kompilacji w późniejszym terminie. Można również wybrać polecenie Revert, które odtworzy poprzednią wersję biblioteki.
Po naprawieniu błędów trzeba ponownie uruchomić Instalatora, aby przebudować bibliotekę
Zachowywanie kodu źródłowego biblioteki
Po wykonaniu zmian w bibliotece, możesz zachować kod źródłowy biblioteki w pliku projektu biblioteki (.DPR).
n Aby zachować kod źródłowy biblioteki:
1 Wybierz Tools|Options, a następnie kliknij stronę Library.
2 Wybierz Save Library Source Code . Blok uses te****iku źródłowego biblioteki zawiera listę wszystkich modułów (.DCU), które zostały wykorzystane do zbudowania biblioteki.
Korzystanie z dostosowanych bibliotek
n Aby stworzyć nowy plik biblioteki:
1 Wybierz Component|Install.
2 Wpisz pełną ścieżkę i nawę nowe****iku biblioteki w polu Library Filename.
3 Wybierz OK aby stworzyć i skompilować nowy plik biblioteki. Możesz teraz zainstalować tę dostosowaną bibliotekę kiedy tylko zechcesz lub ustawić ją jako bibliotekę domyślną.
n Aby zastąpić bieżącą bibliotekę inną:
1 Wybierz Component|Open Library.
2 Wybierz plik biblioteki. który chcesz zainstalować i wybierz OK. Delphi zastąpi bieżącą bibliotekę wybraną i umieści komponenty z nowej biblioteki na Palecie komponentów.

Programowanie obiektowe w Delphi
Obiekty w Delphi.
r6; Obiekt formularz
r6; Komponent jako obiekt
Co to jest obiekt?
Obiekt jest typem danych, który łączy dane i procedury w jedną całość.
Obiekty, podobnie jak rekordy, zawierają pola, które przechowują dane i które mają określony typ. W przeciwieństwie do rekordów, obiekty mogą zawierać procedury i funkcje, które operują na polach obiektów. Te procedury i funkcje są nazywane metodami. W przeciwieństwie do rekordów, obiekty mogą też zawierać właściwości (properties). Właściwości obiektów Delphi zawierają domyślne wartości. Można je zmieniać albo w trybie projektu lub w kodzie programu.
Badanie obiektu Delphi
Po utworzeniu nowego projektu, Delphi wyświetla nowy formularz. W oknie Edytora kodu, Delphi deklaruje nowy obiekt formularz i tworzy kod tworzący ten obiekt. (Później zostanie wyjaśnione, dlaczego dla każdego nowego formularza jest deklarowany nowy typ obiektu.)
unit Unit1;
interface
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Apps;
type
TForm1 = class(TForm) { Tu rozpoczyna się deklaracja typu }
private
{ Private declarations }
public
{ Public declarations }
end; { A tu kończy deklaracja typu }
var
Form1: TForm1;
implementation { Początek części implementacyjnej }
{$R *.DFM}
end. { Koniec części inicjacyjnej i koniec modułu}
Nowy typ obiektu to TForm1, dziedziczy on po typie TForm, który również jest obiektem. Na początku typ TForm1 nie zwiera żadnych pól ani metod, ponieważ nie dodaliśmy jeszcze do formularza komponentów.
Jest też zadeklarowana zmienna Form1 nowego typu obiektowego:
var Form1: TForm1;
Form1 jest nazywana instancją (instance) typu TForm1. Zmienna Form1 odpowiada formularzowi, do którego dodajesz komponenty i projektujesz jego wygląd. Można zadeklarować kilka instancji typu obiektowego. Jest to potrzebne na przykład wtedy, gdy tworzysz aplikację wielodokumentową (MDI np. w Wordzie można otworzyć wiele okien, w których edytujemy dokumenty) i potrzebujesz wielu okien potomnych. Każda instancja może zawierać różne dane.
Nawet jeśli nie dodasz żadnego komponentu, możesz uruchomić aplikację. Wyświetli ona pusty formularz, ponieważ typ formularza nie zwiera żadnych pól, ani żadnej metody.
Dodajmy do formularza przycisk i procedurę obsługi OnClick , która zmienia kolor formularza na zielony:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Color := clGreen;
end;
Deklaracja typu obiektu formularza ulegnie zmianie:
unit Unit1;
interface
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Apps;
type
TForm1 = class(TForm)
Button1: TButton; { Nowe pole }
procedure Button1Click(Sender: TObject); { Deklaracja nowej metody }
private
{ Private declarations }
public
{Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); { Kod nowej metody }
begin
Form1.Color := clGreen;
end;
end.
Obiekt TForm1 ma teraz nowe pole: Button1 (przycisk, który został dodany). Typ TButton jest typem obiektowym, więc Button1 także jest obiektem. Typy obiektowe, takie jak TForm1, mogą zawierać inne obiekty (tu: Button1) jako pola. Za każdym razem, gdy dodajesz do formularza nowy komponent, nazwa komponentu pojawia się w deklaracji typu obiektu. Wszystkie procedury obsługi zdarzeń są metodami w obiekcie formularza. Typ TForm1 zawiera nową metodę r11; Button1Click, zadeklarowaną w deklaracji typu TForm1. Definicja tej metody (kod) znajduje się w części implementation modułu.
Zmiana nazwy komponentu
Zwykle do zmiany nazwy komponentu używany Inspektora obiektów. Jeśli z jego pomocą zmienimy nazwę komponentu, to zmiana nazwy zostanie automatycznie uaktualniona w kodzie programu. Na przykład, jeśli zmienimy nazwę formularza na ColorBox zmieniony kod będzie wyglądał tak:
unit Unit1;
interface
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Apps;
type
TColorBox = class(TForm) { Zmiana nazwy formularza z TForm1 na TColorBox }
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ColorBox: TColorBox; { Zmiana z Form1 na ColorBox }
implementation
{$R *.DFM}
procedure TColorBox.Button1Click(Sender: TObject);
begin
Form1.Color := clGreen; { Odwołanie do Form1 nie uległo zmianie! }
end;
end.
Zauważ, że uaktualnieniu uległa zmiana nazwy typu formularza (na TColorBox ), a także nazwa zmiennej formularza (na ColorBox). Delphi jednak uaktualnia tylko te fragmenty programu, które sam wygenerował. Ponieważ instrukcje pomiędzy begin i end zostały przez nas napisane (a nie przez Delphi), więc odwołanie formularza Form1 pozostało niezmienione. Sami musimy zmienić tę nazwę:
procedure TColorBox.Button1Click(Sender: TObject);
begin
ColorBox.Color := clGreen;
end;
Nazwy komponentów najlepiej jest zmieniać za pomocą Inspektora obiektów.

äPrzećwicz to jeszcze raz
1 Ustaw tak Form1 i Unit1 na ekranie, aby oba okna były widoczne.
2 Znajdź w oknie edytora kodu opis klasy Form1.
3 Dodaj przycisk do formularza i zauważ, co dzieje się z deklaracją klasy Form1. Jeśli usuniesz przycisk z formularza, deklaracja tego komponentu zniknie z deklaracji Form1.
4 Dodaj przycisk jeszcze raz. Zmień jego dowolną właściwość i sprawdź, czy ta zmiana jest widoczna w deklaracji klasy Form1.
Uwaga W przypadku zmiany właściwości komponentów, nie jest generowany żaden kod, ponieważ ustawienia tych właściwości są przechowywane w pliku DFM file.(Widać jedynie zmiany właściwości Name).

Dziedziczenie danych i kodu w obiekcie.
r6; dziedziczenie danych i kodu w obiekcie
Typ formularza opisany poprzednio jest bardzo prosty. Zawiera tylko jedno pole (przycisk) i jedną metodę (Button1Click), i żadnych właściwości. Możesz jednak zmieniać rozmiar formularza, dodawać, usuwać, zmieniać rozmiary przycisków itd. Jak jest możliwe dokonanie tego wszystkiego z formularzem, który zawiera tylko jedno pole i jedną metodę?
Odpowiedź leży w zjawisku dziedziczenia. Wyobraźmy sobie, że mamy robiekt rowerr1;. Możemy nim jeździć, bo ma pedały, koła, kierownicę i siodełko. Podobnie, kiedy dodajesz nowy formularz do projektu, ma on wszystkie właściwości dowolnego formularza. Na przykład, ma miejsce na umieszczenie w nim komponentów, ma metody do jego otwierania, zamykania i chowania itd. Przypuśćmy, że pragniesz udoskonalić swój rower: dokupujesz światła, błotniki, bagażnik, fotelik dla dziecka itp. Podobnie możesz przystawać do swoich potrzeb formularz: dodać kilka komponentów, dopisać parę metod.
Udoskonalając swój rower nie zaczynasz od zera, a od podstawowego modelu roweru. Podobnie z formularzem Delphi r11; nie zaczynasz od zera, tylko od podstawowego modelu formularza Delphi.
Dostosowując dowolny obiekt (formularz, nową wersję komponentu czy okna dialogowego), rozpoczynasz od stworzenia obiektu, który będzie dziedziczył po istniejącym obiekcie. Delphi automatycznie tworząc nowy typ formularza (obiekt) , określa go jako obiekt potomny po TForm . Na początku ten nowy formularz jest identyczny z typem. Po dodaniu do niego komponentu, zmianie właściwości, czy utworzeniu procedur obsługi zdarzeń, nie są już to typy identyczne. Ale, podobnie jak w przypadku udoskonalonego roweru, formularz potrafi to wszystko, co potrafi typ TForm. Dzieje się tak, ponieważ nowy obiekt formularz dziedziczy wszystkie pola, metody, właściwości i zdarzenia po typie TForm.
Kiedy dodajesz nowy formularz do projektu, Delhi tworzy nowy typ obiektu TForm1, określając go jako potomka typu TForm . Określa to pierwsza linia deklaracji typu TForm1.
TForm1 = class(TForm)
Ponieważ TForm1 dziedziczy po TForm, wszystkie elementy należące do typu TForm , stają się częścią typu TForm1 . Jeśli zajrzysz do podręcznej pomocy (kliknij na formularz i wciśnij F1) zobaczysz listę wszystkich właściwości, metod i zdarzeń w typie TForm . Możesz je wykorzystywać w typie TForm1 . Tylko te elementy, które dodasz sam do formularza (rulepszeniar1Wink są widoczne w deklaracji typu TForm1 .
Bardziej ogólny typ obiektu (bazowy) jest nazywany obiektem rodzicem, obiekt dziedziczący jest nazywany potomkiem. Obiekty mogą mieć tylko jednego bezpośredniego rodzica i dowolną ilość potomków. Na przykład typ TForm jest rodzicem typu TForm1, a typ TForm1 jest potomkiem typu TForm . Wszystkie formularze są potomkami typu TForm i może ich być wiele.
Obiekty, komponenty i kontrolki
Kiedy zajrzysz do pomocy, zauważysz, że TForm jest nazywany komponentem. Wszystkie komponenty są także obiektami. Na diagramie jest przedstawiona podstawowa hierarchia komponentów z Delphi Visual Component Library.

Wszystko elementy tej hierarchii to obiekty. Komponenty, które dziedziczą dane i kod z typu TObject , są obiektami z dodatkowymi właściwościami, metodami i zdarzeniami, które pozwalają na zapisywanie ich stanu w pliku. Kontrolki (Controls), które dziedziczą po typie TComponent (a tym samym dziedziczą pola i metody również z typu TObject , posiadają dodatkowe własności, takie jak możliwość wyświetlania pewnych elementów.
Nawet jeśli np. TCheckBox nie dziedziczą bezpośrednio po typie TObject, to zachowują wszystkie jego atrybuty, ponieważ dziedziczą po tym typie pośrednio. Mają więc elementy pochodzący z klas: TObject, TComponent, i TControl, a także swoje własne indywidualne cechy.

Zasięg obiektu.
r6; Zasięg obiektu
Zasięg obiektu determinuje możliwość dostępu do pól, właściwości i metod tego obiektu. Wracając do analogii z rowerem, jeżeli dodamy światła do naszego, dostosowanego roweru, tylko ten rower ma światła, ale gdy dodamy światła do modelu podstawowego, światła będą miały wszystkie rowery.
Wszystkie elementy umieszczone w obiekcie, będą dostępne dla tego obiektu oraz dla jego potomków. Kod metod tworzymy poza obiektem ( w części implementacyjnej), o ich przynależności do obiektu decyduje ich deklaracja w typie obiektu. Mogą więc one odwoływać się do właściwości tego obiektu, metod i pól i nie musimy poprzedzać tych odwołań nazwą obiektu. Na przykład, jeżeli umieściłeś na nowym formularzu przycisk i pole tekstowe, możesz napisać taką procedurę obsługi zdarzenia OnClick:
procedure TForm1.Button1Click(Sender: TObject);
begin
Color := clFuchsia;
Edit1.Color := clLime;
end;
Pierwsza instrukcje zmienia kolor formularza. Mógłbyś napisać ją tak:
Form1.Color := clFuchsia
Nie jest jednak konieczne podawanie nazwy obiektu formularza Form1, ponieważ ta procedura należy do tego obiektu, podobnie jak właściwość Color .
Druga instrukcja odwołuje się do właściwości Color obiektu TEdit . W tym wypadku należy podać kwalifikator TEdit1 , ponieważ jeśli go nie będzie zostanie zmieniony kolor formularza, a nie pola tekstowego.
Nie trzeba jednak przed Edit1 podawać nazwy obiektu, do którego to pole należy (Form1), ponieważ procedura też należy do tego obiektu.
Odwołanie do komponentu z innego formularza
Jeśli Edit1 znajdowałby się na innym formularzu, musielibyśmy poprzedzić nazwę pola tekstowego, nazwą jego obiektu formularza. Jeśli np. Edit1 znajdowałby się na formularzu Form2, zmianę jego koloru zapiszemy tak:
Form2.Edit1.Color := clLime;
W ten sam sposób możemy wywołać metodę komponentu, znajdującego się na innym formularzu, np.:
Form2.Edit1.Clear;
Aby móc się odwoływać do właściwości, metod i zdarzeń znajdujących się na innym formularzu, musisz zadeklarować użycie modułu, w którym znajduje się ten formularz (np. Unit2 )
Zasięg i dziedziczenie obiektów
Zasięg obiektu rozciąga się na wszystkie obiekty potomne. Na przykład w obiekcie TForm1, który dziedziczy po TForm, możemy odwoływać się do pól, właściwości metod i zdarzeń obiektu TForm . Jeśli jest wyświetlany komunikat o powtórzeniu identyfikatora, możliwe jest, że nadana została nazwa pola, która już występuje w obiektach, będących przodkami deklarowanego właśnie obiektu.
Można jednak użyć nazwy metody, która już istnieje w obiektach bazowych. Postępuje się tak w przypadku, gdy metoda ma wykonywać to samo, co metoda w klasie przodku, ale wykonuje to w inny sposób. Zwykle nie ma potrzeby redefinicji metod, chyba że jest tworzony nowy komponent.

Deklarowanie pól i metod w obiekcie
Jeśli potrzebna jest zmienna, w której będą przechowywane dane wykorzystywane przez metody, to najlepszym miejscem dla niej będzie część prywatna klasy formularza. Obiekt bowiem powinien łączyć w całość metody i potrzebne im dane.
Metody odwołujące się do tego pola nie muszą stosować żadnych kwalifikatorów np.
NazwaPliku:=r17;dane.txtr17;;
Odwołując się z innego formularza, musimy podać nazwę formularza, w którym jest zadeklarowane to pole np.:
Form1.NazwaPliku:=r17;nowa.txtr17;;
Oczywiście zmienne pomocnicze, potrzebne w metodzie jak np. zmienna sterująca w pętli, powinny być deklarowane jako zmienne lokalne.

Procedury i funkcje nie będące procedurami obsługi zdarzeń, które powinny mieć dostęp do pól i metod formularza najlepiej jest zadeklarować jako metody w klasie formularza. Można je wykorzystać np. do uproszczenia procedur obsługi zdarzeń.
Nagłówki metod umieszczamy w definicji klasy formularza np.
type TForm1 = class
.....
procedure WyswietlPola;
end;
Definiujemy metodę w części implementation modułu, przed nazwą metody umieszczamy nazwę klasy formularza i oddzielamy ją kropką.
implementation
..........
procedure TForm1.WyswietlPola;
begin
Edit1.Visible:=True;
end;

Najpierw deklarujemy pola, potem metody.
Publiczne i prywatne deklaracje.
r6; Publiczne i prywatne deklaracje
Kiedy jest tworzona nowa aplikacja, dodajemy pola i metody do potomka klasy TForm. Można także dodawać pola i metody nie tylko dodając komponenty w trybie projektu, ale też bezpośrednio modyfikując typ obiektu formularza.
Nowe pola i metody można dodawać albo w części publicznej obiektu (public ), albo w części prywatnej (private). Każdy nowy formularz ma już zapisane te dyrektywy:
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
Używaj części publicznej (public) do
r6; Deklarowania pól, do których metody z innych modułów powinny mieć dostęp
r6; Deklarowania metod, które powinny być wywoływane w innych modułach
Deklaracje w części prywatnej (private) powodują, że obiekty te są niedostępne w innych modułach. Użyj części prywatnej do
r6; Deklarowania pol. do których dostęp powinny mieć tylko metody zadeklarowane w tym samym module
r6; Deklarowania metod, które mogą być wywołane tylko w bieżącym module


Na przykład:
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Number: Integer;
function Calculate(X, Y: Integer): Integer;
public
{ Public declarations }
procedure ChangeColor;
Edytowane przez krecik324 dnia 17-03-2008 20:44
Zapraszam na:
http://www.net-ha...
[img]http://net-hack.pl/banner.jpg[/img] is not a valid Image.
 
cze123
To jest kurs mi chodziło o stronkę
 
krecik324
.......polecić mi jakiś bardzo fajny dobrze opisany kurs np. z którego wy korzystaliście ........ a gdzie to piszę GrinGrinwłaściwie jest ciekawy xDD
Zapraszam na:
http://www.net-ha...
[img]http://net-hack.pl/banner.jpg[/img] is not a valid Image.
 
Przejdź do forum: