okladka
C++Builder jest najnowszym systemem firmy Borland przeznaczonym do szybkiego tworzenia aplikacji. Łączy on w sobie uniwersalność języka C++ i ogromne możliwości systemu Delphi. Sprawdzona już technologia komponentów w połączeniu z niezwykłą efektywnością programowania wizualnego i siłą języka C++ umożliwi Ci błyskawiczne prototypowanie i budowę pełnowartościowych aplikacji przeznaczonych dla Windows.

Niniejsza książka poprowadzi Cię przez środowisko systemu C++Builder od podstaw, czyli kompendium wiedzy o C++, poprzez prezentację biblioteki VCL i jej komponentów, omówienie narzędzi systemu i technik programowania wizualnego, aż do zaawansowanych technik programowania baz danych, aplikacji internetowych, wykorzystania standardu OLE, komponentów OCX i ActiveX. Zdobyta wiedza umożliwi Ci wykonanie ogromnego skoku jakościowego - od tradycyjnych metod programowania do projektowania i programowania wizualnego.

Czytając tę książkę:

  • poznasz metody programowania wizualnego;
  • doświadczysz potęgi połączonych sił Delphi i C++;
  • zapoznasz się ze sposobami błyskawicznego prototypowania i budowy aplikacji;
  • zaznajomisz się z obszerną biblioteką komponentów VCL;
  • dowiesz się, jak efektywnie wykorzystać techniki obiektowe do skutecznego i szybkiego tworzenia aplikacji dla Windows 95 i NT;
  • nauczysz się, jak tworzyć i wykorzystywać biblioteki DLL, komponenty OCX i ActiveX;
  • poznasz nowoczesne metody obsługi baz danych;
  • opanujesz technologię tworzenia aplikacji internetowych.
Dołączona płytka CD-ROM zawiera próbną wersję systemu C++Builder z 60-dniową licencją. Oprócz kompletnego systemu, zawierającego bogatą bibliotekę komponentów używanych do tworzenia aplikacji, znajdziesz tam teksty źródłowe wszystkich przykładów cytowanych w książce.
Podziękowania
O autorach
Jeli już tu jeste...
Jak czytać tę książkę?
Kto powinien przeczytać tę książkę?
Na co zwracać uwagę?
Część I
Rozdział 1. Po kostki
  • Czym jest C++Builder?
  • IDE od pierwszego wejrzenia
  • Ahoj, przygodo!
  • Ahoj, przygodo - w wersji tekstowej
  • Wprowadzenie do C++
    • Narodziny języka
    • Zmienne
    • Typy danych
    • Operatory
    • Funkcje
    • Funkcja main()
    • Tablice
    • Tablice znaków
    • Funkcje operujące na łańcuchach
    • Tablice łańcuchów
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 2. Po kolana
  • Jeżeli...
  • W pętli
    • Pętla for
    • Pętla while
    • Pętla do-while
    • Instrukcja goto
    • Instrukcje break i continue
  • Instrukcja switch
  • Zasięg zmiennych
    • Zmienne zewnętrzne
  • Struktury
    • Tablice struktur
    • Pliki nagłówkowe i pliki źródłowe
    • Struktury w akcji
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 3. Po szyję
  • Oby żył w ciekawych czasach, czyli wskaźniki
    • Zmienne lokalne i dynamiczne
    • Obiekty dynamiczne a wskaźniki
    • Jak to się ma do naszego programu?
    • Dereferencja, czyli wyłuskanie
    • Do dzieła
  • Referencje
  • Przekazywanie parametrów przez wskaźnik i przez referencję
    • Modyfikator const
  • Operatory new i delete
    • Operator new
    • Operator delete
    • Rozwiązanie zagadki
    • To samo dla tablic, czyli new[ ] i delete[ ]
  • Co mogą funkcje w C++?
    • Przeciążanie funkcji
    • Parametry domylne funkcji
    • Funkcje składowe klas
    • Funkcje wstawiane
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 4. Po uszy, czyli o klasach i programowaniu obiektowym
  • Co to jest klasa?
  • Anatomia klasy
    • Dostęp do elementów klasy
    • Konstruktory
    • Destruktory
    • Pola
    • Funkcje składowe
    • Wskaźnik this
    • A teraz przykład
  • Dziedziczenie
    • Dziedziczenie wielokrotne
  • Wprowadzenie do operacji wejścia-wyjścia
    • Odczytujemy dane
    • Zapisujemy dane
    • Tryby otwarcia plików
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 5. Biblioteki klas i komponenty
  • Po co mi biblioteki
    • Co można zyskać?
    • Jakim kosztem?
    • Biblioteki jako wzór projektowania i programowania obiektowego
  • Wojny bibliotek
    • Biblioteka Object Windows
    • Biblioteka Microsoft Foundation Classes
    • Kogo więc wybrać?
  • Nowa twarz w towarzystwie: biblioteka Visual Component Library
    • Komponenty
    • Właciwości, metody i zdarzenia
  • C++Builder a biblioteka VCL
    • VCL dla praktyków C++
  • VCL pod lupą
    • Klasy implementujące formularz i aplikację
    • Klasy komponentowe
    • To jeszcze nie koniec
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 6. Projekty i formularze
  • Projekty w systemie C++Builder
    • Pliki wykorzystywane w projektach
    • Moduły źródłowe
  • Menu główne i paleta narzędzi
  • Paleta komponentów i jak jej używać
    • Jak umiecić na formularzu kilka kopii komponentu?
    • Jak wyrodkować komponent na formularzu?
    • Menu lokalne palety komponentów
    • Nawigacja w palecie komponentów
  • Wracamy do rzeczy, czyli aplikacja wielomodułowa
    • Kompilacja, konsolidacja i budowa aplikacji
  • Kompilacja innych programów w C++
  • O formularzach nieco więcej
    • Formularz okna głównego
    • Formularze pól dialogowych
    • Okienka dodatkowe a pola dialogowe
    • Aplikacje wielodokumentowe (MDI)
    • Podstawowe właciwoci formularzy
    • Metody formularza
    • Zdarzenia obsługiwane przez formularze
  • Inspektor obiektów
    • Lista komponentów
    • Karta właciwości
    • Karta zdarzeń
  • Przykładowa aplikacja MDI
    • Krok 1: projektujemy okno główne
    • Krok 2: programujemy funkcje otwarcia i zapisania pliku
    • Krok 3: programujemy obsługę okienek potomnych
    • Krok 4: projektujemy formularz okienka potomnego
    • Krok 5: projektujemy wizytówkę
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 7. Edytor formularzy i edytor menu
  • Edytor formularzy i jego wykorzystanie
    • Menu lokalne edytora formularzy
    • Rozmieszczanie komponentów na formularzu
    • Siatka edytora formularzy
    • Wybieranie komponentów
    • Przesuwanie komponentów
    • Zabezpieczenie komponentów przed przesunięciem i zmianą rozmiarów
    • Zmiana porządku głębokoci komponentów oraz ich kopiowanie, wycinanie i wklejanie
    • Zmiana wielkoci komponentów
    • Wyrównywanie komponentów
  • Czas na praktykę
    • Ustalanie porządku wyboru komponentów
  • Prosimy o menu!
    • Tworzymy menu główne
    • Nieco programowania
    • Menu lokalne
    • Tworzenie i zapamiętywanie szablonów menu
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Podsumowanie
Część II
Rozdział 8. Komponenty biblioteki VCL
  • Co już wiemy?
    • Komponenty widzialne i niewidzialne
  • Właciwość Name
  • Ważniejsze wspólne właciwości komponentów
    • Właciwość Align
    • Kolorowy zawrót głowy
    • Kursory
    • Właciwość Enabled
    • Właciwość Font
    • Podpowiedzi
    • Właciwoci ParentColor, ParentCtl3D, ParentFont i ParentShowHint
    • Właciwoć Tag
    • Inne właciwości komponentów
  • Podstawowe metody komponentów
  • Podstawowe zdarzenia obsługiwane przez komponenty
  • Klasa TStrings
  • Standardowe elementy sterujące Windows
    • Komponenty edycyjne
    • Listy
    • Przyciski
    • Etykiety
    • Paski przesuwu
    • Panele
    • I wiele innych...
  • Standardowe pola dialogowe
    • Metoda Execute()
    • Pola dialogowe otwarcia i zapisania pliku
    • Pole dialogowe wyboru koloru
    • Pole dialogowe wyboru czcionki
    • Pola dialogowe wyszukiwania i zamiany
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 9. Budowa aplikacji w systemie C++Builder
  • Składnica obiektów i jej wykorzystanie
    • Dostęp do zawartoci składnicy obiektów
    • Wykorzystanie zawartoci składnicy obiektów
    • Tworzenie elementów aplikacji z użyciem składnicy obiektów
    • Dodawanie obiektów do składnicy
    • Dodawanie projektów do składnicy
    • Zarządzanie zawartocią składnicy
  • Budowa formularzy i aplikacji z użyciem kreatorów
    • Kreator dialogów
    • Kreator aplikacji
  • Definiowanie funkcji składowych i pól klasy
    • Deklarowanie klas w systemie C++Builder
    • Dodanie funkcji składowej do definicji klasy
    • Dodanie pola do definicji klasy
    • Usuwanie kodu wygenerowanego przez system
  • Wykorzystanie zasobów
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 10. O projektach nieco więcej
  • Bez projektu ani rusz
  • Korzystanie z menedżera projektów
    • Okienko menedżera projektów
    • Pasek narzędzi menedżera projektów
    • Menu lokalne menedżera projektów
  • Konfiguracja projektu
    • Karta Forms
    • Karta Application
    • Karta C++
    • Karta Pascal
    • Karta Linker
    • Karta Directories/Conditionals
  • Edytor kodu
    • Podstawowe operacje na tekcie źródłowym
    • Zaawansowane funkcje edytora
    • Menu lokalne edytora kodu
    • Zmiana konfiguracji edytora
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 11. Debugger
  • Po co używać debuggera?
  • Polecenia debuggera
  • Punkty wstrzymania
    • Ustawianie i usuwanie punktów wstrzymania
    • Lista punktów wstrzymania
    • Bezwarunkowe punkty wstrzymania
    • Warunkowe punkty wstrzymania
    • Polecenie Run to Cursor
  • Śledzenie zmiennych
    • Menu lokalne listy zmiennych śledzonych
    • Pole dialogowe ustawień śledzenia
    • Blokowanie i odblokowywanie śledzenia zmiennych
    • Dodawanie zmiennych do listy zmiennych śledzonych
    • Korzystanie z listy zmiennych śledzonych
  • Inspektor danych
  • Pozostałe narzędzia uruchomieniowe
    • Podglądanie i modyfikacja zmiennych
    • Stos wywołań funkcji
    • Podgląd rejestrów procesora
    • Lokalizacja adresów w kodzie źródłowym
  • Praca krokowa
  • Techniki uruchamiania programów
    • Makrodefinicje diagnostyczne TRACE i WARN
    • Naruszenia ochrony dostępu do pamięci
    • Wskazówki i rady
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 12. Programy narzędziowe i konfiguracja IDE
  • Edytor graficzny
    • Kolor tła i atramentu
    • Funkcje graficzne edytora
    • Powiększanie rysunku
    • Dobór szerokoci linii i kształtu pędzla
    • Projektowanie map bitowych
    • Projektowanie ikon
    • Projektowanie kursorów
    • Menu lokalne edytora graficznego
    • Tworzenie plików zasobów
  • Agent WinSight, czyli szpiegostwo w Windows
    • Wymiana komunikatów w systemie Windows
    • Panel listy okienek
    • Panel komunikatów
    • Jak ledzić okienka?
    • Filtrowanie komunikatów
    • Pozostałe funkcje programu WinSight
  • DOS-owe programy narzędziowe
    • Program grep
    • Program implib
    • Program touch
    • Program tdump
  • Konfiguracja menu narzędzi
    • Pole dialogowe konfiguracji narzędzi
  • Konfiguracja rodowiska systemu
    • Karta Preferences
    • Karta Library
    • Karta Palette
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 13. Więcej, lepiej, szybciej
  • Elementy dekoracyjne
    • Paski narzędzi
    • Paski statusowe
    • Palety narzędzi
  • Udostępnianie poleceń
    • Kilka luźnych uwag
    • Na kłopoty - OnIdle
    • No to do roboty!
    • Parę słów na zakończenie
  • Drukujemy
    • Pola dialogowe obsługujące drukowanie
    • Drukowanie łatwe...
    • ...i trudniejsze
  • Kursory i ich wykorzystanie
    • Nieco teorii
    • Kursory standardowe
    • Kursory definiowane przez użytkownika
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 14. Zaawansowane techniki programowania
  • Programowanie systemu pomocy aplikacji
    • Tworzymy plik pomocy
    • Identyfikatory kontekstu i właciwość HelpContext
    • Dołączamy plik pomocy do aplikacji
    • Definiowanie identyfikatorów kontekstu w postaci stałych symbolicznych
    • System pomocy w praktyce
  • Obsługa wyjątków
    • Składnia obsługi wyjątków
    • Działanie obsługi wyjątków
    • Generacja wyjątków
    • Przechwytywanie wyjątków
    • Przechwytywanie nieobsłużonych wyjątków na poziomie aplikacji
    • Obsługa wyjątków a uruchamianie programu
  • Baza rejestracyjna systemu i jej wykorzystanie
    • Klucze
    • Typy danych przechowywanych w rejestrze
    • Klasa TRegistry
    • Wykorzystanie klasy TRegistry do operacji na rejestrze
  • Obsługa komunikatów
    • Kilka słów teorii
    • Wysyłanie i ogłaszanie komunikatów
    • Obsługa zdarzeń
    • Obsługa komunikatów w kodzie użytkownika
    • Komunikaty użytkownika
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Podsumowanie
Część III
Rozdział 15. Elementy technologii OLE
  • Automatyzacja OLE - Autosrv i Autocon
    • Tworzymy własny serwer OLE
  • Pojemniki OLE - Olemdi i Olesdi
    • Aplikacja Olemdi od rodka
  • Elementy sterujące OCX
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 16. Bazy danych w systemie C++Builder
  • Terminologia
  • Podstawy architektury baz danych w systemie C++Builder
  • Komponenty "bazodanowe" w systemie C++Builder
    • TSession
    • TDatabase
    • TTable
    • TQuery
    • TStoredProc
    • TBatchMove
    • TDataSource
    • TUpdateSQL
    • TField
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 17. Komunikacja z bazą danych poprzez formularze
  • Budujemy prosty formularz
    • Kreator formatek i jego wykorzystanie
    • Nasz formularz od rodka
    • Ten sam formularz na piechotę
    • Start!
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 18. Aplikacje obsługi baz danych
  • Komponent Database i jego wykorzystanie
  • Aliasy BDE
  • Moduły danych
  • Konstrukcja formularza obsługującego kilka tabel
  • Raporty
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 19. Budowa i wykorzystanie bibliotek DLL
  • Nieco podstaw
    • Czym jest biblioteka DLL?
    • Po co mi biblioteki DLL?
  • Korzystanie z zawartości bibliotek DLL
    • Ładowanie bibliotek DLL do pamięci
    • Wywoływanie funkcji z bibliotek DLL
  • Utworzenie biblioteki DLL
    • Eksportowanie i importowanie funkcji i klas
    • Tajemnicze makro DLL_EXP
    • Tworzymy plik DLL za pomocą składnicy obiektów
    • Tworzymy plik biblioteki importowej
  • Budujemy aplikację wykorzystującą bibliotekę DLL
    • Dołączamy plik nagłówkowy biblioteki do kodu źródłowego
    • Dołączamy bibliotekę importową do projektu
  • Formularze w bibliotekach DLL
    • Wywołanie formularza z biblioteki przez aplikację napisaną w systemie C++Builder
    • Wywołanie formularza z biblioteki przez aplikację utworzoną za pomocą innego kompilatora
  • Jak umiecić zasoby w pliku DLL?
    • Tworzymy bibliotekę zasobów
    • Wykorzystujemy bibliotekę zasobów
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 20. Budujemy własne komponenty
  • Kilka słów wprowadzenia
    • Modyfikacja już istniejącego komponentu
    • Tworzenie komponentu od podstaw
    • Rejestracja komponentu
  • Kreator komponentów
    • Tworzymy komponent
  • Definiowanie właciwości komponentu
    • Pola klasy skojarzone z właciwościami
    • Metody zapisu
    • Metody odczytu
    • Bezporedni dostęp do pól właściwoci
    • Właściwoci tylko do odczytu i tylko do zapisu
    • Wartości domylne właściwoci
    • Właściwoci publikowane i niepublikowane
  • Definiowanie metod komponentu
    • Kategorie dostępu do zawartoci komponentów
  • Przykładowy komponent FlashingLabel
    • Wybiegamy nieco w przyszłoć
  • Testowanie komponentu
  • Dodanie komponentu do biblioteki
    • Pole dialogowe instalacji komponentów
    • Instalujemy komponent FlashingLabel
    • Definiujemy ikonę komponentu
  • Definiowanie zdarzeń komponentów
    • Podstawowe wiadomości o zdarzeniach
    • Etapy definiowania zdarzenia
    • Redefinicja zdarzeń klasy bazowej
  • Nowe oblicze komponentu FlashingLabel
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Rozdział 21. C++Builder a Delphi
  • Różnice podstawowe
  • Różnice pomniejsze
    • Pliki projektów
    • Biblioteka komponentów
    • Wielojęzycznoć
    • Pliki nagłówkowe
  • Elementy Delphi emulowane w systemie C++Builder
    • Modyfikacje kompilatora
    • Nowe klasy
    • Obsługa komponentów Delphi
    • Tablice otwarte
    • Środowisko
    • Obsługa baz danych
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Podsumowanie
Dodatki
Dodatek A. Tworzenie aplikacji internetowych
  • Wprowadzenie
  • Komponenty internetowe w systemie C++Builder
  • Budujemy przeglądarkę WWW
  • Ożywiamy nasz formularz
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Dodatek B. Rozszerzenia standardu w systemie C++Builder
  • Nieco historii
  • Spory o rozszerzenia języka
  • Nowe słowa kluczowe
    • __automated
    • __classid
    • __closure
    • __declspec
    • __int8, __int16, __int32 i __int64
    • __property
    • __published
  • Podsumowanie
  • Warsztat
    • Pytania i odpowiedzi
    • Quiz
    • Zadania
Dodatek C. Odpowiedzi na pytania testowe
  • Rozdział 1
  • Rozdział 2
  • Rozdział 3
  • Rozdział 4
  • Rozdział 5
  • Rozdział 6
  • Rozdział 7
  • Rozdział 8
  • Rozdział 9
  • Rozdział 10
  • Rozdział 11
  • Rozdział 12
  • Rozdział 13
  • Rozdział 14
  • Rozdział 15
  • Rozdział 16
  • Rozdział 17
  • Rozdział 18
  • Rozdział 19
  • Rozdział 20
  • Rozdział 21
  • Dodatek A
  • Dodatek B
Skorowidz