C_BuilderX_cwiczenia_cwcbux.pdf

(363 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
C++BuilderX.
Æwiczenia
Autor: Mariusz Owczarek
ISBN: 83-7361-676-4
Format: B5, stron: 128
TWÓJ KOSZYK
DODAJ DO KOSZYKA
C++BuilderX to narzêdzie, które ma umo¿liwiæ tworzenie aplikacji w jêzyku C++
dla ró¿nych platform systemowych. Na wszystkich platformach wygl¹d jego interfejsu
jest identyczny, co bardzo u³atwia pracê. Narzêdzie to, poza mo¿liwo ci¹ tworzenia
aplikacji w sposób wizualny, udostêpnia programistom równie¿ rozbudowany edytor
kodu ród³owego oraz edytor HTML i XML. C++BuilderX staje siê coraz popularniejszym
rodowiskiem do tworzenia aplikacji wieloplatformowych.
„C++BuilderX. Æwiczenia” to ksi¹¿ka dla tych, którzy chc¹ poznaæ to narzêdzie
i nauczyæ siê podstaw programowania z u¿yciem C++BuilderX. Dziêki zawartym
w niej wiadomo ciom dowiesz siê, jak korzystaæ ze rodowiska wizualnego i jak
stworzyæ proste programy dla systemów Windows i Linux.
• Podstawy korzystania z C++BuilderX
• Podstawowe wiadomo ci o C++
• Aplikacje uruchamiane z poziomu konsoli
• Tworzenie aplikacji z interfejsem graficznym
• Korzystanie z ró¿nych kompilatorów
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Wstęp.................................................................................................................................................................5
Rozdział 1.
Pierwsze kroki w środowisku C++BuilderX...................................................................................7
Co jest potrzebne, aby korzystać z C++BuilderX?...................................................... 7
Pierwsze spotkanie z C++BuilderX............................................................................. 8
Menu i paski narzędzi.................................................................................................. 8
Okna .......................................................................................................................... 10
Podsumowanie........................................................................................................... 14
Rozdział 2. Aplikacje konsolowe ..............................................................................................................................15
Ogólna postać programu pisanego w C++.................................................................... 15
Dyrektywy ................................................................................................................. 17
Dyrektywa #include ............................................................................................. 17
Dyrektywa #define............................................................................................... 18
Dyrektywa #if — kompilacja warunkowa ........................................................... 19
Typy zmiennych ........................................................................................................ 19
Zmienne typu int .................................................................................................. 20
Zmienne typu float............................................................................................... 20
Typ double ........................................................................................................... 21
Typ char ............................................................................................................... 21
Modyfikatory typów ............................................................................................ 21
Rzutowanie (konwersja) typów............................................................................ 22
Typ wyliczeniowy................................................................................................ 23
Operatory................................................................................................................... 24
Zapis danych do plików i odczyt z nich za pomocą operatora << i >>................ 26
Wskaźniki .................................................................................................................. 28
Tablice ....................................................................................................................... 30
Operatory new i delete............................................................................................... 32
Instrukcje ................................................................................................................... 33
Instrukcje selekcji (wyboru)................................................................................. 34
Instrukcje iteracyjne............................................................................................. 37
Funkcje ...................................................................................................................... 42
Przecią anie funkcji ............................................................................................. 43
Niejednoznaczność .............................................................................................. 45
Przekazywanie argumentów przez wartość i adres .............................................. 46
Wskaźniki do funkcji ........................................................................................... 49
4
C++BuilderX. Ćwiczenia
Funkcja main()........................................................................................................... 50
Przekazywanie parametrów do funkcji main()..................................................... 50
Struktury i unie .......................................................................................................... 52
Struktury .............................................................................................................. 52
Unie...................................................................................................................... 54
Klasy.......................................................................................................................... 55
Konstruktory i destruktory ................................................................................... 57
Przeładowywanie konstruktorów ......................................................................... 59
Dziedziczenie....................................................................................................... 60
Przecią anie operatorów ...................................................................................... 64
Wyjątki ...................................................................................................................... 66
Podsumowanie........................................................................................................... 69
Rozdział 3. Aplikacje okienkowe ...............................................................................................................................71
Wstęp......................................................................................................................... 71
Pierwszy program GUI — funkcja WinMain() ............................................................. 72
Główne okno aplikacji............................................................................................... 76
Podstawy obsługi kontrolek....................................................................................... 81
Kalkulator .................................................................................................................. 84
Najprostszy edytor tekstu .......................................................................................... 88
Ulepszamy edytor ...................................................................................................... 93
Rysowanie w oknie aplikacji ..................................................................................... 96
Odtwarzanie dźwięku z plików .wav......................................................................... 99
Podsumowanie......................................................................................................... 103
Rozdział 4. Zarządzanie definicjami obiektów w C++BuilderX..............................................................105
Class browser........................................................................................................... 105
Okno Structure View ............................................................................................... 110
Podsumowanie......................................................................................................... 112
Rozdział 5. U ytkowanie kilku kompilatorów i projekty makefile........................................................113
Kompilacja warunkowa ........................................................................................... 115
Opcje linii komend .................................................................................................. 116
Konfiguracje budowy aplikacji................................................................................ 117
Konfiguracje Debug Build i Release Build........................................................ 117
Własne konfiguracje budowy aplikacji.............................................................. 118
Dodawanie własnych kompilatorów do środowiska................................................ 119
Budowanie aplikacji ze zbiorów makefile.................................................................. 123
Podsumowanie......................................................................................................... 125
Literatura.....................................................................................................................................................127
3.
Aplikacje okienkowe
Rozdział
Wstęp
C++BuilderX w przeciwieństwie do C++Buildera 6 nie zawiera elementów VCL. Jesteśmy
więc zmuszeni pisać programy z GUI przy u yciu WinAPI. Ma to swoje dobre strony,
poniewa pozwala na lepszą optymalizację kodu, ale jednocześnie zwiększa 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
mo liwości tworzenia menu i okien dialogowych w plikach zasobów. Edytor menu i okien
dialogowych pojawi się zapewne w drugiej wersji BuilderaX. Tak naprawdę mo liwe jest
pisanie programów GUI równie pod Linuksem, ale nale y się w tym celu posłu yć którymś
z narzędzi ułatwiających to zadanie. Takim narzędziem jest m.in. pakiet GTK++ dostępny
na licencji
open source.
Poniewa w drugiej wersji opcja projektów GUI prawdopodobnie będzie dostępna tak e
pod Linuksem, zdecydowałem się nie opisywać tu GTK++ ani innego tego typu pakietu, ale
poczekać na rozwiązanie zaproponowanie przez firmę Borland. Je eli będziesz, Czy-
telniku, zainteresowany środowiskiem GTK, to na stronie projektu (www.gtk.org) znaj-
dziesz obszerne opisy i tutoriale. Mo na się z nich nauczyć pracy z tą biblioteką od samych
podstaw do skomplikowanych aplikacji.
Mam nadzieję, e tak e dla Windows ewolucja programu pójdzie w kierunku jakiejś formy
biblioteki VCL, która jednak bardzo ułatwia pracę.
Na zakończenie wstępu kilka słów o ćwiczeniach w tym rozdziale. Poniewa aplikacje
w WinAPI są dosyć długie, nie jest mo liwe napisanie ich w jednym ćwiczeniu. Dlatego
ten rozdział podzielony jest na podrozdziały opisujące jedną aplikację (edytor, kalkula-
tor itd.). Wszystkie ćwiczenia w danym podrozdziale odnoszą się do tego samego kodu
źródłowego, aplikacja jest rozwijana w kolejnych podpunktach.
72
C++BuilderX. Ćwiczenia
Pierwszy program GUI — funkcja WinMain()
Ćwiczenie 3.1.
Aby stworzyć projekt, którego wynikiem ma być aplikacja okienkowa:
1.
Wybieramy z menu
File
opcję
New
i w oknie
Object Gallery
wybieramy
New GUI
Application.
Pojawi się kreator projektów GUI.
2.
Pierwszym krokiem jest wpisanie nazwy projektu i katalogu, w którym zostaną
utworzone pliki programu. W polu nazwy pliku wpiszmy
*CNNQ
, a następnie
kliknijmy
Next>.
3.
Teraz nale y wybrać platformę, na której będzie działać nasz projekt. Poniewa
będzie to aplikacja WinAPI, domyślnie wybrany jest Windows. Obowiązują tutaj
takie same zasady wyboru kompilatorów, jak dla programów wykonywanych
w oknie konsoli.
4.
Ostatnim krokiem jest wskazanie, jakie pliki mają wejść w skład projektu.
Domyślnie projekt zawiera jeden plik, nazwany
untitled1.cpp
i zawierający kod
programu z funkcją
9KP/CKP
. Jest to odpowiednik funkcji
OCKP
. Aby pik ten
został utworzony, musimy zaznaczyć okienko w kolumnie
Create
obok nazwy
pliku. Klikając na przycisk
Add,
mo emy otworzyć okno umo liwiające dołączenie
innych plików do projektu, podobnie jak to było w aplikacji konsolowej. Mogą
to być pliki nagłówkowe, z obrazami graficznymi czy binarne pliki zasobów.
Do odłączania plików od projektu słu y przycisk
Remove.
Do naszego pierwszego
projektu wystarczy plik z kodem programu, klikamy więc opisywane wy ej okienko
Create,
a następnie
Finish.
5.
Piki projektu zostaną utworzone w wybranym przez nas katalogu, a w oknie
Project
content
zobaczymy ich listę. Będą to: plik projektu
Hallo.cbx,
plik
untitled1.cpp
z kodem programu i plik
Hallo.exe,
który będzie zawierał gotowy program
po kompilacji.
Z czego składa się projekt GUI Windows?
Kliknijmy dwukrotnie plik
untitled1.cpp.
Jego zawartość pojawi się w oknie kodu źró-
dłowego, a w oknie widoku struktury zobaczymy plik nagłówkowy i funkcje istniejące
w programie. Na razie jedynym plikiem nagłówkowym jest
windows.h,
a jedyną funkcją
9KP/CKP
. Plik
windows.h
zawiera funkcje WinAPI. Funkcja
9KP/CKP
posiada parametry
inne ni funkcja
OCKP
dla aplikacji konsolowych i na niej się na chwilę zatrzymamy. Oto
postać
9KP/CKP
:
KPV #2+'064; 9KP/CKP *+056#0%' J+PUVCPEG *+056#0%' J2TGX+PUVCPEG .2564 NR%OF.KPG
KPV P%OF5JQY
Pierwszy parametr,
J+PUVCPEG
, jest uchwytem do aplikacji, której częścią jest dana funkcja
9KP/CKP
. Drugi parametr to uchwyt do poprzedniego uruchomienia danej aplikacji (je eli
dwie kopie aplikacji działają w tym samym momencie). W środowisku Windows ten
Zgłoś jeśli naruszono regulamin