
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.
PodziękowaniaO 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
- 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
- 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
- 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
- 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
- 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
- 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
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
- 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
- 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
- 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
- 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
- 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
- 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
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
- 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
- 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
- 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
- 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
- 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
- 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
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
- 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
- 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