C++ Builder 5. Vademecum profesjonalisty. Tom II - Helion
Tytuł oryginału: C++ Builder 5 Developer
TÅ‚umaczenie: zbiorowe
ISBN: 83-7197-586-4
stron: 776, Format: B5, okładka: twarda
Data wydania: 2002-05-16
Księgarnia: Helion
Cena książki: 85,00 zł
Ta długo oczekiwana książka, omawiająca piątą już wersję C++Buildera, nie jest -- jak w przypadku wielu innych pozycji poświęconych narzędziom programistycznym -- typową prezentacją możliwości środowiska projektowego i języka C++. Poszczególne jej rozdziały były bowiem tworzone nie przez twórców, ale przez użytkowników C++Buildera -- dzięki czemu całość nabiera niecodzienny charakteru kompendium wiedzy praktycznej, bazującej na niejednokrotnie wieloletnich doświadczeniach programistycznych. Zawartość tomu drugiego stanowi naturalne uzupełnienie treści tomu pierwszego, lecz dzięki specyficznemu charakterowi książki tom ten jest samodzielną, pełnowartościową pozycją, od której można rozpocząć lekturę całości.
Książka ta obejmuje szeroki zakres zagadnień związanych z zaawansowanymi możliwościami piątej wersji C++Buildera. W kolejnych rozdziałach znajdują się omówienia i przykłady prezentujące wykorzystanie komponentów Interbase Express, ADOExpress, InternetExpress i wielu innych. Dzięki tej książce wzbogacisz swoją wiedzę o tworzeniu aplikacji z wykorzystaniem architektur CORBA, COM, COM+. Zaawansowani programiści odsłonią przed Tobą tajniki programowania rozproszonych aplikacji internetowych, biurowych i bazodanowych.
- Wyeliminuj błędy powodujące niekontrolowane wycieki pamięci oraz przechwytuj szczegółowe informacje o błędach i wyjątkach występujących w czasie działania programu
- Rozszerz swoje umiejętności projektowania i implementowania wielowarstwowych aplikacji bazodanowych opartych na technologii MIDAS
- Wykorzystaj w swoich programach bogate możliwości aplikacji pakietu Microsoft Office
- Poznaj techniki programowania rozproszonego z wykorzystaniem architektur COM, COM+ i CORBA
- Wzbogać tworzone strony WWW o obiekty i formularze oparte na technologii ActiveX
- Wykorzystaj w pełni możliwości prezentacji danych i drukowania dokumentów, oferowane przez środowisko graficzne systemu Windows
- Profesjonalnie projektuj i dystrybuuj własne zestawy komponentów.
Spis treści
C++ Builder 5. Vademecum profesjonalisty. Tom II -- spis treści
O Autorach (19)
Wprowadzenie (29)
Przedmowa do wydania polskiego (33)
Rozdział 1. Projekty i środowisko zintegrowane programu C++Builder (37)
- Wprowadzenie do projektów C++Buildera (37)
- Pliki używane w projektach C++Buildera (38)
- Menedżer projektów (41)
- Korzystanie z repozytorium obiektów (42)
- Wstawianie elementów do repozytorium obiektów (42)
- Wykorzystanie elementów z repozytorium obiektów (46)
- Współużytkowanie elementów w obrębie projektu (46)
- Dostosowywanie repozytorium obiektów (47)
- Tworzenie i dodawanie kreatora do repozytorium obiektów (47)
- Pakiety - podstawy i zastosowanie (50)
- Uwagi na temat korzystania z pakietów (53)
- Pakiety wykonywalne programu C++Builder (54)
- Program narzędziowy tdump (56)
- Nowe cechy środowiska zintegrowanego C++Builder 5 (56)
- Kategorie właściwości w inspektorze obiektów (56)
- Obrazki w listach rozwijanych inspektora obiektów (57)
- Format XML pliku projektu (61)
- Formularze - zapis w formacie tekstowym (62)
- Opcje na poziomie węzłów (64)
- Nowa lista zadań (67)
- Kreator aplikacji konsolowych (70)
- Podsumowanie (73)
Rozdział 2. Zaawansowane programowanie w C++Builderze (75)
- Wprowadzenie do SCL (Standard C++ Library) i wzorców (75)
- Wzorce języka C++ (76)
- Właściwości biblioteki Standard C++ Library (79)
- Potyczki z kontenerami i iteratorami (80)
- Zastosowanie standardowych algorytmów (87)
- Biblioteka SCL - wnioski (88)
- Wskaźniki typu smart i kontenery typu strong (89)
- Sterta kontra stos (89)
- Wskaźniki (89)
- Kontenery typu strong (Strong Containers) (93)
- Pułapki (95)
- Wskaźniki smart i kontenery strong - podsumowanie (96)
- Implementacja zaawansowanej obsługi wyjątków (Advanced Exception Handler) (96)
- PrzeglÄ…d strategii (97)
- Analiza korzyści (97)
- Wymiana domyślnej procedury obsługi wyjątków (98)
- Dodawanie do klasy informacji specyficznych dla projektu (99)
- Kod źródłowy procedury obsługi wyjątków (99)
- Zaawansowana obsługa wyjątków - podsumowanie (115)
- Tworzenie aplikacji wielowÄ…tkowych (115)
- Zrozumieć wielozadaniowość... (115)
- Zrozumieć wielowątkowość... (116)
- Tworzenie wątku za pomocą wywołań API (116)
- Obiekt TThread (119)
- Główny wątek VCL (123)
- Ustalanie priorytetów (125)
- Pomiar czasu wykonania wątków (128)
- Synchronizacja wątków (129)
- Wprowadzenie do wzorców projektowych (133)
- Powtarzalna natura wzorców (133)
- Wzorce w projektowaniu oprogramowania (134)
- Wzorce projektowe jako źródło terminologii (134)
- Format wzorca projektowego (135)
- Klasyfikacja wzorców projektowych (136)
- Wzorce projektowe - wnioski (137)
- Podsumowanie (138)
Rozdział 3. Tworzenie własnych komponentów - ciąg dalszy (139)
- Zagadnienia dotyczące tworzenia własnych komponentów (139)
- Wyświetlanie złożonych właściwości publikowanych w oknie Object Inspectora (139)
- Przestrzeń nazw w liście parametrów zdarzenia (140)
- Określanie listy parametrów zdarzenia (141)
- Przykrywanie funkcji dynamicznych (146)
- Własne komponenty - obsługa komunikatów (147)
- Funkcje zwrotne Windows w komponentach (161)
- Wybór typu bazowego właściwości (169)
- Udostępnianie komponentu w czasie projektowania i w czasie działania aplikacji (174)
- Ramki (176)
- Ramka - co to jest? (177)
- Klasa TCustomFrame (178)
- Praca z ramkami w czasie projektowania (178)
- Praca z ramkami w czasie działania aplikacji (179)
- Tworzenie klasy wyprowadzonej z TFrame (180)
- Klasy pochodne klasy wyprowadzonej z TFrame (183)
- Wielokrotne wykorzystanie ramek (184)
- Ramki - wnioski (185)
- Dystrybucja komponentów (186)
- Umieszczanie komponentów w pakiecie (186)
- Lokalizacja plików pakietu (191)
- Nazwy stosowane w pakietach (192)
- Nazwy komponentów (193)
- Dystrybucja pakietu projektowego (194)
- Komponenty dla różnych wersji C++Buildera (196)
- Tworzenie ikonek dla palety komponentów (199)
- Tworzenie komponentów przeznaczonych do dystrybucji - wskazówki (199)
- Inne zagadnienia związane z dystrybucją komponentów (200)
- Podsumowanie (201)
Rozdział 4. Programowanie baz danych (203)
- Modele architektur aplikacji baz danych (203)
- Mechanizm Borland Database Engine (204)
- Aplikacja macierzysta BDE (jednowarstwowa) (204)
- Architektura klient-serwer (BDE i SQL Links) (205)
- Aplikacje rozproszone (wielowarstwowe) (206)
- Metody dostępu do danych (207)
- Komponenty macierzyste (207)
- Duet ODBC i BDE (208)
- ODBC i komponenty macierzyste (209)
- ADO (ActiveX Data Objects) (210)
- Wbudowany SQL (210)
- Macierzysty interfejs API (211)
- Architektury aplikacji baz danych - wnioski (212)
- Inne źródła informacji o architekturach aplikacji baz danych (212)
- Język SQL (213)
- Tabele i indeksy (213)
- Parametry (214)
- Zapytania insert, update, delete i select (215)
- Funkcje agregujÄ…ce (217)
- Dodatkowe informacje o języku SQL (217)
- Komponenty ADO Express (217)
- ADO a BDE (218)
- Przegląd komponentów ADO (220)
- Połączenie z bazą danych (221)
- Dostęp do zbiorów danych (222)
- TADOTable (223)
- Dostęp do zbiorów danych (226)
- ZarzÄ…dzanie transakcjami (227)
- Zdarzenia komponentów ADO (227)
- Tworzenie uniwersalnej aplikacji bazy danych (228)
- Optymalizacja wydajności (230)
- Obsługa błędów (231)
- Aplikacje wielowarstwowe a ADO (232)
- Komponenty ADO Express - podsumowanie (232)
- Architektury gromadzenia danych (232)
- Decyzje wstępne (233)
- Pobieranie danych z wielu źródeł (234)
- Narzędzie Data Module Designer (236)
- Moduł danych (236)
- Zalety stosowania modułu danych (237)
- Moduły danych w aplikacjach, bibliotekach DLL i obiektach rozproszonych (238)
- Zawartość modułu danych (239)
- Dodawanie właściwości do modułu danych (240)
- Obsługa modułu danych (240)
- Dla zaawansowanych (243)
- Dziedziczenie klasy formularza w modułach danych (243)
- Obsługa nierównego dziedziczenia klas formularzy i modułów danych (244)
- Moduł danych niezależny od interfejsu użytkownika (245)
- Moduł danych a komponenty szkieletowe i komponenty specyficzne dla aplikacji (245)
- Moduły danych w pakietach (248)
- Moduły danych - podsumowanie (248)
- InterBase Express (248)
- Schemat bazy danych Bug Trackera (249)
- Reguły bazy danych (251)
- Generatory, wyzwalacze i procedury składowane (251)
- Implementacja programu Bug Tracker (253)
- Program Bug Tracker w akcji (261)
- Podsumowanie (262)
Rozdział 5. Krok naprzód - COM+ (263)
- COM+ - wprowadzenie (264)
- Aplikacje COM+ (264)
- Katalog COM+ (265)
- Usługi COM+ (265)
- Zdarzenia słabo skojarzone (265)
- Transakcje (267)
- Synchronizacja (270)
- Zabezpieczenia (270)
- Komponenty w kolejce (271)
- Równoważenie obciążenia (271)
- Programowanie i zastosowania zdarzeń COM+ (271)
- Tworzenie obiektu zdarzenia COM+ (271)
- Instalacja zdarzenia w aplikacji COM+ (273)
- Tworzenie obiektu wydawcy (277)
- Tworzenie obiektów subskrybentów (278)
- Konfiguracja subskrybentów (282)
- Tworzenie subskrypcji trwałej (283)
- Tworzenie subskrypcji tymczasowej (286)
- Programowanie i zastosowania obiektów transakcyjnych COM+ (295)
- Tworzenie obiektów transakcyjnych w warstwie biznesowej aplikacji (296)
- Programowanie menedżera wyrównywania zasobów (CRM) (305)
- Aplikacja klienta (316)
- Podsumowanie (317)
Rozdział 6. Rozproszone aplikacje wielowarstwowe - MIDAS 3 (319)
- Wprowadzenie do technologii MIDAS (319)
- Aplikacje klientów i serwerów MIDAS (321)
- Tworzenie serwera MIDAS (322)
- Rejestracja serwera MIDAS (326)
- Tworzenie klienta MIDAS (327)
- Model aktówki (330)
- Metoda ApplyUpdates() (333)
- Implementacja obsługi błędów (334)
- Demonstracja obsługi błędów aktualizacji rekordów (337)
- Zdalny dostęp do serwera (338)
- Tworzenie serwera MIDAS w modelu nadrzędny-szczegółowy (339)
- Eksport relacji nadrzędny-szczegółowy (342)
- Tworzenie klienta MIDAS w modelu nadrzędny-szczegółowy (343)
- Tabele zagnieżdżone (343)
- MIDAS - "wąskie gardła" systemu (346)
- Rozszerzenia MIDAS 3 (348)
- Komponent TDataSetProvider (349)
- Porównanie interfejsów IProvider i IAppServer (349)
- Bezstanowy obiekt pośrednika danych (349)
- Zastosowania komponentów InternetExpress (354)
- Komponent TWebConnection (357)
- Pula obiektów (358)
- Połączenia oparte na gniazdach (TCP/IP) (360)
- Pośrednik obiektów (363)
- Instalacja (364)
- Podsumowanie (365)
Rozdział 7. Aplikacje rozproszone w CORBA (367)
- Wprowadzenie do CORBA (367)
- Jak działa CORBA? (368)
- Wywołania statyczne i dynamiczne (369)
- Na każde żądanie (369)
- PÅ‚asko lub hierarchicznie (369)
- Klient, serwer - kto jest kim? (370)
- Object Request Broker (370)
- Podstawowy adapter obiektu (370)
- Przenośny adapter obiektu (370)
- CORBA kontra COM (370)
- Komponenty VisiBrokera (371)
- Smart agent (371)
- Demon aktywacji obiektu OAD (371)
- Konsola (372)
- Język definicji interfejsu IDL (372)
- SÅ‚owo kluczowe interface (373)
- SÅ‚owo kluczowe attribute (373)
- Metody (373)
- Definicje typów (374)
- WyjÄ…tki (374)
- Dziedziczenie (375)
- Moduły (375)
- Co nowego w C++Builderze 5? (375)
- Obsługa CORBA w C++Builderze (376)
- Opcje środowiskowe (377)
- Opcje programu uruchomieniowego (377)
- Opcje projektu (378)
- Kreator serwera CORBA (379)
- Kreator klienta CORBA (380)
- Kreator pliku IDL (380)
- Kreator implementacji obiektu CORBA (381)
- Okno aktualizacji projektu (381)
- Kreator użycia obiektu CORBA (382)
- Różnice pomiędzy wersją czwartą a piątą C++Buildera (383)
- Modele implementacyjne (384)
- Dziedziczenie proste (385)
- Dziedziczenie z implementacjÄ… wirtualnÄ… (385)
- Model z delegacjÄ… (zwiÄ…zek) (386)
- CORBA dla "zamożnych inaczej" (386)
- Podsumowanie (386)
Rozdział 8. Integracja aplikacji z pakietem Microsoft Office (387)
- Integracja aplikacji z Microsoft Office - wprowadzenie (387)
- Jak integrować? (388)
- Obiekt TOleContainer (388)
- Automatyzacja OLE (390)
- Obiekty automatyzacji i obiekty typu Variant (392)
- Automatyzacja w ochronie przed wirusami makr (394)
- Język Word Basic (394)
- Integracja aplikacji z programem Word (394)
- Kolekcje (395)
- Obiekt aplikacji (Application Object) (395)
- Praca z dokumentami (396)
- Pobieranie tekstu z dokumentu Worda (399)
- Umieszczanie obiektów w dokumentach Worda (402)
- Integracja z programem Excel (405)
- Obiekt aplikacji (Application Object) (405)
- Praca ze skoroszytami (405)
- Modyfikacja komórek arkuszy Excela (408)
- Odczytywanie komórek arkuszy Excela (410)
- Komponenty palety Servers C++Buildera 5 (410)
- Komponenty WordApplication i WordDocument (411)
- Skorowidz - wersja druga (411)
- Biblioteka ATL i komponenty OleServer - wnioski (416)
- Co dalej? (416)
- Word (416)
- Excel (417)
- Pozostałe aplikacje pakietu Office (417)
- Podsumowanie (419)
Rozdział 9. Zastosowania technologii ActiveX (421)
- Podstawy aktywnych obiektów serwera (421)
- Tworzenie obiektów Request i Response za pomocą kreatora Active Server Object Wizard (422)
- Kolejne wbudowane obiekty ASP: Session, Server i Application (429)
- Obiekty ASP i obsługa WebBrokera (430)
- Aktualizacje aktywnych obiektów serwera (431)
- Diagnostyka aktywnych obiektów serwera (432)
- Aktywne formularze - wprowadzenie (433)
- Tworzenie aktywnego formularza (433)
- Instalacja aktywnego formularza w celu wyświetlenia w oknie przeglądarki Internet Explorer (435)
- Opcje instalacji aktywnego formularza (436)
- Nawiązywanie połączenia z aktywnym formularzem (438)
- Aktywne formularze reprezentujÄ…ce dane (440)
- Pliki CAB i pakiety (443)
- Aktualizacje aktywnego formularza (443)
- Katalogi OCCACHE i Downloaded Program Files (444)
- Aktywny formularz jako klient architektury MIDAS (445)
- Aktywne formularze w Delphi (447)
- Tworzenie szablonów komponentów za pomocą aktywnych formularzy (448)
- Programowanie powłoki systemowej (shell) (450)
- Powłoka - podstawy (450)
- Odczytywanie zawartości folderu (453)
- Przekazywanie obiektów powłoki (455)
- Podsumowanie (460)
Rozdział 10. Prezentacja danych w C++Builderze (461)
- Prezentacja raportów (461)
- Na czym polega wartość raportu? (461)
- Tworzenie raportów z użyciem komponentów QuickReport (462)
- Jak działa przeglądarka raportów? (463)
- Podsumowanie (472)
- Drukowanie tekstu i grafiki (472)
- Drukowanie tekstu (472)
- Drukowanie grafiki (480)
- Zaawansowane techniki drukowania (485)
- Określenie rozdzielczości drukarki (485)
- Określenie rozmiarów pola wydruku (485)
- Określenie fizycznych rozmiarów strony (486)
- Określenie możliwości graficznych drukarki (486)
- Obracanie czcionki wydruku (487)
- Manipulowanie ustawieniami drukarki (488)
- Odczytanie nazwy drukarki domyślnej (489)
- Wybranie drukarki domyślnej (490)
- Inicjalizacja obiektu Printer() (493)
- Dostęp do struktury DEVMODE za pomocą klasy TPrinter (493)
- Wykorzystanie struktury PRINTER_INFO_2 (494)
- Pozostałe funkcje związane z podawaniem papieru (499)
- Obsługa zadań wydruku (506)
- Przechwycenie klawisza PrintScreen (508)
- Drukowanie formularza (510)
- Utworzenie podglÄ…du wydruku (510)
- Konwersje współrzędnych związane z drukowaniem (510)
- Kilka dodatkowych wskazówek (512)
- Komponent TChart i tworzenie wykresów (513)
- Pierwsze kroki (514)
- Modyfikowanie postaci wykresu w trakcie działania programu (515)
- Wymiana danych z wykresem (516)
- Dynamiczne tworzenie wykresów (518)
- Drukowanie wykresów (518)
- Komponent TeeChart Pro i jego możliwości (520)
- Podsumowanie (520)
Rozdział 11. Dystrybucja oprogramowania (523)
- Wersje międzynarodowe aplikacji i lokalizacja (523)
- Omówienie problemu tworzenia wersji międzynarodowych (523)
- Aplikacja Localize (524)
- Warto zapamiętać (529)
- Resource DLL Wizard (530)
- Zasada działania (530)
- Tworzenie biblioteki zasobów DLL (531)
- Testowanie (533)
- Inne dołączane pliki i programy (534)
- Pliki aplikacji (534)
- Etapy dystrybucji (537)
- Ochrona praw autorskich i licencjonowanie oprogramowania (537)
- Ochrona praw autorskich (538)
- Umowa licencyjna (539)
- Zabezpieczanie oprogramowania (540)
- Zabezpieczanie aplikacji (540)
- Zabezpieczanie aplikacji z użyciem komponentów niezależnych firm (541)
- Zabezpieczanie aplikacji za pomocą komponentów innego typu (542)
- Zabezpieczanie oprogramowania - uwagi końcowe (543)
- Shareware (543)
- Zabezpieczanie oprogramowania shareware (544)
- Realizacja zabezpieczeń typu shareware (546)
- Metody zabezpieczeń shareware w skrócie (546)
- Dystrybucja i marketing za pośrednictwem Internetu (547)
- Witryny WWW (547)
- Pomoc techniczna (547)
- Reklama (548)
- Darmowe banery reklamowe (549)
- Akceptowanie kart kredytowych i dostarczanie kodów odblokowujących (550)
- Wskazówki i porady dotyczące marketingu w Internecie (551)
- Podsumowanie (552)
Rozdział 12. Sztuczki, uwagi i porady (553)
- Symulowanie klawisza tabulacji klawiszem Enter (553)
- RozwiÄ…zanie problemu (554)
- Objaśnienie kodu (554)
- Kilka pułapek (557)
- Symulowanie klawisza tabulacji - podsumowanie (558)
- Ustalanie wersji systemu operacyjnego (558)
- RozwiÄ…zanie problemu (558)
- Objaśnienie kodu (558)
- Ustalanie wersji systemu operacyjnego - podsumowanie (560)
- Programowanie z wykorzystaniem liczb zmiennopozycyjnych (561)
- Wiadomości ogólne (561)
- Praca na liczbach (562)
- Dodawanie i odejmowanie (563)
- Rozwinięte ciągi przekształceń (566)
- Porównywanie danych (567)
- Liczby zmiennopozycyjne - uwaga końcowa (567)
- Tworzenie ekranu tytułowego (567)
- Funkcja WinMain() (568)
- Tworzenie ekranu tytułowego (569)
- Zapobieganie uruchamianiu więcej niż jednego egzemplarza aplikacji (571)
- RozwiÄ…zanie problemu (571)
- Objaśnienie kodu (572)
- Podsumowanie (576)
- Praca w trybie "przeciągnij i upuść" (576)
- RozwiÄ…zanie problemu (576)
- Objaśnienie kodu (576)
- Jak to działa? (579)
- "Przeciągnij i upuść" - podsumowanie (580)
- Wykonanie zrzutu ekranowego (581)
- W jaki sposób Windows radzi sobie z oknami? (581)
- RozwiÄ…zanie problemu (581)
- Wykonywanie zrzutów ekranowych - podsumowanie (585)
- Wykorzystanie komponentu TJoyStick (586)
- Tworzenie aplikacji podobnej do monitora systemu Windows (596)
- Zasoby systemu Windows (596)
- RozwiÄ…zanie problemu (598)
- Monitor systemu - podsumowanie (604)
- Aplikacja Soundex (604)
- Implementacja (605)
- Komponenty klasy TTreeView (611)
- Podstawy (612)
- Dodawanie węzłów (612)
- Piktogramy węzłów (615)
- Nawigacja w widoku hierarchicznym (616)
- Dostęp do węzłów (617)
- Wyszukiwanie węzłów (618)
- Wyświetlanie liczby węzłów podrzędnych (620)
- Przemieszczanie węzłów w hierarchii (621)
- Przeciąganie i opuszczanie węzłów (622)
- Modyfikacje węzłów (624)
- Usuwanie węzła (626)
- Wycofywanie i zatwierdzanie operacji usuwania (627)
- Zapisanie zawartości drzewa w pliku (630)
- Komponenty zestawu TTree - podsumowanie (631)
- Narzędzie do pozyskiwania ikon (631)
- Aplikacja naśladująca działanie Eksploratora Windows (639)
- Funkcje i interfejsy powłoki Windows (639)
- Implementacja (640)
- WinExplorer - podsumowanie (645)
- Usługi Windows NT (646)
- Program SendMsg (647)
- Usługa Stickums (649)
- Program Stickem (652)
- Usługi NT - podsumowanie (653)
- Kryptografia (653)
- Implementacja (654)
- Szyfrowanie wiadomości (657)
- Deszyfrowanie wiadomości (661)
- Zegar słoneczny (664)
- Specjalny dodatek dla niedowiarków (669)
- Podsumowanie (670)
Rozdział 13. Zastosowanie praktyczne - aplikacja World Wave Statistics (671)
- Program World Wave Statistics (671)
- Analiza kodu źródłowego (672)
- Plik nagłówkowy math.h (673)
- Plik nagłówkowy mapunit.h (673)
- Plik nagłówkowy wavedata.h (673)
- Plik źródłowy about.cpp (674)
- Analiza kodu modułu TMainUnit (675)
- Ulepszenia (679)
- Podsumowanie (681)
Dodatek A Spis treści tomu I (683)
Dodatek B Skorowidz tomu I (695)
Skorowidz (743)