Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia języka programowania Delphi 18 1.3. Podstawowe informacje o pakiecie Embarcadero Delphi XE2 20 1.4. Zintegrowane środowisko programowania 22 1.4.1. Podstawowe elementy środowiska 23 1.4.2. Przygotowanie elementów programów 43 1.4.3. Programy tekstowe 50 Rozdział 2. Przegląd konstrukcji języka 52 2.1. Główne konstrukcje języka 52 2.2. Program 60 2.3. Moduł 65 2.4. Inne jednostki programowe 68 Rozdział 3. Podstawowe elementy języka 69 3.1. Symbole podstawowe i specjalne 69 3.2. Identyfikatory i zakresy ich waŝności 70 3.3. Słowa kluczowe i dyrektywy języka 73 3.4. Liczby 74 3.5. Łańcuchy 75 3.6. Literały logiczne 77 3.7. Komentarze i separatory 77 Rozdział 4. Typy danych i ich opis 79 4.1. Definiowanie typów 79 4.2. Typy proste 81 4.2.1. Typy porządkowe 82 4.2.1.1. Typy wyliczeniowe 82 4.2.1.2. Typy całkowite 84 4.2.1.3. Typy znakowe 85 4.2.1.4. Typy logiczne 85 4.2.1.5. Typy okrojone 86 4.2.2. Typy rzeczywiste 87 4.3. Typy łańcuchowe 90
4.3.1. Typy łańcuchowe krótkie 90 4.3.2. Typy łańcuchowe długie 91 4.3.3. Łańcuchy Unicode 92 4.3.4. Łańcuchy zakończone znakiem pustym 92 4.3.5. Łańcuchy zasobowe 94 4.4. Typy strukturalne 95 4.4.1. Typy tablicowe 95 4.4.1.1. Tablice statyczne 96 4.4.1.2. Tablice dynamiczne 98 4.4.2. Typy rekordowe 98 4.4.2.1. Rekordy klasyczne 99 4.4.2.2. Rekordy klasopodobne 103 4.4.2.3 Rekordy pomocnicze 104 4.4.3. Typy zbiorowe 105 4.4.4. Typy plikowe 106 4.5. Typy opisujące obiekty 108 4.5.1. Typy klasowe 108 4.5.2. Odwołania do klas 118 4.5.3. Klasy pomocnicze 119 4.6. Typy wskaźnikowe 120 4.6.1. Typ standardowy Pointer 121 4.6.2. Inne standardowe typy wskaźnikowe 121 4.7. Typy proceduralne 122 4.7.1. Ogólne typy proceduralne 123 4.7.2. Obiektowe typy proceduralne 124 4.8. Typy wariantowe 125 4.9. ZagnieŜdŜone definicje typów 129 4.10. Zgodność typów 131 Rozdział 5. Zmienne oraz literały stałe i zmienne 134 5.1. Deklaracje zmiennych 134 5.2. Zmienne indeksowane 135 5.3. Zmienne rekordowe, obiektowe i desygnatory 141 5.4. Zmienne dynamiczne 143 5.5. Zmienne proceduralne 145 5.6. Zmienne wariantowe 147 5.7. Zmienne wątkowe 150 5.8. Zmienne z początkowa wartością 150 5.9. Nakładanie zmiennych 151 5.10. Odwołanie do zmiennej 152 5.10.1. Zmiana typu zmiennej w odwołaniu 152 5.10.2. Ogólna postać odwołania do zmiennej 154 5.11. Literały 156 5.11.1. Definicje nazw literałów 156 5.11.2. Literały przeznaczone tylko do odczytu i literały zmienne 157
5.12. ZagnieŜdŜone definicje literałów 161 Rozdział 6. WyraŜenia 162 6.1. Priorytet operatorów i składnia wyraŝenia 162 6.2. Operatory arytmetyczne 165 6.3. Operatory logiczne 168 6.4. Operatory relacyjne 176 6.5. Operatory teoriomnogościowe 179 6.6. Konkatenacja 180 6.7. Operatory w wyraŝeniach wariantowych 181 6.8. Operator @ 189 6.9. Operatory wskaźników znaków 191 6.10. Operatory odwołań do klas i obiektów 192 6.11. WyraŜenia stałe 193 6.12. Zmiana typu wyraŝenia 194 6.13. PrzeciąŜanie operatorów 195 Rozdział 7. Instrukcje 201 7.1. Instrukcje proste 201 7.1.1. Instrukcja przypisania 201 7.1.2. Instrukcja skoku 203 7.1.3. Instrukcja pusta 204 7.2. Instrukcje strukturalne 204 7.2.1. Instrukcja złoŝona 205 7.2.2. Instrukcje warunkowe 205 7.2.2.1. Instrukcja jeśli" 205 7.2.2.2. Instrukcja wyboru 209 7.2.3. Instrukcje iteracyjne 211 7.2.3.1. Instrukcja dla" 212 7.2.3.2. Instrukcja dopóki" 219 7.2.3.3. Instrukcja powtarzaj" 220 7.2.4. Instrukcja wiąŝąca 221 7.2.5. Instrukcje obsługi warunków i stanów wyjątkowych 225 7.2.5.1. Instrukcja wywoływania stanów wyjątkowych 226 7.2.5.2. Instrukcja try...except 227 7.2.5.3. Instrukcja try...finally 232 7.2.5.4. Predefiniowane warunki i stany wyjątkowe 234 7.3. Instrukcja asemblerowa 237 Rozdział 8. Funkcje i procedury 239 8.1. Definicje funkcji i procedur 240 8.1.1. Parametry przekazywane przez wartości 244 8.1.2. Parametry przekazywane przez stałe określonego typu 244 8.1.3. Parametry przekazywane przez zmienne określonego typu 245 8.1.4. Parametry przekazywane przez stałe i zmienne nieokreślonego typu 246
8.1.5. Parametry wyjściowe 246 8.1.6. Parametry otwarte 247 8.1.7. Tablicowe parametry otwarte typu wariantowego 248 8.1.8. Parametry o domyślnej wartości 250 8.2. PrzeciąŜanie funkcji i procedur 250 8.3. Przykłady definicji funkcji i procedur 252 8.4. Wywołanie funkcji 266 8.5. Wywołanie procedury 277 8.6. Konwencje wywoływania funkcji i procedur oraz dyrektywa inline 288 8.7. Funkcje i procedury anonimowe 291 8.7.1. Definiowanie i stosowanie funkcji procedur anonimowych 291 8.7.2. Wiązanie wartości ze zmiennymi 294 8.8. Funkcje i procedury asemblerowe 295 8.9. Podprogramy zewnętrzne 296 Rozdział 9. Przetwarzanie obiektów 298 9.1. Definicje metod 300 9.1.1. Parametr Self 303 9.1.2. Definicje typów klasowych i metod w modułach 304 9.1.3. Inicjowanie obiektów i zwalnianie zajętej przez nie pamięci - konstruktory i destruktory 309 9.1.4. Metody statyczne 316 9.1.5. Metody wirtualne 317 9.1.6. Metody dynamiczne 319 9.1.7. Metody abstrakcyjne 320 9.1.8. PrzeciąŜanie metod 320 9.1.9. Metody klasowe 321 9.2. Obsługa wiadomości 322 9.2.1. Deklaracje metod obsługujących wiadomości 324 9.2.2. Definicje metod obsługujących wiadomości 324 9.2.3. Wysyłanie wiadomości 325 9.3. Własności 327 9.3.4. Deklarowanie własności 328 9.3.2. Dostęp do wartości własności 330 9.3.3. Własności tablicowe 331 9.3.4. Specyfikacje opcjonalne w deklaracjach własności 332 9.3.5. Pokrywanie własności 334 9.3.6. Własności klasowe 335 Rozdział 10. Łącza programowe 337 10.1. Definiowanie i implementowanie łącz 339 10.1.1. Definiowanie łącz 339 10.1.2. Implementowanie łącz 342 10.1.3. Odwołania do łącz 349 10.2. Łącza wysyłkowe i dualne 351
10.3. Etapy tworzenia komponentów ActiveX i obiektów automatyzacji OLE 353 Rozdział 11. Dodatkowe informacje o modułach i przestrzenie nazwane 375 11.1. Dostęp do elementów części opisowej modułów 376 11.2. Części: inicjująca i finalizująca 379 11.3. Odwołania cykliczne i pośrednie do modułów 380 11.4. Przestrzenie nazwane 383 Rozdział 12. Biblioteki łączone dynamicznie 386 12.1. Dostęp do procedur i funkcji bibliotek DLL 387 12.1.1. Moduły importowe 389 12.1.2. Importowanie statyczne, odwleczone i dynamiczne z bibliotek DLL 390 12.2. Tworzenie bibliotek DLL 393 12.2.1. Zmienne globalne w bibliotekach DLL 400 12.2.2. Stany wyjątkowe i błędy wykonania w bibliotekach DLL 401 Rozdział 13. Pakiety 402 13.1. Ogólna postać pakietu 402 13.2. Korzystanie z pakietów 404 13.3. Tworzenie pakietów 405 Rozdział 14. Operacje wejścia-wyjścia 407 14.1. Standardowe wejście-wyjście w programach tekstowych 409 14.2. Przetwarzanie plików 417 14.2.1. Otwieranie i zamykanie plików 419 14.2.2. Zakładanie pliku i wyprowadzanie elementów do pliku 422 14.2.3. Przeszukiwanie pliku i wprowadzanie elementów z pliku 432 14.2.4. Inne operacje wykonywane na plikach i operacje dotyczące katalogów 443 Rozdział 15. Typy sparametryzowane 446 15.1. Definiowanie typów sparametryzowanych 447 15.2. Sparametryzowane typy proceduralne i metody 450 15.3. Ograniczenia w typach sparametryzowanych 453 Dodatek A. Kody znaków zestawu znaków Unicode 455 Dodatek B. Funkcje i procedury standardowe 459 B.1. Moduł System 459 B.1.1. Procedury przerywające wykonywanie instrukcji iteracyjnych i programu 459 B.1.2. Procedury dynamicznego przydziału i zwalniania pamięci 460 B.1.3. Funkcje i procedury do przetwarzania tablic dynamicznych 462
В.1.4. Funkcje adresowe i wskaźnikowe 465 В.1.5. Funkcje do wykonywania konwersji 465 В.1.6. Funkcje arytmetyczne 467 В.1.7. Generowanie liczb losowych 468 В.1.8. Funkcje i procedury porządkowe 469 В.1.9. Testowanie wyraŝeń logicznych 470 В.1.10. Operacje teoriomnogościowe 470 В.1.11. Funkcje i procedury przetwarzające łańcuchy 471 В.1.12. Funkcje i procedury do przetwarzania plików 473 B.1.13. Sterowanie słowem sterującym jednostki arytmetyki zmiennopozycyjnej 475 B.1.14. Inne funkcje i procedury modułu System 477 B.2. Moduł System.SysUtits 478 B.2.1. Funkcje i procedury obsługi warunków błędów i stanów wyjątkowych 478 B.2.2. Funkcje i procedury dotyczące daty i czasu 480 B.2.3. Funkcje i procedury do konwersji wartości liczbowych 488 B.3. Moduł System.Math 494 B.3.1. Funkcje i procedury trygonometryczne 495 B.3.2. Funkcje hiperboliczne i area funkcje 496 B.3.3. Funkcje logarytmiczne 498 B.3.4. Funkcje wykładnicze i potęgowe 498 B.3.5. Funkcje i procedury do obliczeń statystycznych 499 B.3.6. Funkcje i procedury do sterowania słowem sterującym jednostki arytmetyki zmiennopozycyjnej 501 B.3.7. Inne funkcje i procedury modułu System.Math 503 B.4. Moduł System. Variants 504 B.4.1. Funkcje i procedury do określania typów wariantów i nadawani im wartości 505 B.4.2. Funkcje i procedury do wykonywania operacji na tablicach wariantowych 508 B.4.3. Konwersje wariantów 512 Dodatek C. Główne metody typu TApplication 513 Dodatek D. Okienka z komunikatami 519 Dodatek E. Dyrektywy kompilatora 532 E.1. Dyrektywy przełącznikowe 533 E.2. Dyrektywy parametryczne 546 E.3. Dyrektywy warunkowe 550 Dodatek F. Wewnętrzne reprezentacje danych 553 Literatura 561
Alfabetyczny spis elementów języka Delphi 563 oprac. BPK