Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
C++BuilderX.
wiczenia
Autor: Mariusz Owczarek
ISBN: 83-7361-676-4
Format: B5, stron: 128
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Wstp.................................................................................................................................................................5
Rozdzia 1.
C++BuilderX. wiczenia
Funkcja main()........................................................................................................... 50
Przekazywanie parametrw do funkcji main()..................................................... 50
Struktury i unie .......................................................................................................... 52
Struktury .............................................................................................................. 52
Unie...................................................................................................................... 54
Klasy.......................................................................................................................... 55
Konstruktory i destruktory ................................................................................... 57
Przeadowywanie konstruktorw ......................................................................... 59
Dziedziczenie....................................................................................................... 60
Przecianie operatorw ...................................................................................... 64
Wyjtki ...................................................................................................................... 66
Podsumowanie........................................................................................................... 69
Literatura.....................................................................................................................................................127
3.
Aplikacje okienkowe
Rozdzia
Wstp
C++BuilderX w przeciwiestwie do C++Buildera 6 nie zawiera elementw VCL. Jestemy
wic zmuszeni pisa programy z GUI przy uyciu WinAPI. Ma to swoje dobre strony,
poniewa pozwala na lepsz optymalizacj kodu, ale jednoczenie zwiksza ilo czasu
i pracy potrzebnej do napisania aplikacji. W pierwszej wersji BuilderaX przewidziane jest
pisanie aplikacji GUI tylko pod systemem Windows. Dodatkowym utrudnieniem jest brak
moliwoci tworzenia menu i okien dialogowych w plikach zasobw. Edytor menu i okien
dialogowych pojawi si zapewne w drugiej wersji BuilderaX. Tak naprawd moliwe jest
pisanie programw GUI rwnie pod Linuksem, ale naley si w tym celu posuy ktrym
z narzdzi uatwiajcych to zadanie. Takim narzdziem jest m.in. pakiet GTK++ dostpny
na licencji open source.
Poniewa w drugiej wersji opcja projektw GUI prawdopodobnie bdzie dostpna take
pod Linuksem, zdecydowaem si nie opisywa tu GTK++ ani innego tego typu pakietu, ale
poczeka na rozwizanie zaproponowanie przez firm Borland. Jeeli bdziesz, Czytelniku, zainteresowany rodowiskiem GTK, to na stronie projektu (www.gtk.org) znajdziesz obszerne opisy i tutoriale. Mona si z nich nauczy pracy z t bibliotek od samych
podstaw do skomplikowanych aplikacji.
Mam nadziej, e take dla Windows ewolucja programu pjdzie w kierunku jakiej formy
biblioteki VCL, ktra jednak bardzo uatwia prac.
Na zakoczenie wstpu kilka sw o wiczeniach w tym rozdziale. Poniewa aplikacje
w WinAPI s dosy dugie, nie jest moliwe napisanie ich w jednym wiczeniu. Dlatego
ten rozdzia podzielony jest na podrozdziay opisujce jedn aplikacj (edytor, kalkulator itd.). Wszystkie wiczenia w danym podrozdziale odnosz si do tego samego kodu
rdowego, aplikacja jest rozwijana w kolejnych podpunktach.
72
C++BuilderX. wiczenia
kliknijmy Next>.
3. Teraz naley wybra platform, na ktrej bdzie dziaa nasz projekt. Poniewa
content zobaczymy ich list. Bd to: plik projektu Hallo.cbx, plik untitled1.cpp
z kodem programu i plik Hallo.exe, ktry bdzie zawiera gotowy program
po kompilacji.
Pierwszy parametr,
, jest uchwytem do aplikacji, ktrej czci jest dana funkcja
. Drugi parametr to uchwyt do poprzedniego uruchomienia danej aplikacji (jeeli
dwie kopie aplikacji dziaaj w tym samym momencie). W rodowisku Windows ten
73
parametr ma zawsze warto . Jeeli chcemy sprawdzi, czy uruchomiono wczeniej
jakie kopie programu, musimy to zrobi w inny sposb. Trzeci parametr, , to
acuch znakowy zawierajcy argumenty przekazane do programu w linii komend przy
uruchamianiu. Ten mechanizm omwi w dalszej czci niniejszego rozdziau. Ostatni
parametr zawiera flagi okrelajce sposb wywietlania gwnego okna programu. Funkcja
jest wywoywana przez system przy uruchamianiu aplikacji i zwykle warto
adnego z tych parametrw nie jest bezporednio zadawana przez programist.
wiczenie 3.2.
Jeeli program nie uruchomi si, sprawdmy, czy kod rdowy wyglda dokadnie tak,
jak na listingu wyej.
Jeeli wszystko przebiego bez zakce, to wanie napisae i uruchomie, Czytelniku,
swj pierwszy program okienkowy w C++BuilderX.
Cho programik jest tak prosty, mona wykorzysta go do nauki dwch rzeczy. Po pierwsze, przyjrzymy si funkcji . Po drugie, poznamy mechanizm przekazywania
parametrw w linii komend przy uruchamianiu programu.
Funkcja , jak ju wiemy, tworzy okno komunikatw. Jest to proste okno wywietlajce tekst wiadomoci i dajce uytkownikowi moliwo reakcji przez nacinicie
74
C++BuilderX. wiczenia
przycisku. Mona sterowa rodzajem wywietlanych przyciskw. Po naciniciu przycisku okno znika, a funkcja zwraca odpowiedni warto w zalenoci od nacinitego
przycisku. Prototyp tej funkcji wyglda nastpujco:
#$ %
1
%
&
4
*"
Parametr oznacza uchwyt do okna macierzystego, do tego okna zostanie przesany
komunikat po naciniciu przycisku. W naszym przypadku nie ma okna macierzystego,
wic ten parametr ma warto . Druga zmienna to acuch komunikatu wywietlany
w oknie. to rwnie acuch znakowy wywietlany w pasku aplikacji. Ostatni
parametr, , to flagi okrelajce, jakie przyciski bd dostpne w oknie, jaka bdzie
ikona i sposb zachowania si okna.
wiczenie 3.3.
to tylko ikona.
Inne moliwe wartoci flag zestawiono w tabeli 3.1 i tabeli 3.2.
Tabela 3.1. Wybr rodzaju i liczby przyciskw
Warto flagi
Przyciski
$,-.
OK
$,$-
< -
$,-.
OK oraz Anuluj
$,
$, -
Ikona
$,- =
-
ostrzegawczy wykrzyknik
$,- 0-
-
$,-
.
dymek informacyjny
$,- >&
-
$,-
-
bd krytyczny
75
na dolne okno pokazujce proces kompilacji. Podczas dziaania programu bdzie tam
komenda uruchamiajca nasz program wraz z argumentem.
Wejdmy jeszcze raz w menu Run\Configurations. Runtime configurations to wygodne
narzdzie do testowania rnych opcji uruchamiania programu. Zamiast zmienia istniejc konfiguracj, moemy doda now przyciskiem New. Kada konfiguracja moe
mie inne opcje. Gdy mamy wicej ni jedn konfiguracj, program zostanie uruchomiony w tej, przy ktrej zaznaczymy okienko w kolumnie Default. Do tego narzdzia
wrcimy jeszcze w dalszych przykadach.
W nastpnym podrozdziale napiszemy gwne okno aplikacji z prawdziwego zdarzenia.
Bdzie ono baz do umieszczania rnych komponentw.
76
C++BuilderX. wiczenia
Pierwowzorem tej funkcji jest )&- (linii podanej poniej nie wpisujemy
do programu):
&
$.
!
1!&
4#
!"2
77
Tutaj posuymy si funkcj
. Funkcja ta pobiera ikon z pliku exe.
Posiada ona dwa parametry. Pierwszy to uchwyt do aplikacji, ktra zawiera ikon,
a drugi to nazwa ikony. Istniej ikony standardowe. Dla nich parametr pierwszy
musi mie warto . Nazwy ikon standardowych to:
1,
-
1,
.
Asterisk (informacje)
1,=
Wykrzyknik (ostrzeenia)
1, 1
1,>&
-
1, -<-
logo Windows
1,-
Strzaka
1,-
Krzyyk
1,$
Kursor tekstowy
1,-
1, -
1,C
1,C
1,C
1,C
1,C
1,C
1,&-
Pionowa strzaka
1,
Klepsydra
78
C++BuilderX. wiczenia
Skadowe klasy '!%% mog przybiera rne wartoci, a jako wynik otrzymujemy
odpowiedni wygld i zachowanie okna. Wymienienie wszystkich moliwoci
przekracza zakres tej ksiki. Ograniczyem si tylko do tych, ktre s w danej
chwili potrzebne.
10. Po inicjalizacji skadowych klasy naley j zarejestrowa za pomoc funkcji
$-, a nastpnie (w przypadku udanej rejestracji) stworzy okno oparte
na naszej klasie.
Okno tworzymy za pomoc funkcji -). W naszym przypadku uyjemy jej
w postaci:
8#F# !, ? ""
9
,!@
!*4*4
,-A1
1-
/
,1
,&10&
,&10&
,&10&
,&10&
1,1.
- &, &"2
;
,!@ &2
Pierwszy parametr oznacza nazw klasy reprezentujcej okno. Nie jest to nazwa
obiektu klasy, ale nazwa wpisana w zmienn 2. Drugi parametr
to acuch znakowy, ktry bdzie wywietlany w pasku okna. Dla uproszczenia
wpiszemy tu ten sam tekst, ktry oznacza nazw klasy. Nastpny parametr okrela
sposb wywietlania okna.
%+"$!&&"'
' wskazuje, e okno ma posiada pasek tytuowy i ramk.
%
&
'$" okrela, e podczas malowania na oknie nie bdzie zamazany
obszar ewentualnych okien potomnych tego okna. Nastpne parametry oznaczaj
79
80
C++BuilderX. wiczenia
81
Gwne okno aplikacji bdzie baz, ktr wykorzystamy do tworzenia aplikacji. W nastpnym podrozdziale stworzymy w naszej aplikacji kontrolki. S to elementy umoliwiajce
komunikacj uytkownika z aplikacj. Nale do nich przyciski, pola tekstowe itp.