C++ Builder Autor: Kent Reisdorph Tłumaczenie: Tomasz M. Sadowski 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. C++ Builder - spis treści: -------------------------- 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ły od 1 do 21 Skorowidz Wydawnictwo Helion, marzec 1998 ISBN: 83-7197-018-8 Format: B5, 804 strony Zawiera CD-ROM Więcej informacji: http://www.helion.com.pl/ksiazki/cbuild.htm