Spis treúci

Transkrypt

Spis treúci
Spis treúci
WstÍp ............................................................................................................................................7
1.
årodowisko programistyczne.............................................................................................8
1.1. Komponenty................................................................................................................9
1.2. Formatki ....................................................................................................................10
1.3. Object Inspector ........................................................................................................10
1.4. Edytor kodu...............................................................................................................13
2.
Typy plikÛw uøywanych w Delphi ..................................................................................15
3.
Elementy Pascala..............................................................................................................16
3.1. Komentarze ...............................................................................................................16
3.2. Wybrane typy............................................................................................................16
3.3. Zmienne ....................................................................................................................18
3.4. Sta≥e...........................................................................................................................19
3.5. Instrukcje warunkowe if...then / if...then...else .........................................................20
3.6. Instrukcja wiπøπca with...do......................................................................................21
3.7. PÍtle for...to/downto...do, while...do, repeatÖuntil..................................................22
3.8. Mechanizmy obs≥ugi wyjπtku ...................................................................................23
3.9. Opis wybranych zdarzeÒ ...........................................................................................24
3.10. Nazwa aplikacji (programu)......................................................................................26
3.11. Lista wybranych zmiennych globalnych...................................................................27
3.12. Operatory logiczne i relacji.......................................................................................28
4.
Pierwszy program .............................................................................................................31
5.
∆wiczenia z rozwiπzaniami..............................................................................................34
∆wiczenie 5.1. ComboBox ................................................................................................34
∆wiczenie 5.2. Edit, BitBtn................................................................................................37
∆wiczenie 5.3. Label..........................................................................................................38
∆wiczenie 5.4. Komponent ListBox ..................................................................................40
∆wiczenie 5.5. CheckListBox............................................................................................52
∆wiczenie 5.6. Memo ........................................................................................................53
∆wiczenie 5.7. Image.........................................................................................................55
∆wiczenie 5.8. ScrollBox...................................................................................................56
∆wiczenie 5.9. ProgressBar ...............................................................................................57
∆wiczenie 5.10. StatusBar .................................................................................................57
∆wiczenie 5.11. Timer .......................................................................................................58
∆wiczenie 5.12. RadioButton, GroupBox i CheckBox......................................................59
∆wiczenie 5.13. TrackBar..................................................................................................61
∆wiczenie 5.14. MediaPlayer ............................................................................................62
∆wiczenie 5.15. Menu........................................................................................................62
4
∆wiczenia z podstawowych komponentÛw Delphi
∆wiczenie 5.16. PopupMenu .............................................................................................64
∆wiczenie 5.17. StringGrid................................................................................................65
∆wiczenie 5.18. TreeView.................................................................................................69
∆wiczenie 5.19. WewnÍtrzna lista .....................................................................................72
∆wiczenie 5.20. Okna informacyjne..................................................................................73
∆wiczenie 5.21. Okna s≥uøπce do zadawania pytaÒ...........................................................76
∆wiczenie 5.22. Okna dialogowe.......................................................................................78
∆wiczenie 5.23. Obs≥uga kilku komponentÛw ..................................................................80
∆wiczenie 5.24. UpDown ..................................................................................................83
∆wiczenie 5.25. ScrollBar..................................................................................................84
∆wiczenie 5.26. Splitter .....................................................................................................85
∆wiczenie 5.27. Dynamiczne tworzenie komponentÛw ....................................................86
∆wiczenie 5.28. Wczytanie czcionek do listy ComboBox i ListBox ................................90
∆wiczenie 5.29. Instalacja nowych komponentÛw ............................................................92
∆wiczenie 5.30. Dymki (Podpowiedzi) .............................................................................93
∆wiczenie 5.31. MDI (aplikacja wielodokumentowa) ......................................................94
∆wiczenie 5.32. Wczytanie pliku przez podanie jego nazwy jako parametr.....................98
∆wiczenie 5.33. Uruchomienie innego programu z poziomu aplikacji .............................99
∆wiczenie 5.34. Pozycja kursora myszy............................................................................99
∆wiczenie 5.35. Zamiana znakÛw w tekúcie ...................................................................100
∆wiczenie 5.36. Grafika...................................................................................................102
∆wiczenie 5.37. Funkcja s≥ownie.....................................................................................104
∆wiczenie 5.38. Wprowadzenie do baz danych...............................................................109
∆wiczenie 5.39. Wyúwietlenie tabeli w komponencie StringGrid ..................................119
∆wiczenie 5.40. Sortowanie w komponencie StringGrid ................................................124
∆wiczenie 5.41. Alarm.....................................................................................................128
∆wiczenie 5.42. Standardowe animacje w systemie Windows .......................................130
∆wiczenie 5.43. Dodawanie dni do daty..........................................................................132
∆wiczenie 5.44. Nazwy dni i miesiÍcy ............................................................................137
∆wiczenie 5.45. PageControl (Zak≥adki) .........................................................................140
∆wiczenie 5.46. Rysowanie na ograniczonym obszarze..................................................142
∆wiczenie 5.47. Memo do wyúwietlania krÛtkiej pomocy ..............................................144
∆wiczenie 5.48. Wπtki .....................................................................................................147
∆wiczenie 5.49. Wydruki.................................................................................................151
∆wiczenie 5.50. Wyúwietlenie nazw kolumn z bazy .......................................................164
∆wiczenie 5.51. Wyselekcjonowanie liczb z tekstu ........................................................166
∆wiczenie 5.52. Gauge ....................................................................................................168
∆wiczenie 5.53. Chart ñ wykresy ....................................................................................171
∆wiczenie 5.54. Liczenie plikÛw .....................................................................................175
∆wiczenie 5.55. Okno InputBox......................................................................................178
∆wiczenie 5.56. Plik rekordowy ......................................................................................179
∆wiczenie 5.57. Odliczanie czasu w ty≥...........................................................................183
∆wiczenie 5.58. Zmiana wielkoúci liter...........................................................................186
∆wiczenie 5.59. Szukanie danych w komponencie StringGrid .......................................189
∆wiczenie 5.60. Polskie znaki(Ogonki)...........................................................................193
6.
∆wiczenia do samodzielnego wykonania .....................................................................196
KsiπøkÍ tÍ dedykujÍ swojej mamie
WstÍp
Ksiπøka obejmuje Êwiczenia z programu Borland Delphi i jest przeznaczona dla
szerokiego grona uøytkownikÛw znajπcych obs≥ugÍ systemu Windows, ktÛrzy chcieliby w szybki i przyjemny sposÛb rozpoczπÊ naukÍ programowania.
Borland Delphi jest 32 bitowym úrodowiskiem programistycznym dajπcym moøliwoúÊ obiektowego i wizualnego projektowania aplikacji, przez co zaliczane jest do
narzÍdzi typu RAD (Rapid Application Development) ñ co oznacza szybkie tworzenie
aplikacji.
Te walory przyczyniajπ siÍ do tworzenia programÛw w sposÛb przyjemny
i szybki. Programy zrobione za pomocπ Delphi 3.0 sπ programami 32 bitowymi, przez
co pracujπ szybciej od swoich 16 bitowych odpowiednikÛw utworzonych za pomocπ
Delphi 1.0 lub Pascala.
Wszystkie przedstawione Êwiczenia dotyczπ Delphi w wersji 3.0 lub wyøszej
i znajdujπ siÍ na do≥πczonej do ksiπøki dyskietce. Znajduje siÍ tam rÛwnieø kilka
nowych komponentÛw (miÍdzy innymi obs≥uga rysunkÛw jpeg, wybÛr katalogu),
ktÛre moøna zainstalowaÊ.
Mam nadziejÍ, øe ksiπøka ta przyczyni siÍ do szybkiego poznania Delphi i tworzenia programÛw za pomocπ tego jÍzyka.
Autor
3.
Elementy Pascala
3.1.
Komentarze
Komentarze umoøliwiajπ opisanie fragmentÛw kodu. Komentarze te zwiÍkszajπ
czytelnoúÊ kodu, co ma duøe znaczenie dla programisty. W czasie kompilacji tekst
komentarza jest pomijany. Delphi dysponuje nastÍpujπcymi rodzajami komentarzy:
N
{ komentarz } ñ nawiasy klamrowe, ktÛre umoøliwiajπ zaznaczenie znacznej
czÍúci opisu znajdujπcego siÍ w kilku wierszach;
przyk≥ad:
{
To jest komentarz.
Taki sam by≥ w Turbo Pascalu
}
N
// komentarz ñ umoøliwia wstawienie komentarza tylko w jednym wierszu;
przyk≥ad:
// To jest komentarz, ktÛry moøna umieúciÊ w jednym wierszu
N
(* to teø jest komentarz *) ñ nawiasy po≥πczone z gwiazdkπ rÛwnieø umoøliwiajπ
zaznaczenie znacznej czÍúci opisu znajdujπcego siÍ w kilku wierszach;
przyk≥ad:
(*
To jest komentarz.
Taki sam by≥ w Turbo Pascalu
*)
3.2.
Wybrane typy
W czasie deklaracji zmiennej naleøy okreúliÊ jej typ. Typ jest zbiorem okreúlajπcym wartoúci jakie moøe przyjmowaÊ zmienna.
Typ ca≥kowity:
N
Shortint ñ przyjmuje liczby z zakresu od ñ128 do 127 i ma rozmiar 1 bajta;
17
Elementy Pascala
N
Smallint ñ przyjmuje liczby z zakresu od ñ32768 do 32767 i ma rozmiar 2 bajtÛw;
N
Longint ñ przyjmuje liczby z zakresu od ñ2147483648 do 2147483647 i ma
rozmiar 4 bajtÛw;
N
Byte ñ przyjmuje liczby z zakresu od 0 do 255 i ma rozmiar 1 bajta;
N
Word ñ przyjmuje liczby z zakresu od 0 do 65535 i ma rozmiar 2 bajtÛw;
N
Integer ñ przyjmuje liczby z zakresu od ñ2147483648 do 2147483647 i ma
rozmiar 4 bajtÛw;
N
Cardinal ñ przyjmuje liczby z zakresu od 0 do 2147483647 i ma rozmiar 4 bajtÛw.
Typy rzeczywiste:
N
Real ñ przyjmuje liczby z zakresu od 2.9 x 10-39 do 1.7 x 1038 i ma rozmiar
6 bajtÛw (uwaga: typ ten zosta≥ zachowany w celu zgodnoúci z poprzednimi wersjami Pascala);
N
Single ñ przyjmuje liczby z zakresu od 1.5 x 10-45 do 3.4 x 1038 i ma rozmiar
4 bajtÛw;
N
Double ñ przyjmuje liczby z zakresu od 5.0 x 10-324 od 1.7 x 10308 i ma rozmiar 8 bajtÛw;
N
Extended ñ przyjmuje liczby z zakresu od 3.4 x 10-4932 do 1.1 x 104932 i ma
rozmiar 10 bajtÛw;
N
Comp ñ przyjmuje liczby z zakresu od -263+1 do 263 -1 i ma rozmiar 8 bajtÛw;
N
Currency ñ przyjmuje liczby z zakresu od -922337203685477.5808 do
922337203685477.5807 i ma rozmiar 8 bajtÛw. Typ ten zosta≥ utworzony na potrzeby obliczeÒ finansowych.
Typ Variant:
Jest to doúÊ niezwyk≥e rozwiπzanie pozwalajπce na dynamicznπ zmianÍ typu
zmiennej, tzn. zmienna moøe przyjπÊ typ ca≥kowity, rzeczywisty, itp.
Przyk≥ad:
var
begin
end;
V: Variant;
V:= ‘To jest tekst’;
V:= 1256;
// Jest typem ≥aÒcuchowym
// Jest typem ca≥kowitym
18
∆wiczenia z podstawowych komponentÛw Delphi
3.3.
Zmienne
Zmienne umoøliwiajπ przechowywanie wartoúci lub napisÛw (≥aÒcuchÛw tekstowych). Zmienne umieszcza siÍ za s≥owem var (ang. variables), a przed blokiem instrukcji begin i end lub w sekcji private albo public.
Przyk≥ad:
var
Hour, Min, Sec, MSec :Word;
// Deklaracja zmiennych
Poniøej jest przedstawiony przyk≥ad prawid≥owego umiejscowienia zmiennych
w kodzie:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Forms;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
// Deklaracja zmiennej liczbowej typu ca≥kowitego.
// Zmienna globalna dla danego modu≥u
numLiczba: Integer;
public
{ Public declarations }
// Deklaracja zmiennej tekstowej
// zmienna globalna dla ca≥ego projektu
txtString: String;
end;
var
Form1: TForm1;
// Zadeklarowanie zmiennej typu znakowego
// Zmienna globalna widoczna w ca≥ym programie
chrChar: Char;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
okSwitch: Boolean;
// Deklaracja zmiennej logicznej
19
Elementy Pascala
// zmienna lokalna widoczna tylko w
// funkcji, w ktÛrej zosta≥a zadeklarowana
begin
// FormCreate
end;
end.
Zmiennej tekstowej o nazwie ÑtxtStringî (zadeklarowanej w formie nr 1, tj. Unit1
w sekcji public) moøemy przypisaÊ dowolny tekst z innej formy (np. nr 2, tj. Unit2).
Oto przyk≥ad:
procedure TForm2.FormShow(Sender: TObject);
begin
// FormShow
Form1.txtString:= 'Tester';
end;
3.4.
Sta≥e
Sta≥e wprowadza siÍ do programu w celu u≥atwienia pÛüniejszej modyfikacji
programu, ktÛrπ moøemy wykonaÊ w jednym miejscu programu. W przeciwnym
przypadku musielibyúmy wprowadzaÊ zmiany w kilku miejscach, co moøe przyczyniÊ
siÍ do powstawania b≥ÍdÛw. Sta≥π deklarujemy po s≥owie const (ang. constants). Oto
przyk≥ady:
const
Miesiące = 12;
Doba = 24;
// Deklaracja iloúci miesiÍcy w roku
// Deklaracja iloúci godzin w ciπgu doby
Poniøej jest przedstawiony przyk≥ad umiejscowienia sta≥ych w kodzie:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Forms;
const
// Deklaracja sta≥ej liczbowej
// Sta≥a globalna widoczna w ca≥ym programie
numLiczba = 23;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
20
∆wiczenia z podstawowych komponentÛw Delphi
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
const
// Deklaracja sta≥ej tekstowej
// Sta≥a lokalna widoczna tylko w funkcji, w
// ktÛrej zosta≥a zadeklarowana
txtString = 'Jan Biernat';
begin
// FormCreate
end;
end.
3.5.
Instrukcje warunkowe if...then / if...then...else
Instrukcje warunkowe if...then / if...then...else pozwalajπ na sterowanie programem. Polega ono na spe≥nieniu okreúlonego warunku, ktÛry pozwala na wykonanie
odpowiedniej czÍúci programu (kodu). Jeøeli chcemy wywo≥aÊ wiÍkszπ liczbÍ funkcji,
procedur lub wpisaÊ wiÍkszπ liczbÍ instrukcji, trzeba je wpisaÊ miÍdzy s≥owami begin
i end. W przypadku wywo≥ania jednej funkcji, procedury lub wpisania jednej instrukcji, s≥owa begin i end moøna pominπÊ.
Oto konstrukcja instrukcji warunkowych:
if (warunek) then
funkcja;
// Wykonanie funkcji w momencie spe≥nienia warunku
lub:
if (warunek) then
begin
funkcja;
procedura;
instrukcje;
end;
// Wykonanie funkcji i procedury w momencie spe≥nienia warunku
lub:
if (warunek) then
funkcja
else
funkcja2;
// Wykonanie funkcji w momencie spe≥nienia warunku
// Wykonanie funkcji w momencie spe≥nienia drugiego warunku
21
Elementy Pascala
lub:
if (warunek) then
begin
funkcja;
procedura;
instrukcje;
end
else
begin
funkcja;
procedura;
instrukcje;
end;
Przyk≥ad 1:
if (okSave = TRUE) then savZapisz(‘nazwa’);
Warunek ten powoduje zapisanie pliku, gdy zmienna ëokSaveí bÍdzie prawdziwa
(czyli bÍdzie mia≥a wartoúÊ True).
Przyk≥ad 2:
if (okSave = TRUE) then
savZapisz(‘nazwa’)
else
Close;
3.6.
// NastÍpuje zapisanie w momencie spe≥nienia warunku
// NastÍpuje zamkniÍcie w przypadku spe≥nienia drugiego warunku
Instrukcja wiπøπca with...do
Instrukcja wiπøπca jest przydatna w momencie wywo≥ywania kilku w≥aúciwoúci
komponentu. Ta konstrukcja zwalnia programistÍ z ciπg≥ego wypisywania nazwy
komponentu w momencie wywo≥ania w≥aúciwoúci danego komponentu.
Przyk≥ad bez uøycia instrukcji wiπøπcej with:
Memo1.ReadOnly:= TRUE;
Memo1.TabStop:= FALSE;
Memo1.ScrollBars:= ssNone;
Memo1.Color:= clBtnFace;
Memo1.Lines.Clear;
Przyk≥ad z uøyciem instrukcji wiπøπcej with:
with Memo1 do
begin
ReadOnly:= TRUE;
TabStop:= FALSE;
ScrollBars:= ssNone;
22
end;
∆wiczenia z podstawowych komponentÛw Delphi
Color:= clBtnFace;
Lines.Clear;L
Lines.Add('');
Z powyøszych przyk≥adÛw widaÊ, øe bardziej efektywnym rozwiπzaniem jest
uøycie konstrukcji wiπøπcej with...do.
3.7.
PÍtle for...to/downto...do, while...do, repeatÖuntil
Instrukcje for..to/downto...do, while...do, repeat...until umoøliwiajπ wykonanie
instrukcji w sposÛb cykliczny, tzn. z gÛry okreúlonπ liczbÍ razy.
Do zatrzymania wykonywanej pÍtli s≥uøy instrukcja break powodujπca zakoÒczenie wykonywanej pÍtli, w ktÛrej zosta≥a wywo≥ana.
N
for...to...do ñ wykonuje blok instrukcji okreúlonπ liczbÍ razy np. zwiÍkszajπc
zmiennπ TT z wartoúci 0 do wartoúci 10.
for TT:= 0 to 10 do
Sum:= Sum+1;
lub:
for TT:= 0 to 10 do
begin
Instrukcja 1;
Instrukcja 2;
……………;
Instrukcja N;
end;
N
forÖdowntoÖdo ñ wykonuje blok instrukcji okreúlonπ liczbÍ razy np. zmniejszajπc zmiennπ TT z wartoúci 10 do wartoúci 0.
for TT:= 10 downto 0 do
Sum:= Sum+1;
lub:
for TT:= 10 downto 0 do
begin
Instrukcja 1;
Instrukcja 2;
……………;
Instrukcja N;
end;
N
while...do ñ wykonuje blok instrukcji tak d≥ugo, jak d≥ugo pozostaje spe≥niony
warunek. Warunek ten jest sprawdzany na poczπtku pÍtli przy kaødym cyklu.
W przypadku nie spe≥nienia warunku, wykonywanie pÍtli jest zatrzymane. Moøe
Elementy Pascala
23
siÍ zdarzyÊ, øe pÍtla nie zostanie wykonana ani razu, poniewaø warunek, ktÛry
jest sprawdzany na poczπtku przed wykonaniem pÍtli nie zosta≥ spe≥niony.
while (warunek) do
instrukcja;
lub:
while (warunek) do
begin
Instrukcja 1;
Instrukcja 2;
……………;
Instrukcja N;
end;
N
repeat...until ñ wykonuje blok instrukcji do czasu, gdy zostanie spe≥niony warunek. Warunek ten jest sprawdzany na koÒcu kaødego cyklu. Sprawdzenie warunku na koÒcu cyklu powoduje wykonanie pÍtli przynajmniej jeden raz.
repeat
Instrukcja 1;
Instrukcja 2;
……………;
Instrukcja N;
until(warunek);
Przyk≥ad znajduje siÍ na dyskietce w katalogu Delphi\Inne\Petle.
3.8.
N
Mechanizmy obs≥ugi wyjπtku
try...except...end ñ mechanizm obs≥ugi wyjπtku jest bardzo wygodnym narzÍdziem, poniewaø pozwala na wychwycenie sytuacji wyjπtkowych (np. dzielenia
przez zero). DziÍki niemu program jest bardziej stabilny. Mechanizm wyjπtku
dzia≥a tylko w przypadkach wystπpienia b≥Ídu.
UWAGA: Program z mechanizmem obs≥ugi b≥ÍdÛw naleøy uruchomiÊ poza úrodowiskiem Delphi, w przeciwnym razie obs≥uga b≥Ídu bÍdzie przechwycona
przez Delphi.
Konstrukcja:
try
except
end;
...
instrukcje mogące spowodować błąd
...
...
instrukcje wykonywane po wystąpieniu błędu
...
24
∆wiczenia z podstawowych komponentÛw Delphi
Przyk≥ad znajduje siÍ na dyskietce w katalogu Delphi\Inne\Try_ex.
N
try...finally...end ñ mechanizm zwalniania zasobÛw gwarantuje zwolnienie zasobÛw (np. plik, pamiÍÊ dynamiczna, zasoby systemowe i obiekty) w przypadku
wystπpienia b≥Ídu. Instrukcje zawarte w bloku zwalniania zasobÛw sπ wykonywane zawsze.
Konstrukcja:
try
...
instrukcje korzystające z zasobów, mogące spowodować błąd
...
finally
...
zwalnianie zasobów (instrukcje tu zawarte wykonywane są zawsze).
...
end;
Przyk≥ad znajduje siÍ na dyskietce w katalogu Delphi\Inne\Try_fi.
3.9.
Opis wybranych zdarzeÒ
Opisane niøej zdarzenia dotyczπ formatki, mimo øe niektÛre z nich wystÍpujπ
w rÛønych komponentach. Zdarzenia te powodujπ wykonanie pewnych instrukcji po
zajúciu okreúlonego zdarzenia wykonanego w tym przypadku na formatce. Opis
zdarzeÒ we w≥aúciwoúciach jest trochÍ inny niø wewnπtrz kodu, np. OnCreate (na liúcie w oknie Object Inspector) jest rÛwnoznaczne z nazwπ FormCreate (wewnπtrz
kodu) ñ odnosi siÍ to do nazw wszystkich zdarzeÒ. SposÛb generowania zdarzeÒ
opisany jest w podrozdziale 1.3.
procedure TForm1.FormActivate(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie gdy formatka jest aktywna.
end;
procedure TForm1.FormClick(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie gdy kliknie siÍ na formatce.
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie zamykania formatki.
end;
Elementy Pascala
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
{
Tu wpisujemy instrukcje, ktÛre majπ na celu zapytanie uøytkownika
w momencie zamykania formatki np. wywo≥anie dialogu z pytaniem.
}
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane przed utworzeniem okna formatki.
end;
procedure TForm1.FormDblClick(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie
// dwukrotnego klikniÍcia na formatce.
end;
procedure TForm1.FormDeactivate(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie,
// gdy formatka przestaje byÊ aktywna.
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie likwidacji formatki.
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie
// naciúniÍcia klawiszy funkcyjnych np. Enter, F1..F12, PageUp itp.
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie naciúniÍcia
// dowolnego lub wybranego klawisza alfanumerycznego np. a, b, <, > itp.
end;
procedure TForm1.FormResize(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie
// zwiÍkszania lub zmniejszania rozmiarÛw formatki.
end;
procedure TForm1.FormShow(Sender: TObject);
begin
// Tu wpisujemy instrukcje, ktÛre sπ wykonywane w momencie ukazania siÍ formatki.
end;
25
26
∆wiczenia z podstawowych komponentÛw Delphi
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
// Tu wpisujemy instrukcje, ktÛre wykonywane sπ w momencie poruszania kursorem myszy.
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
{
Tu wpisujemy instrukcje odpowiedzialne za odúwieøenie zawartoúci
formatki w przypadku zas≥oniÍcia tej formatki przez innπ formatkÍ.
}
end;
Przedstawiony przyk≥ad znajduje siÍ w katalogu Delphi\Inne\Opis.
3.10. Nazwa aplikacji (programu)
Nazwa aplikacji wyúwietlana na pasku zadaÒ jest pobierana z nazwy pliku. W celu jej zmiany naleøy napisaÊ Application.Title:= 'MÛj pierwszy program'; pomiÍdzy
s≥owami kluczowymi begin i end, w zdarzeniu OnCreate lub OnShow. Aby zdarzenie to zosta≥o wygenerowane przez Delphi naleøy dwukrotnie kliknπÊ formatkÍ lub
wybraÊ np. zdarzenie OnCreate przez dwukrotne szybkie klikniÍcie karty Events
w oknie Object Inspector. W wygenerowanej procedurze, ktÛra jest wywo≥ywana
w momencie uruchamiania programu wpisujemy Application.Title:= 'MÛj pierwszy
program';. Poniøej jest zamieszczony przyk≥ad.
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Title:= 'Mój pierwszy program';
end;
Od tej chwili na pasku zdaÒ bÍdzie siÍ ukazywa≥a nazwa ÑMÛj pierwszy programî.
W celu zamiany ikony programu naleøy wykonaÊ nastÍpujπce czynnoúci:
E
Wybierz polecenie Options (Opcje) z menu Project (Projekt).
E
W oknie Project options (Opcje projektu) wybierz kartÍ Application (Aplikacja) ñ rysunek 3.10.1.
E
Wybierz przycisk z napisem Load Icon (Za≥aduj ikonÍ) i w ukazanym oknie
wybierz ikonÍ.
E
Ostatni krok polega na zatwierdzeniu wyboru przez wybranie przycisku OK.
27
Elementy Pascala
Rysunek 3.10.1.
3.11. Lista wybranych zmiennych globalnych
Poniøej znajduje siÍ opis wybranych zmiennych globalnych, ktÛre sπ dostÍpne
w ca≥ym programie utworzonym w úrodowisku Delphi.
Do tych zmiennych wpisywane sπ wartoúci, pobrane z systemu w momencie uruchomienia programu. Wartoúci te moøna zmieniaÊ, bez wp≥ywu na zmiany ustawieÒ
w systemie. Zmienne te u≥atwiajπ bardzo prace programisty, zwalniajπc go ze ømudnego dostosowywania programu do rÛønych ustawieÒ systemu.
N
DateSeparator ñ umoøliwia przypisanie lub odczyt znaku uøywanego w zapisie
daty do oddzielenia roku, miesiπca, dnia (np. DateSeparator:= ë-ë ñ od tego momentu znakiem rozdzielajπcym datÍ jest znak minus);
N
TimeSeparator ñ umoøliwia przypisanie lub odczyt znaku uøywanego w zapisie
czasu do oddzielenia godzin, minut, sekund (np. TimeSeparator:= ë:ë ñ od tego
momentu znakiem rozdzielajπcym czas jest znak dwukropka);
N
DecimalSeparator ñ umoøliwia przypisanie lub odczyt znaku uøywanego
w zapisie liczbowym do oddzielenia liczby ca≥kowitej i jej czÍúci dziesiÍtnej (np.
DecimalSeparator:= ë.ë ñ od tego momentu znakiem rozdzielajπcym liczbÍ ca≥kowitπ od jej dziesiÍtnej czÍúci jest kropka).
UWAGA: W jÍzykach programowania m.in. w Delphi uøywa siÍ kropki zamiast
przecinka w celu oddzielenia w liczbie rzeczywistej czÍúci ca≥kowitej od czÍúci
28
∆wiczenia z podstawowych komponentÛw Delphi
dziesiÍtnej. Gdy uøyjemy przecinka, program ze wzglÍdu na b≥πd nie zostanie
prawid≥owo uruchomiony (np. 12,34 ñ jest zapisem b≥Ídnym, 12.34 to zapis poprawny);
N
ShortMonthNames ñ Tablica znakÛw zawierajπca skrÛcone nazwy miesiπca
(np. Caption:= ShortMonthNames[1]; ñ zwrÛci nam skrÛconπ nazwÍ pierwszego
miesiπca);
N
LongMonthNames ñ Tablica znakÛw zawierajπca pe≥ne nazwy miesiπca (np.
Caption:= LongMonthNames[2]; ñ zwrÛci nam pe≥nπ nazwÍ drugiego miesiπca);
N
ShortDayNames ñ Tablica znakÛw zawierajπca skrÛcone nazwy dnia (np. Caption:= ShortDayNames[1]; ñ zwrÛci nam skrÛconπ nazwÍ pierwszego dnia);
N
LongDayNames ñ Tablica znakÛw zawierajπca pe≥ne nazwy dnia (np. Caption:=
LongDayNames[2]; ñ zwrÛci nam pe≥nπ nazwÍ drugiego dnia).
Przyk≥ad zastosowania wyøej wymienionych zmiennych:
procedure TForm1.FormCreate(Sender: TObject);
begin
// FormCreate
// Znak uøywany do oddzielenia roku, miesiπca, dnia.
DateSeparator:= '-';
// Znak uøywany do oddzielenia liczby ca≥kowitej od jej czÍúci dziesiÍtnej.
DecimalSeparator:= '.';
// Zwraca skrÛconπ nazwÍ pierwszego miesiπca.
Label1.Caption:= ShortMonthNames[1];
// Zwraca pe≥nπ nazwÍ drugiego miesiπca.
Label2.Caption:= LongMonthNames[2];
// Zwraca skrÛconπ nazwÍ pierwszego dnia.
Label3.Caption:= ShortDayNames[1];
// Zwraca pe≥nπ nazwÍ drugiego dnia.
Label4.Caption:= LongDayNames[2];
end;
3.12. Operatory logiczne i relacji
Poniøej przedstawione sπ operatory wraz z przyk≥adem ilustrujπcym zastosowanie
kaødego z nich.
29
Elementy Pascala
Operator
Wyglπd
RÛwnoúÊ
=
NierÛwnoúÊ
<>
Mniejsze
<
WiÍksze
>
WiÍksze lub rÛwne
>=
Mniejsze lub rÛwne
<=
Koniunkcja (i logiczne)
and
Alternatywa (lub logiczne )
or
Negacja
not
Przyk≥ad rÛwnoúci:
if (Numer = 5) then WykonajZadanie
Jeøeli zmienna o nazwie ÑNumerî jest rÛwna liczbie 5 to wykonaj funkcjÍ/instrukcjÍ
po s≥owie THEN.
Przyk≥ad nierÛwnoúci:
if (Numer <> 5) then WykonajZadanie
Jeøeli zmienna o nazwie ÑNumerî jest rÛøna od liczby 5 to wykonaj funkcjÍ/instrukcjÍ
po s≥owie THEN.
Przyk≥ad wiÍksze lub rÛwne:
if (Numer >= 5) then WykonajZadanie
Jeøeli zmienna o nazwie ÑNumerî jest wiÍksza od liczby 5 lub rÛwna liczbie 5 to
wykonaj funkcjÍ/instrukcjÍ po s≥owie THEN.
Przyk≥ad zastosowania operatora AND:
if (warunek1) and (warunek2) then WykonajZadanie
Jeøeli bÍdzie spe≥niony Warunek1 i Warunek2 to wykonaj funkcjÍ/instrukcjÍ po s≥owie THEN.
Przyk≥ad zastosowania operatora OR:
if (warunek1) or (warunek2) then WykonajZadanie
Jeøeli bÍdzie spe≥niony Warunek1 lub Warunek2 to wykonaj funkcjÍ/instrukcjÍ po
s≥owie THEN.
30
∆wiczenia z podstawowych komponentÛw Delphi
Przyk≥ad zastosowania operatora NOT:
while not Warunek do
begin
WykonajZadanie;
end;
Instrukcja pomiÍdzy s≥owem Begin i End jest wykonana w momencie spe≥nienia
Warunku postawionego na samym poczπtku pÍtli.

Podobne dokumenty