Delphi 4
dla każdego
Czytając tę książkę zrozumiesz, dlaczego Delphi zaliczane jest do narzędzi do błyskawicznego tworzenia
aplikacji (RAD). Tworząc programy o różnym stopniu komplikacji poznasz te elementy, na których Delphi
opiera swą siłę, zaznajomisz się również z najważniejszymi elementami języka Object Pascal. Nauczysz się
efektywnie wykorzystywać mechanizmy funkcjonalne środowiska zintegrowanego IDE – i w krótkim czasie
stworzysz prawdziwy (być może Twój pierwszy) program dla Windows. Posługując się komponentami VCL
zapoznasz się z ich właściwościami, metodami i zdarzeniami, a także z ich możliwościami w zakresie bezpo-
średniej obsługi komunikatów Windows; zobaczysz również, w jak ogromnym stopniu Delphi wspomaga
tworzenie i wykorzystywanie kontrolek ActiveX stanowiących przejaw zdobywającej coraz większą popular-
ność technologii COM. Poznasz również filozofię tworzenia w Delphi aplikacji bazodanowych i komponenty
oraz mechanizmy biorące udział w tym procesie. Przekonasz się także, z jaką łatwością można w Delphi
tworzyć aplikacje i kontrolki dla żywiołowo rozwijających się zastosowań internetowych.
Tłumaczenie: Andrzej Grażyński, Janusz Grabis, Wiesław Skarzyński, Aleksander Miler
Projekt okładki: Maciej
Pasek,
„ARTGRAF”
Authorized translation from the English language edition published by Sams Publishing
Copyright © 1998
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Polish language edition published by Wydawnictwo Helion.
Copyright © 1999
ISBN: 83-7197-034-X
Wydawnictwo Helion
ul. Chopina 6, 44-100 GLIWICE
tel. (32) 231-22-19, (32) 230-98-63
e-mail: helion@helion.com.pl
www.helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres: www.helion.com.pl/ksiazki/delph4.htm
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Wszystkie znaki występujące w tekście książki są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo Helion dołożyli wszelkich starań, by zawarte w tej książce informacje były kom-
pletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich.
Autor oraz Wydawnictwo Helion nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wy-
nikłe z wykorzystania informacji zawartych w książce.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji
w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także
kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich
niniejszej publikacji.
Printed in Poland.
Spis treści
O autorze.................................................................................................................................... 17
Dedykacja .................................................................................................................................. 17
Podziękowania ........................................................................................................................... 17
Wstęp – jesteś tutaj....................................................................................................................... 19
Przedmowa do wydania polskiego.............................................................................................. 21
Część I
Rozdział 1. Zaczynamy................................................................................................................. 25
Czym właściwie jest Delphi? ..................................................................................................... 25
Rzut oka na Delphi IDE ............................................................................................................. 26
Inspektor Obiektów.............................................................................................................. 27
Przestrzeń robocza ............................................................................................................... 27
Twój pierwszy program: Hello World ....................................................................................... 28
Tworzenie programu............................................................................................................ 28
Modyfikacja programu......................................................................................................... 29
Zamknięcie projektu ............................................................................................................ 30
Twój drugi program: Hello World II.......................................................................................... 30
Tworzenie programu Hello World II ................................................................................... 30
Modyfikacja programu Hello World II ................................................................................ 31
Przegląd języka Object Pascal ................................................................................................... 32
Trochę historii...................................................................................................................... 33
Moduły ................................................................................................................................ 34
Komentarze.......................................................................................................................... 41
Zmienne ............................................................................................................................... 42
Typy danych w Object Pascalu............................................................................................ 44
Operatory w Object Pascalu................................................................................................. 48
Stałe ..................................................................................................................................... 48
Tablice ................................................................................................................................. 50
Łańcuchy ............................................................................................................................. 53
Podsumowanie ........................................................................................................................... 61
Warsztat ..................................................................................................................................... 61
Pytania i odpowiedzi............................................................................................................ 61
Quiz ..................................................................................................................................... 62
Ćwiczenia ............................................................................................................................ 62
4
Delphi 4 dla każdego
Rozdział 2. Pascal bardziej zaawansowany ................................................................................ 63
if, then, else................................................................................................................................ 63
Wykonywanie wielu instrukcji ............................................................................................ 64
Dodajemy else ..................................................................................................................... 65
Zagnieżdżone instrukcje if................................................................................................... 66
Wyrażenie if ... then ... else, wariant 1................................................................................. 67
Wyrażenie warunkowe if ... then ... else, wariant 2.............................................................. 68
Pętle ........................................................................................................................................... 68
Pętla for................................................................................................................................ 69
Pętla while ........................................................................................................................... 73
Pętla repeat .......................................................................................................................... 74
Instrukcja goto ..................................................................................................................... 75
Procedury Continue i Break................................................................................................. 77
Instrukcja case............................................................................................................................ 78
Zakres widzialności ................................................................................................................... 79
Rekordy...................................................................................................................................... 81
Instrukcja with ..................................................................................................................... 82
Tablice rekordów ................................................................................................................. 83
Pliki dołączane ........................................................................................................................... 83
Funkcje, procedury i metody...................................................................................................... 84
Deklaracja i definicja ........................................................................................................... 88
Parametry przekazywane przez stałą, przez wartość i przez referencję ............................... 90
Funkcje i procedury lokalne................................................................................................. 92
Przeciążanie funkcji i procedur............................................................................................ 93
Parametry domyślne procedur i funkcji ............................................................................... 94
Podsumowanie ........................................................................................................................... 95
Warsztat ..................................................................................................................................... 95
Pytania i odpowiedzi............................................................................................................ 96
Quiz ..................................................................................................................................... 96
Ćwiczenia ............................................................................................................................ 97
Rozdział 3. Klasy i programowanie zorientowane obiektowo................................................... 99
Zbiory ........................................................................................................................................ 99
Rzutowanie typów ................................................................................................................... 101
Wskaźniki ................................................................................................................................ 102
Zmienne statyczne kontra zmienne dynamiczne................................................................ 103
Alokacja dynamiczna i wskaźniki...................................................................................... 104
Odwoływanie się do danych dynamicznych ...................................................................... 105
Klasy ........................................................................................................................................ 106
Anatomia klasy ........................................................................................................................ 107
Poziomy dostępu do składników klasy .............................................................................. 107
Konstruktory ...................................................................................................................... 109
Destruktory ........................................................................................................................ 111
Pola .................................................................................................................................... 113
Metody............................................................................................................................... 114
Wskaźnik Self.................................................................................................................... 115
Przykład klasy.................................................................................................................... 117
Dziedziczenie........................................................................................................................... 121
Zastępowanie metod .......................................................................................................... 122
Słowa kluczowe: is i as...................................................................................................... 124
Podsumowanie ......................................................................................................................... 125
Warsztat ................................................................................................................................... 125
Pytania i odpowiedzi.......................................................................................................... 125
Quiz ................................................................................................................................... 126
Spis treści
5
Ćwiczenia .......................................................................................................................... 127
Rozdział 4. Środowisko zintegrowane (IDE) ............................................................................ 129
Delphi IDE............................................................................................................................... 129
Projekty.................................................................................................................................... 130
Pliki używane w projektach ............................................................................................... 131
Pliki źródłowe modułów .................................................................................................... 134
Menu główne i paski narzędzi.................................................................................................. 135
Używanie Palety Komponentów.............................................................................................. 136
Umieszczanie wielu kopii danego komponentu na formularzu.......................................... 137
Umieszczanie komponentów na środku formularza........................................................... 138
Menu kontekstowe palety komponentów........................................................................... 138
Poruszanie się po Palecie Komponentów........................................................................... 138
Aplikacja składająca się z wielu formularzy ........................................................................... 139
Dodawanie modułów ......................................................................................................... 141
Kompilowanie, budowanie i łączenie ................................................................................ 141
Kompilacja innych rodzajów programów w Object Pascalu.................................................... 143
Więcej o formularzach Delphi ................................................................................................. 144
Formularze okna głównego................................................................................................ 144
Formularze okien dialogowych.......................................................................................... 144
Tradycyjne okna dialogowe............................................................................................... 145
Okna dialogowe Delphi ..................................................................................................... 147
Tworzenie formularza okna dialogowego.......................................................................... 147
Okna drugorzędne a okna dialogowe................................................................................. 150
Model aplikacji wielodokumentowej................................................................................. 151
Najważniejsze właściwości formularzy ............................................................................. 151
Właściwości ustawiane w czasie projektowania aplikacji ................................................ 152
Właściwości ustawiane w czasie działania programu ........................................................ 154
Metody formularzy ............................................................................................................ 154
Metody MDI ...................................................................................................................... 155
Zdarzenia formularzy......................................................................................................... 155
Inspektor Obiektów.................................................................................................................. 156
Lista wyboru komponentu........................................................................................................ 157
Karta Properties ................................................................................................................. 158
Karta Events....................................................................................................................... 160
Dokowalne okna IDE............................................................................................................... 161
Miejsca dokowania ............................................................................................................ 162
Eksperymentowanie z oknami dokowalnymi..................................................................... 162
Wyłączanie dokowania ...................................................................................................... 164
Przykładowy program MDI ..................................................................................................... 165
Utworzenie formularza głównego...................................................................................... 166
Napisanie kodu obsługującego opcje File | Open i File | Save as….................................. 168
Napisanie kodu obsługującego opcje menu Window......................................................... 169
Utworzenie okna podporządkowanego MDI ..................................................................... 170
Utworzenie okna „O Programie” ....................................................................................... 171
Końcowe poprawki ............................................................................................................ 173
Podsumowanie ......................................................................................................................... 174
Warsztat ................................................................................................................................... 175
Pytania i odpowiedzi.......................................................................................................... 175
Quiz ................................................................................................................................... 176
Ćwiczenia .......................................................................................................................... 176
Rozdział 5. Model komponentów wizualnych .......................................................................... 179
Podstawowe wiadomości o bibliotekach klas ......................................................................... 179
6
Delphi 4 dla każdego
Dlaczego powinniśmy się zajmować bibliotekami klas? ................................................... 180
W czym tkwi słaby punkt?................................................................................................. 182
Biblioteka Komponentów Wizualnych (VCL)......................................................................... 182
Komponenty ...................................................................................................................... 184
Właściwości, Metody, Zdarzenia....................................................................................... 184
Odkrywanie VCL..................................................................................................................... 197
Klasy formularzy i aplikacji............................................................................................... 199
Klasy komponentów .......................................................................................................... 199
To nie wszystko … ............................................................................................................ 205
Podsumowanie ......................................................................................................................... 206
Warsztat ................................................................................................................................... 206
Pytania i odpowiedzi.......................................................................................................... 207
Quiz ................................................................................................................................... 208
Ćwiczenia .......................................................................................................................... 208
Rozdział 6. Praca z Projektantem Formularzy i Projektantem Menu.................................. 209
Projektant formularzy (Form Designer) ................................................................................... 209
Menu kontekstowe Projektanta Formularzy ...................................................................... 210
Umieszczanie komponentów na formularzu ...................................................................... 211
Siatka Projektanta Formularzy........................................................................................... 212
Zaznaczanie komponentów................................................................................................ 213
Przesuwanie komponentów ............................................................................................... 218
Zabezpieczanie komponentów przed przesunięciem lub zmianą rozmiarów..................... 219
Wycinanie, kopiowanie wklejanie oraz ustalanie porządku komponentów ...................... 220
Zmiana rozmiarów komponentów ..................................................................................... 222
Wyrównywanie i dopasowywanie komponentów.............................................................. 225
„Cykl Tab” (Tab Order)..................................................................................................... 231
Przykładowa aplikacja ............................................................................................................. 232
Krok 1: Nowa Aplikacja – Zaczynamy.............................................................................. 233
Krok 2: Dodajemy pasek narzędzi ..................................................................................... 233
Krok 3: Linia statusu.......................................................................................................... 233
Uruchomienie programu .................................................................................................... 235
Menu, proszę! .......................................................................................................................... 235
Budowa menu głównego.................................................................................................... 236
Kodowanie......................................................................................................................... 245
A teraz moment, na który długo czekałeś … ..................................................................... 250
Menu kontekstowe (rozwijane).......................................................................................... 250
Budowa oraz zachowywanie szablonów menu .................................................................. 252
Podsumowanie ......................................................................................................................... 253
Warsztat ................................................................................................................................... 253
Pytania i odpowiedzi.......................................................................................................... 253
Quiz ................................................................................................................................... 254
Ćwiczenia .......................................................................................................................... 255
Rozdział 7. Komponenty VCL ................................................................................................... 257
Przegląd komponentów............................................................................................................ 257
Komponenty wizualne ....................................................................................................... 258
Komponenty niewidoczne ................................................................................................. 258
Właściwość Name.................................................................................................................... 259
Ważne właściwości standardowe ............................................................................................. 260
Właściwość Align.............................................................................................................. 260
Właściwość Color.............................................................................................................. 261
Właściwość Cursor ............................................................................................................ 262
Właściwość Enabled .......................................................................................................... 263
Spis treści
7
Właściwość Font................................................................................................................ 264
Właściwość Hint................................................................................................................ 265
Właściwości ParentColor, ParentCtl3D, ParentFont i ParentShowHint............................. 266
Właściwość Tag................................................................................................................. 267
Inne właściwości standardowe........................................................................................... 267
Podstawowe metody komponentów......................................................................................... 268
Zdarzenia podstawowe............................................................................................................. 268
TStrings.................................................................................................................................... 270
Standardowe komponenty reprezentujące kontrolki Windows ................................................ 273
Kontrolki edycyjne ............................................................................................................ 274
Komponent Edit................................................................................................................. 274
Komponent MaskEdit ........................................................................................................ 275
Komponent Memo ............................................................................................................. 276
Komponent RichEdit ......................................................................................................... 276
Właściwości standardowych kontrolek edycyjnych........................................................... 276
Komponenty ListBox i ComboBox ................................................................................... 279
Typy przycisków biblioteki VCL ...................................................................................... 282
Przyciski opcji i pola wyboru............................................................................................. 290
Komponent Label .............................................................................................................. 292
Komponent ScrollBar ........................................................................................................ 293
Komponent Panel..................................................................................................................... 294
To jeszcze nie wszystko... ........................................................................................................ 294
Standardowe okna dialogowe .................................................................................................. 295
Metoda Execute ................................................................................................................. 295
Okna dialogowe Otwórz i Zapisz....................................................................................... 296
Okna dialogowe otwierania i zapisywania rysunków ........................................................ 299
Okno dialogowe Kolor....................................................................................................... 300
Okno dialogowe Czcionka................................................................................................. 300
Okna dialogowe Znajdź i Zamień...................................................................................... 300
Podsumowanie ......................................................................................................................... 302
Warsztat ................................................................................................................................... 302
Pytania i odpowiedzi.......................................................................................................... 302
Quiz ................................................................................................................................... 304
Ćwiczenia .......................................................................................................................... 304
Podsumowanie części I .............................................................................................................. 307
Część II
Rozdział 8. Tworzenie aplikacji w Delphi................................................................................. 311
Praca z Repozytorium .............................................................................................................. 311
Opcje i strony Repozytorium ............................................................................................. 312
Tworzenie nowych obiektów z Repozytorium......................................................................... 316
Dodawanie obiektów do Repozytorium ................................................................................... 317
Dodawanie projektów do Repozytorium.................................................................................. 319
Zarządzanie Repozytorium ...................................................................................................... 319
Zarządzanie obiektami....................................................................................................... 320
Zarządzanie stronami......................................................................................................... 321
Ustawianie domyślnych formularzy i projektów ............................................................... 321
Budowanie formularzy i aplikacji za pomocą kreatorów ......................................................... 322
Korzystanie z Kreatora Dialogów...................................................................................... 322
Tworzenie aplikacji za pomocą Kreatora Aplikacji ................................................................. 323
Pierwsza Strona: Wybór menu........................................................................................... 324
8
Delphi 4 dla każdego
Strona trzecia: Ustawienie paska narzędzi ......................................................................... 325
Strona czwarta: Wybór ustawień końcowych .................................................................... 326
Dodawanie metod i pól do kodu .............................................................................................. 328
W jaki sposób Delphi zarządza deklaracjami klas ............................................................. 328
Dodawanie metod do kodu ................................................................................................ 331
Dodawanie pól danych do klas .......................................................................................... 333
Usuwanie kodu wygenerowanego przez Delphi ................................................................ 333
Tworzenie szablonów komponentów....................................................................................... 333
Korzystanie z plików zasobów................................................................................................. 336
Zasoby w Delphi................................................................................................................ 337
Kompilowanie plików zasobów......................................................................................... 338
Łączenie plików zasobów z modułem wykonywalnym..................................................... 340
Przykładowy program korzystający z zasobów ................................................................. 340
Pakiety ..................................................................................................................................... 345
Czym jest pakiet?............................................................................................................... 345
Konsolidacja statyczna kontra konsolidacja dynamiczna ................................................. 346
Stosowanie pakietów wykonywalnych we własnych aplikacjach..................................... 349
Dystrybucja aplikacji przy wykorzystaniu pakietów ......................................................... 349
Podsumowanie ......................................................................................................................... 350
Warsztat ................................................................................................................................... 351
Pytania i odpowiedzi.......................................................................................................... 351
Quiz ................................................................................................................................... 352
Ćwiczenia .......................................................................................................................... 353
Rozdział 9. Projekty, Edytor Kodu i Eksplorator Kodu ......................................................... 355
Projekt to podstawa.................................................................................................................. 355
Menedżer Projektów ................................................................................................................ 356
Grupy Projektów................................................................................................................ 356
Okno Menedżera Projektów .............................................................................................. 358
Pasek narzędzi Menedżera Projektów i polecenia klawiatury............................................ 361
Tworzenie i użytkowanie grup projektowych .................................................................... 362
Budowanie projektów i grup projektowych ....................................................................... 363
Opcje projektu.......................................................................................................................... 364
Strona Forms...................................................................................................................... 364
Strona Application ............................................................................................................. 367
Strona Compiler................................................................................................................. 368
Strona Linker ..................................................................................................................... 370
Strona Directories/Conditionals......................................................................................... 371
Strona Version info............................................................................................................ 373
Strona Packages ................................................................................................................. 374
Edytor Kodu Delphi................................................................................................................. 375
Podstawowe operacje edytora............................................................................................ 376
Specyficzne cechy edytora................................................................................................. 381
Menu kontekstowe Edytora Kodu...................................................................................... 390
Zmiana ustawień Edytora Kodu......................................................................................... 390
Eksplorator Kodu ..................................................................................................................... 396
Menu kontekstowe Eksploratora Kodu.............................................................................. 397
Dodawanie kodu przy użyciu Eksploratora Kodu.............................................................. 398
Ustawienia Eksploratora Kodu .......................................................................................... 400
Podsumowanie ......................................................................................................................... 400
Warsztat ................................................................................................................................... 400
Pytania i odpowiedzi.......................................................................................................... 401
Quiz ................................................................................................................................... 402
Ćwiczenia .......................................................................................................................... 402
Spis treści
9
Rozdział 10. Wykrywanie błędów w aplikacjach ..................................................................... 405
Po co stosować debugger? ....................................................................................................... 406
Elementy menu związane z procesem śledzenia ..................................................................... 406
Ustawianie i usuwanie punktów przerwań......................................................................... 408
Okno listy punktów przerwań ............................................................................................ 409
Zwykłe punkty przerwań ................................................................................................... 412
Polecenie Run to Cursor .................................................................................................... 413
Podgląd zmiennych.................................................................................................................. 413
Wartościowanie wyrażenia w formie podpowiedzi ........................................................... 414
Menu kontekstowe listy wyrażeń testowych...................................................................... 415
Okno właściwości podglądu .............................................................................................. 415
Uaktywnianie i dezaktywowanie elementów listy wyrażeń testowych............................. 416
Dodawanie zmiennych do listy wyrażeń testowych........................................................... 417
Użytkowanie listy wyrażeń testowych............................................................................... 417
Inspektor Śledzenia.................................................................................................................. 420
Strony Inspektora Śledzenia .............................................................................................. 421
Menu kontekstowe Inspektora Śledzenia........................................................................... 422
Inne narzędzia procesu wykrywania błędów............................................................................ 423
Okno Evaluate/Modify ...................................................................................................... 423
Okno Call Stack................................................................................................................. 424
Okno deasemblacji............................................................................................................. 425
Polecenie Go to Address.................................................................................................... 425
Praca krokowa.......................................................................................................................... 426
Symbole procesu śledzenia umieszczane na gutterze ........................................................ 426
Przekraczanie i wkraczanie................................................................................................ 427
Śledzenie wewnątrz bibliotek DLL.......................................................................................... 429
Okno dziennika zdarzeń........................................................................................................... 430
Okno modułów......................................................................................................................... 431
Techniki wykrywania błędów .................................................................................................. 431
Funkcja OutputDebugString ............................................................................................. 432
Śledzenie błędów naruszenia ochrony dostępu .................................................................. 432
Krótkie wskazówki do procesu wykrywania błędów......................................................... 434
Opcje debuggera ...................................................................................................................... 435
Strona General ................................................................................................................... 436
Strona Event Log ............................................................................................................... 437
Strona Language Exceptions.............................................................................................. 437
Strona OS Exceptions ........................................................................................................ 437
Podsumowanie ......................................................................................................................... 439
Warsztat ................................................................................................................................... 439
Pytania i odpowiedzi.......................................................................................................... 439
Quiz ................................................................................................................................... 440
Ćwiczenia .......................................................................................................................... 441
Rozdział 11. Narzędzia i opcje Delphi....................................................................................... 443
Edytor Graficzny...................................................................................................................... 443
Kolory obiektów i tła ......................................................................................................... 444
Kolor przezroczysty i kolor odwrócony............................................................................. 445
Narzędzia rysunkowe Edytora Graficznego....................................................................... 446
Powiększanie ..................................................................................................................... 447
Edytor Graficzny
Paleta grubości linii ........................................................................................................... 448
Praca z plikami bitmap ...................................................................................................... 448
Praca z ikonami.................................................................................................................. 450
Praca z kursorami .............................................................................................................. 452
10
Delphi 4 dla każdego
Menu kontekstowe Edytora Graficznego........................................................................... 453
Projekty zasobów............................................................................................................... 453
WinSight: Podglądanie okien................................................................................................... 455
System komunikatów Windows......................................................................................... 455
Drzewo okien..................................................................................................................... 457
Okno śledzenia komunikatów............................................................................................ 458
„Szpiegowanie” okien........................................................................................................ 459
Opcje śledzenia komunikatów ........................................................................................... 459
Inne cechy programu WinSight ......................................................................................... 461
TDUMP ............................................................................................................................. 462
Edytor Kolekcji Pakietów ........................................................................................................ 463
Konfigurowanie menu Tools.................................................................................................... 464
Okno konfiguracji narzędzi................................................................................................ 464
Dodawanie narzędzi do menu ............................................................................................ 465
Modyfikacja ustawień menu narzędzi................................................................................ 466
Ustawienia środowiska Delphi................................................................................................. 466
Strona Preferences ............................................................................................................. 466
Strona Library.................................................................................................................... 468
Strona Palette ..................................................................................................................... 468
Podsumowanie ......................................................................................................................... 470
Warsztat ................................................................................................................................... 470
Pytania i odpowiedzi.......................................................................................................... 470
Quiz ................................................................................................................................... 471
Ćwiczenia .......................................................................................................................... 472
Rozdział 12. Programowanie grafiki i multimediów ............................................................... 473
Grafika w prosty sposób .......................................................................................................... 473
Kontekst urządzenia i klasa TCanvas....................................................................................... 474
Obiekty GDI ............................................................................................................................ 477
Pióra, pędzle i czcionki...................................................................................................... 477
Bitmapy i palety................................................................................................................. 481
Regiony.............................................................................................................................. 482
Proste operacje graficzne ......................................................................................................... 484
Wypisywanie tekstu........................................................................................................... 484
Rysowanie bitmap.............................................................................................................. 490
Bitmapy w pamięci operacyjnej............................................................................................... 493
Tworzenie bitmapy pamięciowej ....................................................................................... 493
Zapisywanie bitmapy pamięciowej.................................................................................... 494
Przykładowy program korzystający z bitmapy pamięciowej ............................................ 495
Programowanie multimediów .................................................................................................. 498
Odtwarzanie dźwięków za pomocą funkcji Windows API .................................................. 498
Komponent TMediaPlayer................................................................................................. 499
Właściwości, metody i zdarzenia komponentu MediaPlayer............................................. 500
Dźwięk w standardzie wave............................................................................................... 502
Ustawienie głośności dźwięku ........................................................................................... 503
Nagrywanie dźwięku w standardzie wave ......................................................................... 504
MIDI .................................................................................................................................. 505
Audio CD................................................................................................................................. 507
Wideo AVI ........................................................................................................................ 508
Podsumowanie ......................................................................................................................... 509
Warsztat ................................................................................................................................... 509
Pytania i odpowiedzi.......................................................................................................... 509
Quiz ................................................................................................................................... 510
Ćwiczenia .......................................................................................................................... 511
Spis treści
11
Rozdział 13. Zagadnienia nieco bardziej skomplikowane....................................................... 513
Tworzenie dekoracji okna ........................................................................................................ 513
Paski narzędzi .................................................................................................................... 513
Komponent CoolBar .......................................................................................................... 515
Dodawanie nowego paska narzędzi ................................................................................... 518
Dokowalne paski narzędzi ................................................................................................. 524
Paski stanu ......................................................................................................................... 526
Dodawanie funkcji związanych z udostępnianiem poleceń ..................................................... 531
Udostępnianie poleceń przy użyciu klas TActionList i TAction....................................... 532
Implementacja mechanizmu udostępniania poleceń .......................................................... 532
Drukowanie w aplikacjach Delphi ........................................................................................... 538
Standardowe okna dialogowe drukowania......................................................................... 539
Drukowanie w prosty sposób............................................................................................. 542
Drukowanie z wykorzystaniem komponentu QuickReport................................................ 543
Drukowanie w trudny sposób ............................................................................................ 543
Praktyczne zastosowanie ................................................................................................... 546
Drukowanie bitmap............................................................................................................ 549
Korzystanie z kursorów ........................................................................................................... 549
Podstawy kursorów............................................................................................................ 550
Ładowanie i korzystanie z kursorów wbudowanych.......................................................... 551
Ładowanie i korzystanie z kursorów użytkowych ............................................................. 552
Podsumowanie ......................................................................................................................... 553
Warsztat ................................................................................................................................... 553
Pytania i odpowiedzi.......................................................................................................... 553
Quiz ................................................................................................................................... 554
Ćwiczenia .......................................................................................................................... 555
Rozdział 14. Programowanie zaawansowane ........................................................................... 557
Implementowanie pomocy kontekstowej................................................................................. 557
Tworzenie pliku pomocy ................................................................................................... 558
Identyfikatory kontekstu i właściwość HelpContext.......................................................... 559
Implementowanie pomocy kontekstowej w Delphi ........................................................... 560
Korzystanie z dołączanych plików pomocy....................................................................... 562
Rzeczywiste wykorzystanie pomocy kontekstowej ........................................................... 563
Obsługa błędów programu z wykorzystaniem wyjątków......................................................... 565
Słowa kluczowe obsługi wyjątków: try, except, finally i raise ......................................... 565
Generowanie wyjątków ..................................................................................................... 567
Korzystanie z Rejestru ............................................................................................................. 574
Klucze Rejestru.................................................................................................................. 575
Typy danych Rejestru ........................................................................................................ 575
Klasa TRegistry ................................................................................................................. 576
Użytkowanie klasy TRegistry............................................................................................ 578
Wyspecjalizowana obsługa komunikatów ............................................................................... 585
Więcej na temat komunikatów Windows........................................................................... 585
Wysyłanie komunikatów ................................................................................................... 588
Obsługa zdarzeń................................................................................................................. 589
Obsługa pozostałych komunikatów Windows ................................................................... 590
Komunikaty definiowane przez użytkownika.................................................................... 594
Podsumowanie ......................................................................................................................... 596
Warsztat ................................................................................................................................... 596
Pytania i odpowiedzi.......................................................................................................... 596
Quiz ................................................................................................................................... 598
Ćwiczenia .......................................................................................................................... 598
12
Delphi 4 dla każdego
Podsumowanie części II.............................................................................................................. 601
Część III
Rozdział 15. Obiekty typu COM i ActiveX............................................................................... 605
Zrozumieć COM ...................................................................................................................... 605
Terminologia COM............................................................................................................ 607
Interfejs IUnknown ............................................................................................................ 610
Tworzenie obiektu COM ................................................................................................... 610
Zrozumieć ActiveX.................................................................................................................. 623
Korzystanie z zewnętrznych kontrolek ActiveX................................................................ 623
Tworzenie nowych kontrolek ActiveX .............................................................................. 625
Zmiana bitmapy reprezentującej kontrolkę ActiveX w palecie ......................................... 632
Umieszczanie kontrolek ActiveX i formularzy aktywnych w sieci.......................................... 633
Opcje dystrybucji sieciowej............................................................................................... 634
Dystrybucja w sieci............................................................................................................ 636
Podsumowanie ......................................................................................................................... 637
Warsztat ................................................................................................................................... 637
Pytania i odpowiedzi.......................................................................................................... 638
Quiz ................................................................................................................................... 639
Ćwiczenia .......................................................................................................................... 640
Rozdział 16. Architektura baz danych widziana od strony Delphi ........................................ 641
Podstawy.................................................................................................................................. 641
Lokalne bazy danych ......................................................................................................... 643
Bazy danych typu klient/serwer......................................................................................... 643
Jedno-, dwu- i wielowarstwowa architektura bazy danych..................................................... 643
Borland Database Engine......................................................................................................... 645
Sterowniki BDE................................................................................................................. 645
Aliasy BDE........................................................................................................................ 646
Wbudowane bazy danych Delphi ...................................................................................... 646
Łączniki SQL..................................................................................................................... 647
Bazodanowe komponenty Delphi ............................................................................................ 648
Klasa TDataSet .................................................................................................................. 650
Komponent Table .............................................................................................................. 656
Filtry .................................................................................................................................. 658
Komponent Query ............................................................................................................. 664
Komponent StoredProc...................................................................................................... 667
Komponent UpdateSQL..................................................................................................... 668
Komponent DataSource ..................................................................................................... 669
Komponent Session ........................................................................................................... 670
Komponent Database......................................................................................................... 670
Komponent BatchMove..................................................................................................... 673
Komponent TField............................................................................................................. 674
Komponenty baz danych typu klient/serwer ........................................................................... 677
Tworzenie aliasów BDE .......................................................................................................... 677
Tworzenie aliasu przy użyciu Administratora BDE........................................................... 678
Tworzenie aliasów w kodzie programu ............................................................................. 679
Podsumowanie ......................................................................................................................... 679
Warsztat ................................................................................................................................... 679
Pytania i odpowiedzi.......................................................................................................... 680
Quiz ................................................................................................................................... 681
Ćwiczenia .......................................................................................................................... 681
Spis treści
13
Rozdział 17. Formularze baz danych ........................................................................................ 683
Kreator Formularzy Baz Danych ............................................................................................. 683
Tworzenie formularza prostego przy pomocy Kreatora Formularzy Baz Danych............. 684
Nowy formularz w działaniu ............................................................................................. 688
Tworzenie formularza typu master/details......................................................................... 689
Ręczne tworzenie formularzy baz danych................................................................................ 691
Komponenty danych widziane z bliska.................................................................................... 694
Wspólne właściwości komponentów danych..................................................................... 694
Komponent DBGrid........................................................................................................... 695
Komponent DBNavigator .................................................................................................. 696
Komponent DBText........................................................................................................... 696
Komponent DBEdit ........................................................................................................... 696
Komponent DBMemo........................................................................................................ 696
Komponent DBImage ........................................................................................................ 697
Komponenty DBListBox i DBComboBox ........................................................................ 698
Komponent DBCheckBox ................................................................................................. 698
Komponent DBRadioGroup .............................................................................................. 698
Komponenty DBLookupListBox i DBLookupComboBox................................................ 699
Komponent DBRichEdit.................................................................................................... 699
Komponent DBCtrlGrid..................................................................................................... 699
Inne komponenty danych................................................................................................... 700
Podsumowanie ......................................................................................................................... 701
Warsztat ................................................................................................................................... 701
Pytania i odpowiedzi.......................................................................................................... 701
Quiz ................................................................................................................................... 702
Ćwiczenia .......................................................................................................................... 703
Rozdział 18. Tworzenie aplikacji bazodanowych..................................................................... 705
Niewizualny aspekt programowania bazodanowego............................................................... 705
Czytanie z bazy danych ..................................................................................................... 706
Tworzenie tabel baz danych w sposób programowy.......................................................... 709
Moduły danych i ich użytkowanie ........................................................................................... 715
Przykładowy moduł danych............................................................................................... 716
Tworzenie raportów ................................................................................................................. 719
Wstęgi raportu ................................................................................................................... 720
Ręczne tworzenie raportów................................................................................................ 722
Tworzenie raportów w prosty sposób ................................................................................ 724
Dystrybucja bazodanowych aplikacji Delphi............................................................................... 724
Podsumowanie ......................................................................................................................... 725
Warsztat ................................................................................................................................... 725
Pytania i odpowiedzi.......................................................................................................... 726
Quiz ................................................................................................................................... 726
Ćwiczenia .......................................................................................................................... 727
Rozdział 19. Tworzenie i użytkowanie bibliotek DLL............................................................. 729
Wstęp do bibliotek DLL .......................................................................................................... 729
Czym jest biblioteka DLL?................................................................................................ 730
Dlaczego powinieneś stosować biblioteki DLL? ............................................................... 731
Anatomia modułu DLL...................................................................................................... 734
Podstawy pisania bibliotek DLL .............................................................................................. 734
Funkcje i procedury w bibliotekach DLL .......................................................................... 735
Słowo kluczowe exports .................................................................................................... 736
Procedura inicjująco-kończąca – DLLProc........................................................................ 738
Ładowanie bibliotek DLL ........................................................................................................ 740
14
Delphi 4 dla każdego
Ładowanie statyczne.......................................................................................................... 740
Ładowanie dynamiczne ..................................................................................................... 740
Wywoływanie funkcji i procedur w bibliotekach DLL............................................................ 741
Wywoływanie przy użyciu ładowania statycznego............................................................ 741
Wywoływanie funkcji i procedur ładowanych dynamicznie .................................................. 743
Tworzenie projektu DLL przy użyciu Repozytorium ............................................................. 744
Formularze w bibliotekach DLL .............................................................................................. 749
Tworzenie biblioteki zawierającej formularz..................................................................... 749
Wywoływanie formularza MDI z biblioteki DLL ............................................................. 751
Umieszczanie zasobów w bibliotekach DLL............................................................................... 754
Tworzenie biblioteki zasobów ........................................................................................... 755
Wykorzystanie biblioteki zasobów .................................................................................... 755
Podsumowanie ......................................................................................................................... 756
Warsztat ................................................................................................................................... 756
Pytania i odpowiedzi.......................................................................................................... 756
Quiz ................................................................................................................................... 758
Ćwiczenia .......................................................................................................................... 758
Rozdział 20. Tworzenie komponentów...................................................................................... 761
Tworzenie nowego komponentu .............................................................................................. 761
Okno dialogowe nowego komponentu............................................................................... 762
Tworzenie komponentu FlashingLabel.............................................................................. 764
Procedura Register............................................................................................................. 765
Właściwości i metody komponentu ......................................................................................... 766
Właściwości....................................................................................................................... 766
Pisanie metod dla komponentów ....................................................................................... 773
Nadawanie funkcjonalności komponentowi TFlashingLabel................................................... 774
Deklaracja klasy................................................................................................................. 777
Sekcja published ................................................................................................................ 777
Sekcja implementacyjna .................................................................................................... 778
Procedura SetFlashRate ..................................................................................................... 778
Właściwość ComponentState............................................................................................. 779
Testowanie komponentu .......................................................................................................... 780
Dodawanie komponentu do Palety Komponentów ................................................................. 783
Dodawanie własnej bitmapy do przycisku komponentu .................................................... 784
Obsługa zdarzeń komponentów ............................................................................................... 785
Przegląd zdarzeń................................................................................................................ 786
Przesłanianie zdarzeń klasy podstawowej.......................................................................... 792
Złożenie w jedną całość ........................................................................................................... 792
Podsumowanie ......................................................................................................................... 797
Warsztat ................................................................................................................................... 798
Pytania i odpowiedzi.......................................................................................................... 798
Quiz ................................................................................................................................... 799
Ćwiczenia .......................................................................................................................... 800
Rozdział 21. Delphi i Builder C++............................................................................................. 801
Podobieństwa między Delphi i Builderem C++...................................................................... 801
Zintegrowane środowisko programisty.............................................................................. 801
Biblioteka komponentów wizualnych................................................................................ 803
Pliki formularzy ................................................................................................................. 803
Pakiety ............................................................................................................................... 804
Różnice między Delphi i Builder C++..................................................................................... 804
Język .................................................................................................................................. 805
Rozszerzenia plików .......................................................................................................... 805
Spis treści
15
Zintegrowane środowisko programisty.............................................................................. 805
Edytor Kodu ...................................................................................................................... 806
Eksplorator Kodu............................................................................................................... 806
Nowe elementy VCL ......................................................................................................... 807
Builder C++ może kompilować moduły języka Pascal...................................................... 807
Współpraca z technologią ActiveX.................................................................................... 807
Delphi kompiluje szybciej i tworzy mniejszy plik wykonywalny..................................... 807
Konwersja aplikacji z Delphi do Buildera C++ ...................................................................... 808
Kopiowanie formularzy Delphi ......................................................................................... 808
Konwersja kodu ................................................................................................................. 810
Kopiowanie procedur obsługujących zdarzenia................................................................. 811
Wielokrotne użycie formularzy ......................................................................................... 815
Podsumowanie ......................................................................................................................... 815
Warsztat ................................................................................................................................... 815
Pytania i odpowiedzi.......................................................................................................... 815
Quiz ................................................................................................................................... 816
Ćwiczenia .......................................................................................................................... 816
Rozdział 22. Aplikacje internetowe ........................................................................................... 817
Komponenty internetowe dostępne w Delphi ......................................................................... 817
Budowa przeglądarki sieciowej ............................................................................................... 819
Komu potrzebna jest jeszcze jedna przeglądarka? ............................................................. 819
Pierwsze kroki procesu budowania przeglądarki ............................................................... 820
Dodanie wskaźnika postępu............................................................................................... 821
Dodatki końcowe ............................................................................................................... 822
Użytkowanie Internet Explorera jako kontrolki ActiveX......................................................... 827
Wysyłanie poczty..................................................................................................................... 829
Dystrybucja aplikacji internetowych........................................................................................ 830
Podsumowanie ......................................................................................................................... 832
Warsztat ................................................................................................................................... 832
Pytania i odpowiedzi.......................................................................................................... 832
Quiz ................................................................................................................................... 833
Ćwiczenia .......................................................................................................................... 833
Podsumowanie części III ............................................................................................................ 835
Dodatki
Dodatek A Odpowiedzi do pytań............................................................................................... 839
Rozdział 1 ................................................................................................................................ 839
Rozdział 2 ................................................................................................................................ 840
Rozdział 3 ................................................................................................................................ 841
Rozdział 4 ................................................................................................................................ 842
Rozdział 5 ................................................................................................................................ 843
Rozdział 6 ................................................................................................................................ 845
Rozdział 7 ................................................................................................................................ 846
Rozdział 8 ................................................................................................................................ 847
Rozdział 9 ................................................................................................................................ 848
Rozdział 10 .............................................................................................................................. 849
Rozdział 11 .............................................................................................................................. 850
Rozdział 12 .............................................................................................................................. 851
Rozdział 13 .............................................................................................................................. 853
Rozdział 14 .............................................................................................................................. 854
16
Delphi 4 dla każdego
Rozdział 15 .............................................................................................................................. 855
Rozdział 16 .............................................................................................................................. 856
Rozdział 17 .............................................................................................................................. 857
Rozdział 18 .............................................................................................................................. 858
Rozdział 19 .............................................................................................................................. 859
Rozdział 20 .............................................................................................................................. 860
Rozdział 21 .............................................................................................................................. 862
Rozdział 22 .............................................................................................................................. 862
Dodatek B. Internetowe zasoby Delphi ..................................................................................... 865
Korporacja INPRISE................................................................................................................ 865
Komercyjne strony WWW....................................................................................................... 865
Strony WWW prowadzone przez użytkowników .................................................................... 866
Grupy dyskusyjne .................................................................................................................... 867
Publikacje................................................................................................................................. 867
Skorowidz .................................................................................................................................... 869
O autorze
Kent Reisdorph
jest starszym programistą w firmie TurboPower Software. Prowadzi
również własną firmę konsultingową. Kent jest członkiem grupy TeamB założonej
przez firmę Borland, która składa się z ochotników udzielających pomocy za pośred-
nictwem sieci. Jako członek TeamB, Kent spędza co tydzień wiele godzin na grupie
dyskusyjnej Borlanda i odpowiada na pytania, głównie dotyczące C++Buildera i pro-
gramowania w Windows. Jest autorem książek C++Builder i C++Builder 3
mieszka w Colorado Springs razem ze swoją żoną Jennifer i sześciorgiem dziećmi:
Jamesem, Masonem, Mallory, Jenny, Marshallem i Joshuą.
Dedykacja
Dedykuję tę książkę mojej żonie Jennifer. Nie mogę sobie wyobrazić, abym mógł zade-
dykować ją komuś innemu. Dziękuję Ci jak zawsze, Jen, za zajmowanie się wszystkim
gdy ja przebywam w swoim własnym świecie.
Podziękowania
Napisanie tej części książki jest dla mnie zupełnie łatwe. Nietrudno zapamiętać osoby,
które odegrały znaczącą rolę podczas powstawania tej książki. Najpierw chcę podzię-
kować Brianowi Gillowi za jego ciężką pracę nad tym projektem. Chce też podzięko-
wać Kezi Endsley za jej wkład w tę książkę. Kezia, jako redaktor, wykonała olbrzymią
pracę. Mogłem się od niej bardzo wiele nauczyć. Innymi osobami z wydawnictwa Ma-
cmillian, którym chciałbym podziękować, są Dana Lesh i Heather Urschel.
Jest też kilka osób z firmy INPRISE (wcześniej Borland International), którym chciał-
bym podziękować. Chociaż nie miałem zbyt wielu bezpośrednich kontaktów z Nan
Borreson podczas pracy nad tym projektem, wiem, że wykonywała – jak zawsze –
wspaniałą pracę. Chce podziękować moim redaktorom technicznym, Billowi Fisherowi
i Ellie Peters. Oboje bardzo mi pomogli. Nie mogę wspomnieć o Ellie bez dodania, że
cieszę się iż jest nie tylko moim redaktorem, ale także przyjacielem. Dziękuję również
Steve'owi Teixeirze, Steve'owi Trefethenowi i Ryder Rishel, którzy szybko udzielali mi
odpowiedzi na szczegółowe pytania, które miałem podczas pracy nad tym projektem.
Na zakończenie chciałbym podziękować mojej żonie Jennifer. Jest to trzeci taki projekt,
którego się podjąłem, a Jennifer zawsze była przy mnie i jej obecność nie ograniczała
się tylko do pomocy. Pewnego dnia na pewno się jej za to odwdzięczę. Obiecuję.
1
Obie książki ukazały się nakładem wydawnictwa Helion
18
Delphi 4 dla każdego
Wstęp – jesteś tutaj
Czy nie uważasz, że strzałka wskazująca na mapie punkt, gdzie się właśnie znajdujesz,
może być bardzo pomocna? A więc tu jesteś! Może tu jesteś ponieważ używałeś wcze-
śniej Delphi i chcesz się dowiedzieć, co nowego znajdziesz w Delphi 4. Może tu jesteś
ponieważ tak kazał Ci Twój szef. A może jesteś tu jako zupełnie początkujący, który
chciałby odkryć wspaniały świat programowania w Windows.
Bez względu na to, z jakiego powodu się tu znalazłeś – witam! Mogę Cię zapewnić, że
podróż będzie interesująca. Bez wątpienia przekonasz się też, że jest przyjemna. Będzie
wymagała trochę pracy, ale znajdziesz w jej trakcie także wiele zabawnych rzeczy roz-
rzuconych po drodze. Uwierz mi, że nie ma to jak zamiana własnych koncepcji
w działający program Windows. Mam nadzieję, że ogarnie Cię gorączka i zatracisz się
w wielogodzinnych sesjach programowania.
Zachęcam do ćwiczeń podczas czytania tej książki. Odłożenie na moment książki i za-
bawa nowo poznanymi wiadomościami może być lepsza niż najlepszy nauczyciel.
Lektura tej książki to nie wyścig. Pierwsza osoba, która dojdzie do końca nie dostanie
nagrody. Wolę abyś dotarł do mety ostatni niż spieszył się tak bardzo, że nie będziesz
miał czasu wypróbować poznanych wiadomości. Nawiasem mówiąc, z mojego do-
świadczenia wynika, że najlepszym sposobem nauki jest stworzenie sobie w głowie
programu, który chcesz napisać i praca nad tym programem podczas pracy z tą książką.
Rozwiązywanie problemów z życia wziętych jest tego rodzaju nauką, którą zapamiętasz
najdłużej.
Dlatego naprawdę nie ma znaczenia dlaczego tu jesteś. Ważne, że jesteś. Cieszę się
z tego i mam nadzieję, że będziesz się dobrze bawił rozwiązując ćwiczenia w Delphi.
Zrelaksuj się, połóż nogi na stole i baw się ucząc się Delphi.
20
Delphi 4 dla każdego
Przedmowa
do wydania polskiego
Jak ten czas leci – Delphi wkracza właśnie w szósty rok swego istnienia, a my oddaje-
my do rąk Czytelników kolejną monografią na jego temat. Podobnie jak w przypadku
poprzednich wersji Delphi, również i tym razem uznaliśmy, iż – aby trafić do szerokie-
go kręgu czytelników – powinniśmy wydać dwie pozycje o zróżnicowanym poziomie
tematycznym. Pierwsza z nich – „Delphi 4 – vademecum profesjonalisty”, zgodnie
z tytułem przeznaczona dla zaawansowanych projektantów – trafiła do księgarń w styczniu
bieżącego roku.
Gdy studiowaliśmy oryginał książki, którego polską wersję trzymacie właśnie Państwo
przed sobą, spotkała nas miła niespodzianka. Zgodnie bowiem z naszymi oczekiwaniami
dobór tematyczny i przystępne ujęcie materiału czyniły ją odpowiednią dla czytelnika
posiadającego niewielkie doświadczenie w Delphi (lub nie posiadającego go w ogóle) –
lecz oto niekwestionowany profesjonalizm autora sprawił, iż wśród treści traktujących
o rzeczach podstawowych znalazły się i takie, którymi nie pogardziliby nawet wyrafi-
nowani profesjonaliści. W tym kontekście dość śmiałe stwierdzenia autora w rodzaju
„w tym rozdziale znajdziesz przynajmniej jedną rzecz, o której dotychczas nie wiedzia-
łeś” przestają brzmieć jak czcze przechwałki, stając się całkowicie uzasadnionymi.
Tak więc, zamierzając początkowo wydać książkę dla początkujących „delfiarzy”, zy-
skaliśmy nieoczekiwanie pozycję o charakterze uniwersalnym. Aby – z konieczności
ogólne – ujęcie tematu nie powodowało uczucia niedosytu wśród czytelników bardziej
zaawansowanych, w wielu miejscach zamieściliśmy odsyłacze do konkretnych stron
wzmiankowanego na początku „vademecum…”, pozwoliliśmy sobie również na zamiesz-
czenie własnych uwag tam, gdzie opisywane kwestie potraktowano (naszym zdaniem)
zbyt ogólnie.
Książka posiada jeszcze i tę zaletę, iż zdobywaną sukcesywnie wiedzę można niemal
natychmiast zweryfikować praktycznie – czemu służą liczne przykłady i ćwiczenia, a nie
ma chyba dla twórcy nic bardziej satysfakcjonującego niż podziwianie efektów własnej
pracy. Trzeba przyznać, iż przykłady towarzyszące omawianym zagadnieniom wybrano
dość reprezentatywnie – niekiedy są to jedynie elementarne aplikacje ilustrujące funk-
cjonowanie danego komponentu czy też jego zdarzeń, nie brak jednak kompletnych
aplikacji bazodanowych, a nawet prostej przeglądarki internetowej; w jednym z rozdziałów
22
Delphi 4 dla każdego
opisano ponadto kompletny proces tworzenia dość użytecznego komponentu, którego
brak jest w standardowym wyposażeniu Delphi. Całości dopełnia dołączona do książki
dyskietka zawierająca kod źródłowy wszystkich prezentowanych przykładów, zaś do-
datkową pomoc stanowią pytania sprawdzające – czytelnik może skonfrontować swą
wiedzę w oparciu o znajdujący się w jednym z dodatków zestaw odpowiedzi.
Pozostaje nam tylko życzyć zadowolenia z lektury – i wielu osiągnięć na kanwie two-
rzenia nowoczesnych aplikacji,
W imieniu redakcji
Andrzej Grażyński
w czerwcu 1999