Delphi 4. Vademecum profesjonalisty - Helion

Tytuł oryginału: Delphi 4 Developers Guide
Tłumaczenie: Andrzej Grażyński
ISBN: 83-7197-080-3
stron: 1768, Format: B5, okładka: twarda
Data wydania: 2011-09-14
Księgarnia: Helion
Cena książki: 180,00 zł
Koniecznie zapoznaj się z suplementem do tej książki: Delphi 5 - vademecum profesjonalisty (suplement)
- OLE, COM, ActiveX
- MIDAS
- WebBroker
- ISAPI, NSAPI, HTML
- Opis technologii COM i ActiveX i przykłady zastosowań
- Wyczerpujący opis technologii MIDAS
- Przykłady rozszerzeń powłoki (Windows Shell)
- Przykłady obsługi i zastosowań baz danych typu Desktop i wielowarstwowych aplikacji Klient/Serwer
- Opis technologii WebBroker umożliwiającej tworzenie aplikacji internetowych
- Przykłady multimedialnych zastosowań Delphi - m.in. wyświetlanie grafiki JPEG i odtwarzanie plików .WAV
- Przykłady wykorzystania różnorodnych mechanizmów systemowych Win32.
Steve Teixeira i Xavier Pacheco uhonorowani zostali w 1996 roku zaszczytną nagrodą Delphi Informant Readers Choice Award.
Osoby które kupowały "Delphi 4. Vademecum profesjonalisty", wybierały także:
- Aplikacje w Delphi. Przykłady. Wydanie III 58,98 zł, (29,49 zł -50%)
- Delphi 7. Kompendium programisty 129,00 zł, (77,40 zł -40%)
- Delphi 2007 dla WIN32 i bazy danych 89,00 zł, (66,75 zł -25%)
- Programowanie w języku Delphi 49,00 zł, (36,75 zł -25%)
- Machine Learning 88,94 zł, (76,49 zł -14%)
Spis treści
Delphi 4. Vademecum profesjonalisty -- spis treści
TOM I
Wprowadzenie (25)
Część I. Podstawy błyskawicznego tworzenia aplikacji
Rozdział 1. Delphi 4 jako narzędzie programowania w Windows (33)
- Nieco historii... (33)
- Delphi 1 (34)
- Delphi 2 (34)
- Delphi 3 (35)
- Delphi 4 (35)
- Czym jest Delphi? (35)
- Rodzina produktów Delphi 4 (36)
- Wizualne środowisko projektowe (38)
- Zoptymalizowany kompilator 32-bitowy (38)
- Skalowalny dostęp do baz danych (39)
- Język i biblioteki (39)
- Środowisko zintegrowane Delphi 4 (IDE) (40)
- Okno główne (41)
- Projektant Formularzy (42)
- Inspektor Obiektów (43)
- Edytor kodu (43)
- Eksplorator Kodu (43)
- Generator kodu źródłowego (44)
- Prosta aplikacja (46)
- Jeszcze o zdarzeniach... (48)
- Niekontraktowy charakter obsługi zdarzeń (48)
- Prototypowanie kodu (49)
- Rozszerzenia środowiska (50)
- Podsumowanie (50)
Rozdział 2. Podstawy języka Object Pascal (51)
- Komentarze (51)
- Nowości w zakresie procedur i funkcji (52)
- Nawiasy (53)
- Przeciążanie procedur i funkcji (53)
- Domyślne parametry procedur i funkcji (54)
- Zmienne (56)
- Stałe (57)
- Operatory (60)
- Operator przypisania (60)
- Operatory porównania (60)
- Operatory logiczne (60)
- Operatory arytmetyczne (61)
- Operatory bitowe (62)
- Operatory zwiększenia i zmniejszenia (63)
- Typy języka Object Pascal (63)
- Porównanie typów Pascala, C i Visual Basica (64)
- Znaki (66)
- Mnogość łańcuchów... (66)
- Typ Variant (80)
- Typ Currency (95)
- Typy definiowane przez użytkownika (95)
- Tablice (95)
- Rekordy (99)
- Zbiory (101)
- Obiekty (104)
- Wskaźniki (105)
- Aliasy typów (108)
- Rzutowanie i konwersja typów (109)
- Zasoby łańcuchowe (111)
- Instrukcje warunkowe (112)
- Instrukcja If (112)
- Instrukcja wyboru (113)
- Pętle (114)
- Pętla For (114)
- Pętla While...Do (115)
- Pętla Repeat...Until (115)
- Procedura Break() (116)
- Procedura Continue() (117)
- Procedury i funkcje (118)
- Przekazywanie parametrów do procedur i funkcji (119)
- Mechanizm tablic otwartych (121)
- Zasięg deklaracji (124)
- Moduły (125)
- Dyrektywa USES (126)
- Pakiety (129)
- Struktura pakietu (131)
- Programowanie zorientowane obiektowo (133)
- Środowisko bazujące na obiektach a środowisko zorientowane obiektowo (135)
- Wykorzystanie obiektów w Delphi 4 (135)
- Deklarowanie obiektów i kreowanie zmiennych obiektowych (135)
- Destrukcja obiektu (136)
- Metody (137)
- Typy metod (138)
- Właściwości (140)
- Widoczność elementów obiektu (141)
- Metody zaprzyjaźnione (142)
- Wewnątrz obiektów (143)
- Interfejsy (144)
- Strukturalna obsługa wyjątków (149)
- Wyjątki jako klasy Object Pascala (151)
- Wyjątki a przepływ sterowania (153)
- "Przetrzymanie" wyjątku (156)
- Informacja czasu wykonania (RTTI) (156)
- Podsumowanie (158)
Rozdział 3. Interfejs Win32 API (159)
- Obiekty Win32 (159)
- Obiekty jądra (160)
- Obiekty GDI i USER (162)
- Wielozadaniowość i wielowątkowość (163)
- Zarządzanie pamięcią w Win32 (165)
- Jak to się właściwie dzieje? (165)
- Obsługa błędów w Win32 (168)
- Podsumowanie (169)
Rozdział 4. Środowisko projektowe i zasady tworzenia aplikacji (171)
- Środowisko zintegrowane i architektura projektu (171)
- Pliki składające się na całość projektu (172)
- Plik programu głównego (172)
- Pliki modułów projektu (173)
- Pliki formularzy (173)
- Pliki zasobów (174)
- Opcje projektu i ustawienia pulpitu (175)
- Kopie zapasowe (175)
- Pliki pakietów (175)
- Kilka użytecznych wskazówek (176)
- Jeden projekt, jeden katalog (176)
- Moduły źródłowe współdzielone przez wiele projektów (176)
- Odrębny moduł dla nazw globalnych (178)
- Formularz widoczny dla innych formularzy (179)
- Grupowanie projektów (180)
- Klasy Delphi 4 fundamentalne dla projektu (181)
- Klasa TForm (181)
- Klasa TApplication (189)
- Właściwości klasy TApplication (189)
- Metody klasy TApplication (192)
- Zdarzenia klasy TApplication (197)
- Klasa TScreen (198)
- Kilka typowych zagadnień projektowych (199)
- Architektura aplikacji - w praktyce... (200)
- Formularz potomny TChildForm (202)
- Formularz TDBModeForm (204)
- Formularz nawigacyjny TDBNavStatForm (206)
- Kilka ciekawych projektów (211)
- Dodawanie zasobów do projektu (211)
- Zmiana kształtu kursora (214)
- Zabezpieczenie przed tworzeniem wielu egzemplarzy formularza (215)
- Dodawanie kodu do programu głównego (216)
- Zmiana domyślnej procedury obsługi wyjątków (216)
- Wyświetlenie wizytówki aplikacji (219)
- Kontrolowana zmiana rozmiarów komponentów (221)
- Tworzenie projektów pozbawionych formularzy (223)
- Wymuszenie zakończenia pracy Windows (223)
- Zabezpieczenie przed zamknięciem sesji Windows (225)
- Wymagania dla Logo Windows 95 (226)
- Czego dotyczy logo Designed For Microsoft Windows 95? (226)
- Wymagania ogólne dla aplikacji (227)
- Wymagania dla aplikacji bazującej na plikach (228)
- Wymagania dla aplikacji użytkowych (228)
- Podsumowanie (229)
Rozdział 5. Operowanie komunikatami (231)
- Natura komunikatów (231)
- Typy komunikatów (232)
- Jak działa system komunikatów Windows? (232)
- Obsługa komunikatów w kategoriach Delphi (234)
- Rekordy specyficzne dla różnych typów komunikatów (235)
- Przetwarzanie komunikatów (236)
- Kontraktowy charakter obsługi komunikatów (238)
- Zwrotne przekazywanie wyniku obsługi (239)
- Zdarzenie OnMessage klasy TApplication (239)
- Wysyłanie własnych komunikatów (240)
- Metoda Perform() (240)
- Funkcje SendMessage() i PostMessage() (241)
- Komunikaty niestandardowe (242)
- Komunikaty oznajmiające (242)
- Wewnętrzne komunikaty VCL (243)
- Komunikaty użytkownika (244)
- Anatomia systemu komunikatów: VCL (246)
- Związek komunikatów ze zdarzeniami Delphi (255)
- Podsumowanie (255)
Rozdział 6. Standardowe reguły kodowania programów - propozycja... (257)
- Zasady ogólne (258)
- Wcięcia (258)
- Marginesy (258)
- Nawiasy pionowe begin ... end (258)
- Reguły specyficzne dla Object Pascala (259)
- Nawiasy (259)
- Słowa kluczowe i zarezerwowane (259)
- Procedury i funkcje (259)
- Zmienne (262)
- Typy (262)
- Instrukcje (264)
- Strukturalna obsługa wyjątków (266)
- Klasy (267)
- Pliki (268)
- Formularze i moduły danych (269)
- Pakiety (271)
- Komponenty (271)
Rozdział 7. Wykorzystanie kontrolek ActiveX (279)
- Czym jest kontrolka ActiveX? (279)
- Kiedy używać kontrolek ActiveX? (280)
- Instalacja kontrolki ActiveX w Palecie Komponentów (281)
- Programowa otoczka kontrolki ActiveX (283)
- Dane wyliczeniowe (291)
- Interfejsy kontrolki (291)
- TOLEcontrol i klasy pochodne (292)
- Metody (292)
- Właściwości (293)
- Wykorzystanie zainstalowanych kontrolek ActiveX w tworzonych aplikacjach (294)
- Dystrybucja aplikacji wykorzystujących kontrolki ActiveX (295)
- Rejestracja kontrolki ActiveX (296)
- Przykład zastosowania - czyli zagrajmy w oko po godzinach... (296)
- Talia kart (297)
- Gra... (299)
- Wywoływanie metod interfejsu sterującego kontrolki ActiveX (307)
- Podsumowanie (308)
Część II. Zaawansowane techniki projektowania aplikacji
Rozdział 8. Wykorzystanie narzędzi graficznych Delphi i operowanie czcionkami (311)
- Obrazki na formularzu - komponent TImage (312)
- Bitmapy (312)
- Metapliki (313)
- Ikony (313)
- TPicture - dane graficzne (313)
- TBitmap (314)
- Wykorzystywanie właściwości klasy TCanvas (315)
- Operowanie piórem (315)
- Dostęp do poszczególnych pikseli płótna (323)
- Wykorzystanie pędzli (323)
- Wykorzystanie czcionek (328)
- Wykorzystanie właściwości CopyMode (330)
- Pozostałe właściwości klasy TCanvas (333)
- Metody klasy TCanvas (334)
- Kreślenie linii (334)
- Kreślenie figur geometrycznych (334)
- Wypisywanie tekstu (339)
- Układy współrzędnych i ich odwzorowania (345)
- Układ fizyczny (345)
- Układ logiczny (345)
- Odwzorowanie współrzędnych (347)
- Przykładowy edytor graficzny (356)
- Jak to działa? (370)
- Animacje graficzne w Delphi (371)
- Zaawansowane wykorzystanie czcionek (378)
- Typy czcionek Win32 (378)
- Podstawowe elementy czcionki (378)
- Kategorie czcionek GDI (380)
- Przykładowy edytor czcionek Win32 (381)
- Wyświetlenie informacji o czcionce (388)
- Podsumowanie (392)
Rozdział 9. Biblioteki DLL (393)
- Czym w istocie jest biblioteka DLL? (393)
- Bazowy adres ładowania modułu (394)
- Nieco terminologii... (396)
- Łączenie statyczne kontra łączenie dynamiczne (397)
- Korzyści płynące z wykorzystywania DLL (398)
- Współdzielenie kodu, zasobów i danych przez wiele aplikacji (398)
- Ukrycie szczegółów implementacyjnych (399)
- Elementy sterujące Win32 - Custom Controls (400)
- Tworzenie i wykorzystywanie bibliotek DLL (401)
- Prosty przykład - poznaj siłę swych pieniędzy (401)
- Formularze modalne w bibliotekach DLL (404)
- Formularze niemodalne w bibliotekach DLL (407)
- Wykorzystanie bibliotek DLL w aplikacjach Delphi (409)
- Procedura inicjująco-kończąca biblioteki DLL (413)
- Definiowanie procedury inicjująco-kończącej (413)
- Obsługa wyjątków w bibliotekach DLL (419)
- Wyjątki a dyrektywa Safecall (419)
- Funkcje zwrotne (419)
- Wywoływanie funkcji zwrotnych z bibliotek DLL (423)
- Współdzielenie danych biblioteki DLL przez różne procesy (426)
- Tworzenie bibliotek DLL z pamięcią dzieloną (426)
- Przykład dzielenia danych za pośrednictwem wspólnej biblioteki DLL (430)
- Eksportowanie obiektów z bibliotek DLL (433)
- Podsumowanie (438)
Rozdział 10. Drukowanie w Delphi (439)
- Obiekt TPrinter (440)
- Płótno drukarki - TPrinter.Canvas (441)
- Proste wydruki (442)
- Drukowanie zawartości komponentu TMemo (442)
- Drukowanie bitmapy (443)
- Drukowanie tekstu w formacie RTF (444)
- Drukowanie formularza (444)
- Zaawansowane wydruki (444)
- Drukowanie raportu tabelarycznego (445)
- Drukowanie kopert (454)
- Inne zagadnienia związane z drukowaniem (467)
- Struktura TDeviceMode (467)
- Zmiana domyślnej drukarki (472)
- Uzyskiwanie informacji o drukarce (474)
- Funkcje GetDeviceCaps() and DeviceCapabilities() (475)
- Podsumowanie (490)
Rozdział 11. Aplikacje wielowątkowe (491)
- Natura wątków (491)
- Nowy rodzaj wielozadaniowości (492)
- Do czego może się przydać wielowątkowość? (492)
- Błędne wykorzystanie wielowątkowości (493)
- Klasa TThread (493)
- Egzemplarze wątków a zmienne (497)
- Kończenie wątku (497)
- Synchroniczne wykorzystywanie komponentów VCL (500)
- Przykładowa aplikacja (502)
- Priorytety i szeregowanie wątków (504)
- Zawieszanie i wznawianie realizacji wątków (506)
- Pomiar czasu w ramach wątku (507)
- Współdziałanie wątków aplikacji (510)
- Pamięć lokalna wątku (511)
- Synchronizacja wątków (514)
- Przykład zastosowania wielowątkowości: zaawansowane wyszukiwanie tekstu (527)
- Interfejs użytkownika (528)
- Proces przeszukiwania (535)
- Zmiana priorytetu wątku przeszukującego (541)
- Wielowątkowy dostęp do bazy danych (543)
- Wielowątkowe rysowanie na formularzu (548)
- Podsumowanie (553)
Rozdział 12. Obsługa plików w Delphi 4 (555)
- Pliki dyskowe i operacje wejścia/wyjścia (555)
- Pliki tekstowe (555)
- Pliki typowane (562)
- Pliki strumieniowe w roli plików typowanych (564)
- Pliki amorficzne (572)
- Struktury TTextRec i TFileRec (576)
- Mechanizm plików odwzorowanych (memory-mapped files) (580)
- Zastosowanie plików odwzorowanych (581)
- Prosty przykład zastosowania plików odwzorowanych (587)
- Integralność danych odwzorowywanego pliku (591)
- Przykład zastosowania - program użytkowy przeszukujący pliki tekstowe (591)
- Dyski i katalogi (598)
- Uzyskiwanie listy dostępnych napędów i ich typów (598)
- Uzyskiwanie informacji o napędzie (600)
- Lokalizacja katalogu Windows (602)
- Lokalizacja katalogu systemowego (603)
- Określanie bieżącego katalogu (603)
- Poszukiwanie plików w drzewie katalogów (604)
- Kopiowanie i usuwanie drzewa katalogów (607)
- Struktury TSearchRec i TWin32FindData (608)
- Informacja o wersji pliku (611)
- Podsumowanie (620)
Rozdział 13. Zaawansowane techniki programistyczne (621)
- Procedura komunikacyjna okna aplikacji - więcej szczegółów (622)
- Subclassing (622)
- Zabezpieczenie przed uruchomieniem danej aplikacji w kilku egzemplarzach (630)
- Wykorzystanie języka asemblera w Delphi 4 (634)
- Jak funkcjonuje asembler w Delphi 4? (635)
- Rekordy Object Pascala w asemblerze (638)
- Dyrektywa inline (638)
- Przykłady zastosowań (638)
- Wykorzystanie funkcji przechwytujących (642)
- Ustanawianie funkcji przechwytującej (642)
- Łańcuchowanie funkcji przechwytujących (644)
- Przykład przechwytywania typu JournalPlayback - funkcja SendKeys() (644)
- Wykorzystanie plików wynikowych .OBJ języka C/C++ (658)
- Wywoływanie funkcji i procedur zawartych w pliku .OBJ (659)
- Automatyczna zmiana nazwy funkcji - Name Mangling (660)
- Współdzielenie danych (660)
- Wykorzystanie biblioteki Delphi RTL przez dołączane moduły .OBJ (662)
- Wykorzystanie klas C++ (667)
- Thunking (671)
- Generic Thunking (672)
- Komunikat WM_COPYDATA (682)
- Podsumowanie (688)
Rozdział 14. Szperacz systemowy (689)
- Formularz główny TMainForm (689)
- Formatowanie łańcuchów (690)
- Informacja o stanie pamięci (692)
- Informacja o wersji systemu operacyjnego (693)
- Informacja o katalogach (694)
- Szczegółowa informacja o konfiguracji sprzętowej (696)
- Zmienne środowiskowe (698)
- Niezależność od platformy systemowej (703)
- ToolHelp32 (704)
- "Migawki" systemowe (705)
- Iteracja po aktywnych procesach (706)
- Iteracja po wątkach procesu (710)
- Iteracja po modułach (712)
- Iteracja po obszarach pamięci przydzielonych na stertach procesu (714)
- Moduły źródłowe formularzy (719)
- PSAPI (727)
- Podsumowanie (740)
Rozdział 15. Przechodząc do Delphi 4... (741)
- Uwagi ogólne (741)
- Która wersja? (741)
- Moduły, komponenty i pakiety (743)
- Z Delphi 3 do Delphi 4 (743)
- 32-bitowe liczby całkowite bez znaku (743)
- 64-bitowe liczby całkowite ze znakiem (745)
- Typ Real (745)
- Z Delphi 2 do wyższych werasji... (745)
- Zmiany w zakresie typów boolowskich (745)
- resourcestring (746)
- Zmiany w zakresie biblioteki RTL (746)
- TCustomForm (747)
- GetChildren() (747)
- Serwery automatyzacji (747)
- Z Delphi 1 na platformę Win32... (747)
- Znaki i łańcuchy (748)
- Nowe typy znakowe (748)
- Nowe typy łańcuchowe (749)
- Ustawianie bieżącej długości łańcucha (750)
- Dynamiczna alokacja łańcuchów (751)
- Łańcuchy jako tablice znaków (752)
- Łańcuchy z zerowym ogranicznikiem (753)
- Łańcuchy z zerowym ogranicznikiem jako bufory (753)
- Łańcuch PChar w roli długiego łańcucha (754)
- Rozmiar i zakres zmiennych (756)
- Wyrównanie pól rekordów (757)
- 32-bitowa arytmetyka (758)
- Różnice dotyczące typu TDateTime (759)
- Sekcja finalization modułu (759)
- Język asemblera (760)
- Konwencje przekazywania parametrów do procedur i funkcji (760)
- Biblioteki dynamiczne DLL (761)
- Zmiany w zakresie systemu operacyjnego (762)
- Adresowanie 32-bitowe (762)
- 32-bitowe zasoby (763)
- Kontrolki VBX (763)
- Zmiany w zakresie funkcji API (764)
- Projekty kompatybilne (766)
- Win32s (767)
- Podsumowanie (767)
Rozdział 16. Aplikacje wielodokumentowe (MDI) (769)
- Tworzenie aplikacji MDI (770)
- Podstawy aplikacji MDI (770)
- Formularz potomny MDI (771)
- Formularz edycji tekstowej - TEditForm (774)
- Edytor hypertekstu RTF (782)
- Przeglądarka grafiki bitmapowej (789)
- Formularz główny MDI (791)
- System menu aplikacji MDI (799)
- Łączenie opcji menu w aplikacjach MDI (799)
- Łączenie menu dla aplikacji klasycznych (Non-MDI) (801)
- Dołączanie do menu listy otwartych dokumentów (801)
- Pozostałe aspekty aplikacji MDI (802)
- Wyświetlanie grafiki w oknie klienta aplikacji MDI (802)
- Tworzenie ukrytego okna potomnego (808)
- Minimalizacja, maksymalizacja i przywracanie wszystkich formularzy potomnych (811)
- Podsumowanie (813)
Rozdział 17. Wykorzystanie Schowka w aplikacjach Delphi (815)
- Na początku był Schowek... (816)
- Informacja tekstowa w Schowku (817)
- Grafika w Schowku (818)
- Tworzenie własnego formatu wymiany danych ze Schowkiem (819)
- Wyposażenie obiektu w umiejętność współpracy ze Schowkiem (819)
- Przykładowa aplikacja wykorzystująca specyficzny format zapisu do Schowka (824)
- Podsumowanie (827)
Rozdział 18. Multimedialne zastosowania Delphi (829)
- Prosty odtwarzacz (829)
- Wykorzystanie plików .WAV w aplikacjach Delphi (830)
- Odtwarzanie animacji wideo (832)
- Ukazanie pierwszego kadru (833)
- Wykorzystanie właściwości Display i DisplayRect (833)
- Zdarzenia związane z komponentem TMediaPlayer (834)
- Komponent TMediaPlayer w kontekście urządzeń Windows (836)
- Odtwarzacz kompaktów CD (837)
- Wyświetlenie planszy startowej (838)
- Inicjowanie pracy odtwarzacza (839)
- Aktualizacja wyświetlanej informacji (841)
- Metody związane z uaktualnianiem stanu odtwarzacza (843)
- Kod źródłowy projektu (845)
- Podsumowanie (853)
Rozdział 19. Testowanie i uruchamianie aplikacji (855)
- Najczęstsze przyczyny błędów programistycznych (857)
- Niezainicjowane zmienne obiektowe (857)
- Zagubione egzemplarze obiektów (858)
- Niezainicjowane wskaźniki (859)
- Niezainicjowane zmienne typu PChar (860)
- Odwołania do "pustych" wskaźników (860)
- Wykorzystanie wbudowanego debuggera (861)
- Parametry wywołania programu (861)
- Punkty przerwań (861)
- Praca krokowa (864)
- Wyrażenia testowe (865)
- Inspektor Śledzenia (866)
- Edycja zmiennych programu (866)
- Wędrówka po stosie wywołań (868)
- Stan wątków procesu (868)
- Kronika śledzenia (868)
- Podgląd załadowanych modułów (869)
- Śledzenie wewnątrz bibliotek DLL (869)
- Okno asemblera (870)
- Turbo Debugger (871)
- Okno procesora (871)
- Punkty przerwań (872)
- Podgląd kodu źródłowego modułów (874)
- Podsumowanie (874)
Skorowidz (877)
TOM II
Część III. Wykorzystywanie i tworzenie komponentów Delphi 4
Rozdział 20. Kluczowe elementy biblioteki komponentów VCL (921)
- Co to jest komponent? (922)
- Typy komponentów (922)
- Komponenty standardowe (923)
- Komponenty custom components (923)
- Komponenty graficzne (924)
- Komponenty niewidoczne (924)
- Struktura komponentu (924)
- Właściwości komponentu (925)
- Rodzaje właściwości (927)
- Metody (927)
- Zdarzenia (928)
- Strumieniowość (929)
- Komponenty-właściciele (930)
- Komponenty rodzicielskie (931)
- Hierarchia komponentów VCL (932)
- Klasa TPersistent (933)
- Klasa TComponent (934)
- Klasa TControl (937)
- Klasa TWinControl (937)
- Klasa TGraphicControl (939)
- Klasa TCustomControl (939)
- Pozostałe klasy biblioteki VCL (939)
- Wykorzystanie informacji RTTI (942)
- Informacja o genealogii i właściwościach klasy (944)
- Informacja o metodach obiektu (955)
- Informacja o typie porządkowym (960)
- Informacja o typie zbiorowym (965)
- Podsumowanie (968)
Rozdział 21. Tworzenie własnych komponentów (969)
- Podstawy tworzenia komponentów (969)
- Czy tworzenie nowego komponentu jest uzasadnione? (970)
- Etapy tworzenia nowego komponentu (970)
- Definiowanie zdarzeń (985)
- Definiowanie metod (990)
- Konstruktory i destruktory (991)
- Rejestracja komponentu (993)
- Testowanie komponentu (997)
- Wybór ikony dla komponentu (999)
- Przykładowe komponenty (999)
- Rozszerzenia istniejących komponentów 32-bitowych (999)
- Komponenty w komponentach - TddgButtonEdit (1015)
- Koncepcja (1015)
- TddgDigitalClock - jeszcze jeden przykład definiowania zdarzeń (1020)
- Umieszczanie kompletnych formularzy w Palecie Komponentów (1024)
- Przykład zastosowania - formularz TPasswordDlg (1024)
- Pakiety komponentów (1026)
- Korzyści związane z używaniem pakietów (1027)
- Kiedy nie opłaca się używać pakietów? (1027)
- Typy pakietów (1028)
- Pliki pakietu (1028)
- Kompilacja aplikacji z podziałem na pakiety (1028)
- Instalacja pakietów środowiska (1030)
- Tworzenie i instalacja własnych pakietów (1031)
- Wersjonowanie pakietów (1035)
- Dyrektywy kompilacji związane z tworzeniem pakietów (1035)
- Słabe wiązanie modułu w pakiecie (1036)
- Konwencje nazewnictwa pakietów (1037)
- Podsumowanie (1038)
Rozdział 22. Zaawansowane techniki tworzenia komponentów (1039)
- Komponenty pseudowizualne (1039)
- Niestandardowe podpowiedzi (1039)
- Animowane komponenty (1043)
- Komponent TddgMarquee (1043)
- Konstruowanie komponentu TddgMarquee (1044)
- Testowanie komponentu TddgMarquee (1055)
- Tworzenie edytora właściwości (1057)
- Zdefiniowanie nowej klasy edytora (1058)
- Edycja właściwości w postaci linii tekstu (1059)
- Rejestracja nowego edytora właściwości (1063)
- Edycja właściwości przy użyciu okna dialogowego (1064)
- Edytory komponentów (1068)
- TComponentEditor (1068)
- TDefaultEditor (1069)
- Rejestracja edytora komponentu (1070)
- Przechowywanie w strumieniach niepublikowanych danych komponentu (1073)
- Definiowanie właściwości komponentu (1073)
- Kolekcje komponentów - TCollection i TCollectionItem (1085)
- Element kolekcji - klasa TRunBtnItem (1087)
- TRunButtons - kolekcja komponentu (1088)
- Edycja kolekcji i jej elementów w dialogowym edytorze właściwości (1095)
- Podsumowanie (1101)
Rozdział 23. COM i ActiveX (1103)
- Specyfikacja COM (1104)
- Nieco terminologii (1104)
- OLE 1 kontra OLE 2 (1105)
- Pamięć strukturalna (1106)
- Jednolity transfer danych (1106)
- Modele wątkowe obiektu COM (1106)
- Patrząc w przyszłość - COM+ (1107)
- Technologia COM a Object Pascal (1107)
- Interfejsy (1107)
- Szczegóły korzystania z interfejsów COM w Delphi 4 (1110)
- Typ HRESULT (1116)
- Klasy COM i obiekty-producenci (1117)
- Klasy TComObject i TComObjectFactory (1118)
- Wewnątrzprocesowe serwery COM (1119)
- Zewnętrzne serwery COM (1122)
- Agregacja obiektów COM (1123)
- Rozproszona realizacja COM (DCOM) (1124)
- Automatyzacja COM (1125)
- Interfejs IDispatch (1125)
- Informacja o typie obiektu automatyzacji (1127)
- Wczesne wiązanie kontra późne wiązanie (1127)
- Rejestracja (1128)
- Tworzenie serwera automatyzacji (1128)
- Tworzenie aplikacji-kontrolerów automatyzacji (1140)
- TOleContainer (1147)
- Elementy podstawowe - prosta aplikacja demonstracyjna (1148)
- Mechanizmy zaawansowane - nieco większa aplikacja (1150)
- Podsumowanie (1159)
Rozdział 24. Współdziałanie aplikacji z mechanizmami powłoki (Windows Shell) (1161)
- Współpraca z ikonami Podajnika (1161)
- Funkcja Shell_NotifyIcon() (1162)
- Zarządzanie komunikatami (1164)
- Ikony i podpowiedzi (1165)
- Współdziałanie myszki z Podajnikiem (1166)
- Ukrywanie/odkrywanie aplikacji (1169)
- Paski narzędziowe aplikacji na Pulpicie (1177)
- Formularz TAppBar - enkapsulacja paska aplikacji (1179)
- Przykład wykorzystania paska aplikacji (1187)
- Łączniki powłoki (shell links) (1190)
- Uzyskiwanie instancji interfejsu IShellLink (1192)
- Zastosowanie interfejsu IShellLink (1193)
- Tworzenie łącznika (1196)
- Odczytywanie i zmiana informacji zawartej w łączniku (1198)
- Przykładowa aplikacja (1202)
- Serwery rozszerzające (shell extensions) (1210)
- Kreator obiektu COM (1212)
- Rozszerzenia typu Copy Hook (1212)
- Rozszerzenia typu Context Menu (1218)
- Rozszerzenia typu Icon (1228)
- Podsumowanie (1236)
Rozdział 25. Tworzenie kontrolek ActiveX (1237)
- Proces tworzenia kontrolek ActiveX w Delphi 4 (1238)
- Kreator kontrolek ActiveX (1239)
- Pascalowa osnowa kontrolki ActiveX (1265)
- Arkusze właściwości (1270)
- Formularze aktywne (1281)
- Kontrolki ActiveX w Internecie (1288)
- Komunikacja kontrolki z przeglądarką (1289)
- Web Deployment (1297)
- Podsumowanie (1302)
Rozdział 26. Wykorzystanie interfejsu Open Tools API (1303)
- Narzędzia otwarte (1303)
- Wykorzystanie Open Tools API (1305)
- Prymitywny kreator ("Dumb Expert") (1306)
- "Ekspert od ekspertów" (1309)
- Kompilacja warunkowa - moduł wynikowy .EXE albo .DLL (1318)
- Wyszukiwarka DDG Search (1320)
- Formularzowe programy ekspertowe (1330)
- Podsumowanie (1334)
Czesc IV. Programowanie obsługi baz danych w Delphi 4
Rozdział 27. Aplikacje bazodanowe typu Desktop (1337)
- Praca ze zbiorami danych (1338)
- Obsługa baz danych a biblioteka VCL (1339)
- Bazodanowe komponenty BDE (1339)
- Otwarcie zbioru danych (1340)
- Przemieszczanie się po rekordach zbioru danych (1340)
- Komponent TDataSource (1345)
- Dostęp do pól zbioru (1347)
- Odświeżanie zawartości zbioru danych (1362)
- Zmiana stanu zbioru danych (1363)
- Filtrowanie (1363)
- Komponent TTable i jego wykorzystanie (1366)
- Wyszukiwanie rekordów (1366)
- Ograniczenie zakresu widocznych rekordów (1369)
- Relacje wielowartościowe Master/Details (1370)
- Zdarzenia komponentu TTable (1372)
- Dynamiczne tworzenie tabeli w kodzie programu (1372)
- Moduły danych (1374)
- Wyszukiwanie, zakresy, filtrowanie - 100% live! (1375)
- Moduł danych DM (1375)
- Formularz główny (1375)
- Formularz zakresów (1378)
- Formularz szukania według kluczy (1379)
- Formularz filtrowania (1382)
- Inne przykłady zbioru danych - komponenty TQuery i TStoredProc (1386)
- TQuery (1386)
- TStoredProc (1386)
- Tekstowe tabele bazy danych (1387)
- Pliki schematu (1387)
- Pliki danych (1389)
- Wykorzystanie tabel tekstowych (1389)
- Ograniczenia związane z tabelami tekstowymi (1390)
- Import tabeli tekstowej (1391)
- Interfejs ODBC (1391)
- Gdzie znaleźć sterowniki ODBC? (1391)
- Przykład ODBC - wykorzystanie bazy MS Access (1392)
- Podsumowanie (1396)
Rozdział 28. Aplikacje bazodanowe typu klient/serwer (1397)
- Dlaczego klient/serwer? (1397)
- Architektura klient/serwer (1399)
- Klient (1399)
- Serwer (1400)
- "Gruby klient", czy "gruby serwer" ? (1401)
- Modele architektury klient/serwer (1403)
- Architektura klient/serwer kontra lokalne bazy danych typu Desktop (1405)
- Rekordy tabeli kontra podzbiory danych (1405)
- Bezpieczeństwo danych (1406)
- Metody blokowania rekordów (1406)
- Integralność danych (1407)
- Przetwarzanie transakcyjne (1407)
- SQL i jego rola w architekturze klient/serwer (1408)
- Projektowanie systemów klient/serwer (1408)
- Serwer - projektowanie zaplecza (back-end) (1409)
- Obiekty bazodanowe SQL (1409)
- Przywileje i prawa dostępu do rekordów bazy (1419)
- Klient - projektowanie interfejsu czołowego (front-end) (1422)
- Wykorzystanie komponentu TDataBase (1422)
- TTable czy TQuery ? (1432)
- Wykonywanie procedur zapamiętanych (1442)
- Podsumowanie (1447)
Rozdział 29. Zaawansowane programowanie bazodanowe (1449)
- Moduł BDE (1450)
- Zbiory danych dBase (1453)
- Fizyczny numer rekordu (1454)
- Widoczność rekordów ukrytych (1455)
- Testowanie stanu ukrycia rekordu (1456)
- Przywracanie rekordów ukrytych (1457)
- Pakowanie tabeli (1457)
- Tabele bazy danych Paradox (1458)
- Numer sekwencyjny rekordu (1458)
- Pakowanie tabeli (1459)
- Ograniczenie rozmiaru zbioru wynikowego zapytania SQL (1465)
- TTable a funkcje agregujące SQL (1466)
- Szybkie kopiowanie tabeli (1469)
- Użytkownicy sesji Paradox'a (1470)
- Tworzenie bazodanowych kontrolek VCL (1471)
- Bazodanowy odtwarzacz WAV (1472)
- Zbiory danych niezależne od BDE (1476)
- Jak to dawniej bywało... (1476)
- I narodziło się Delphi 3... (1476)
- Przykład implementacji - TDDGDataSet (1477)
- Podsumowanie (1501)
Rozdział 30. Internetowe zastosowania Delphi 4 (1503)
- CGI, ISAPI i NSAPI (1504)
- Tworzenie rozszerzeń serwerów WWW w Delphi 4 (1505)
- TWebModule i TWebDispatcher (1506)
- TWebRequest i TWebResponse (1510)
- Preparacja stron HTML (1513)
- TPageProducer (1513)
- TDataSetTableProducer i TQueryTableProducer (1515)
- Realizacja stanu wewnętrznego aplikacji-klienta za pomocą cookies (1520)
- Przeniesienie wywołania do innej sieci (1523)
- Wprowadzanie danych za pomocą formularzy HTML (1524)
- Przesyłanie strumieni danych (1529)
- Podsumowanie (1532)
Rozdział 31. MIDAS (1533)
- Ogólna struktura aplikacji rozproszonych (1533)
- Przykład - prosta aplikacja w technologii MIDAS (1535)
- Tworzenie serwera aplikacji (1535)
- Tworzenie aplikacji-klienta (1540)
- Edycja zdalnej bazy danych (1540)
- Relacje "master/details" w aplikacji rozproszonej (1542)
- Komasacja połączeń (1543)
- Instancyjność serwera (1548)
- Odwołania zwrotne - gdy klient staje się serwerem (1548)
- Bezpieczeństwo (1551)
- Podsumowanie (1552)
Rozdział 32. Przykładowe zastosowanie - ewidencja sprzedaży (1553)
- Część pierwsza - projektowanie zaplecza (1554)
- Definiowanie domen (1555)
- Definiowanie tabel (1556)
- Definiowanie generatorów (1558)
- Definiowanie wyzwalaczy (1558)
- Definiowanie procedur zapamiętanych (1559)
- Przydzielanie uprawnień dostępu (1561)
- Definiowanie reguł business rules za pomocą modułu danych TDataModule (1562)
- Logowanie i wylogowanie użytkownika (1573)
- Metody związane w ewidencją klientów (1574)
- Metody związane z ewidencją części zamiennych (1575)
- Metody zarządzające sprzedażą (1575)
- Metody związane z tabelą tymczasową (1576)
- Obsługa zdarzeń zachodzących w kontekście komponentów modułu danych (1578)
- Projektowanie interfejsu użytkownika (1579)
- TMainForm - formularz główny aplikacji (1580)
- TCustomerForm - formularz klientów (1584)
- TPartsForm - formularz katalogu części zamiennych (1588)
- Formularz TSalesForm - przeglądanie transakcji sprzedaży (1592)
- Formularz TNewSalesForm - wprowadzanie nowej transakcji sprzedaży (1592)
- Formularz TCustomerSearchForm - wyszukiwanie klienta (1596)
- Podsumowanie (1600)
Rozdział 33. MIDAS - przykład zastosowania (1601)
- Serwer aplikacji (1602)
- Aplikacja-klient (1604)
- Moduł danych kontrahenta (1604)
- Formularz główny aplikacji (1614)
- Podsumowanie (1620)
Rozdział 34. Lokalna kartoteka testerów aplikacji (1621)
- Ogólne założenia projektowe (1621)
- Adaptowalność do środowiska internetowego (1622)
- Logowanie użytkowników (1622)
- Przeglądanie i manipulacja adnotacjami o błędach (1622)
- Akcje związane z błędami (1622)
- Inne elementy interfejsu użytkownika (1622)
- Struktura bazy danych (1623)
- Moduł danych aplikacji (1623)
- Inicjalizacja aplikacji i logowanie użytkownika (1645)
- Generowanie unikalnych identyfikatorów (1645)
- Obsługa adnotacji o błędach (1645)
- Dopisywanie nowych użytkowników (1646)
- Dodawanie akcji do adnotacji o błędzie (1648)
- Interfejs użytkownika (1649)
- Formularz główny (1649)
- Pozostałe elementy interfejsu użytkownika (1656)
- Przygotowanie aplikacji do środowiska internetowego (1656)
- Podsumowanie (1656)
Rozdział 35. Internetowa kartoteka testerów aplikacji (1657)
- Struktura użytkowa aplikacji (1657)
- Zmiany w module danych (1657)
- Konfigurowanie producenta strony TDataSetTableProducer (1659)
- Konfigurowanie dyspozytora WWW TWebDispatcher (1659)
- Konfgurowanie producenta strony TPageProducer (1660)
- Oprogramowanie serwera (1660)
- Podprogramy pomocnicze (1661)
- Strona organizacyjna (akcja /Intro) (1661)
- Pobranie i weryfikacja nazwy użytkownika (1662)
- Przeglądanie adnotacji o błędach (1666)
- Przegląd wszystkich adnotacji (1667)
- Przegląd adnotacji sporządzonych przez danego użytkownika (1669)
- Formatowanie komórek zestawienia (1670)
- Dodawanie nowej adnotacji (1672)
- Wprowadzanie szczegółów adnotacji (1672)
- Weryfikacja adnotacji (1674)
- Podsumowanie (1678)
Dodatek A. Opis błędów i wyjątków (1681)
- Poziomy wykrywania i obsługi wyjątków (1682)
- Błędy wykonania (1683)
- Wyjątki (1683)
- Błędy systemu Win32 (1689)
Dodatek B. Kody błędów BDE (1721)
Dodatek C. Warto przeczytać... (1743)
Skorowidz (1747)





