Kylix. Vademecum profesjonalisty - Helion

Tytuł oryginału: Kylix Developer
Tłumaczenie: Jakub Mirek (rozdz. 1 - 10, 12 - 21), Andrzej Grażyński (rozdz. 11)
ISBN: 83-7197-701-8
stron: 808, Format: B5, okładka: miękka
Data wydania: 2003-08-22
Księgarnia: Helion
Cena książki: 125,00 zł
Stworzenie przez firmę Borland Kyliksa, linuksowego odpowiednika popularnego Delphi, to jeden z kamieni milowych w rozwoju tego systemu operacyjnego. Programiści piszący aplikacje działające w systemie Linux otrzymali zintegrowane środowisko typu RAD, oparte na sprawdzonym języku ObjectPascal, umożliwiające "programowanie wizualne". Ich praca stała się odtąd szybsza i bardziej efektywna.
Książka "Kylix. Vademecum profesjonalisty" to kompletny przewodnik po Kyliksie zawierający zarówno informacje o środowisku programistycznym, jak też pełny opis języka ObjectPascal i bibliotek CLX. Nie zabrakło również prezentacji systemu Linux i jego specyficznych właściwości, która może przydać się osobom znającym już Delphi i rozpoczynającym pracę w nowym systemie operacyjnym.
Książka podzielona jest na pięć części:
- Prezentacja Delphi i Linuksa -- podstawy środowiska RAD, opis ObjectPascala, programowanie obiektowe, środowisko X-Window
- Opis biblioteki CLX -- architektura CLX, palety, tworzenie komponentów, programowanie grafiki w Kyliksie
- Programowanie systemowe w Linuksie -- aplikacje konsolowe, procesy i wątki
- Programowanie bazodanowe w Kyliksie -- DataCLX, sterowniki dbExpress, tworzenie przykładowej aplikacji
- Tworzenie aplikacji WWW -- serwer Apache, komponenty WebBroker
Osoby które kupowały "Kylix. Vademecum profesjonalisty", wybierały także:
- Superinteligencja. Scenariusze, strategie, zagro 67,89 zł, (12,90 zł -81%)
- Matematyka dyskretna. Kurs video. Kombinatoryka i teoria liczb z 249,00 zł, (49,80 zł -80%)
- PLC i TIA Portal. Kurs video. Techniki programowania SIMATIC S7-1200 249,00 zł, (49,80 zł -80%)
- PLC i TIA Portal. Kurs video. Logika sterowania w automatyce przemys 249,00 zł, (49,80 zł -80%)
- Flutter i Dart. Kurs video. Nowoczesne aplikacje mobilne i webowe 169,00 zł, (33,80 zł -80%)
Spis treści
Kylix. Vademecum profesjonalisty -- spis treści
O Autorach (15)
Przedmowa (17)
Wstęp (21)
Część I Poznanie Delphi i Linuksa (31)
Rozdział 1. Programowanie wizualne (33)
- IDE Kyliksa (33)
- Plan ataku (34)
- Pierwsze spojrzenie na IDE (35)
- Menu (36)
- Klawisze skrótów w menu (36)
- Menu podręczne (37)
- Dodawanie nowych narzędzi do menu (37)
- Paski narzędzi (38)
- Programowanie wizualne (39)
- Paleta komponentów (42)
- O pakietach (43)
- Używanie Projektanta formularzy (44)
- Rozmieszczanie komponentów (45)
- Inspektor Obiektów (46)
- Dostrajanie Inspektora obiektów (47)
- Edytowanie pliku xfm (48)
- Ograniczenia i zakotwiczenia (50)
- Porządek tabulatora (52)
- Inspektor Obiektów i zdarzenia (52)
- Źródło modułu Kyliksa (53)
- Interfejs modułu Kyliksa (55)
- Implementacja modułu w Kyliksie (57)
- Teatr tajemnic: Gdzie podziała się metoda FormCreate? (59)
- Pliki źródłowe Pascala (59)
- Pliki projektu Delphi (60)
- Moduły (60)
- Punkty wejścia programów w Pascalu (61)
- Klauzula uses i błędne koła odwołań (62)
- Kompilacja w Kyliksie (64)
- Praca z pojemnikami (Containers) (65)
- Program PanelDesign (67)
Rozdział 2. Pętle, rozgałęzienia, operatory i rekurencja (77)
- Zdefiniowanie pojęć: instrukcja i wyrażenie (77)
- Wyrażenia (78)
- Instrukcje (78)
- Instrukcja warunku: if (80)
- Instrukcja wyboru: case (82)
- Pętle for (84)
- Instrukcja while (86)
- Instrukcja repeat (89)
- Ostatnie uwagi na temat pętli i rozgałęzień (91)
- Słów kilka o operatorach (91)
- Operator podstawienia (91)
- Operator dzielenia (91)
- Operatory boolowskie i logiczne (92)
- Operatory relacji (93)
- Pobranie adresu zmiennej (94)
- Operatory w arytmetyce łańcuchów i wskaźników (94)
- Ostatnie uwagi na temat operatorów (95)
- Rekurencja (95)
- Silnia (96)
- Ciągi Fibonacciego (98)
- Rekursywne rysowanie (99)
Rozdział 3. Podstawowa składnia Pascala (101)
- Zawartość tego rozdziału (101)
- Typy całkowitoliczbowe i zmiennoprzecinkowe (102)
- Typy porządkowe (103)
- Procedury obsługujące liczby porządkowe (105)
- Typy wyliczeniowe (107)
- Typy zmiennoprzecinkowe (108)
- Łańcuchy znakowe w Pascalu (114)
- Łańcuchy typu ShortString (116)
- Łańcuchy typu AnsiString (117)
- Łańcuchy typu PChar (120)
- Łańcuchy typu WideString (121)
- Rzutowanie typów (122)
- Operatory as, if i parametr Sender (122)
- Tablice (124)
- Stałe tablicowe (125)
- Tablice dynamiczne i tablice obiektów (126)
- Sprawdzaj swoje tablice - włącz Range Checking (130)
- Rekordy (131)
- Rekordy i instrukcja with (132)
- Rekordy wariantowe (132)
- Wskaźniki (136)
- Praca ze wskaźnikami do obiektów (138)
- Wskaźniki, konstruktory i destruktory (141)
- Metody wirtualne i dyrektywa override (142)
- Czego nie znajdziesz w Object Pascalu (143)
Rozdział 4. Obiekty i interfejsy (145)
- Model obiektu w Kyliksie (145)
- Gdzie zadeklarować obiekt (146)
- Zakres widzialności w klasie (147)
- Zakres widzialności w klasach wzajemnie się do siebie odwołujących (148)
- Deklarowanie metod (149)
- Model dziedziczenia w Object Pascalu: virtual i override (150)
- Użycie w deklaracji dyrektywy dynamic zamiast virtual (151)
- Wywoływanie przodka przedefiniowanej metody: inherited (154)
- Dyrektywa abstract (155)
- Dyrektywa overload (156)
- Tworzenie i zwalnianie instancji klasy (157)
- Metody klasowe (157)
- Interfejsy (158)
- Typ interface (160)
- Interfejs nie jest klasą! (161)
- Nie można bezpośrednio implementować interfejsu (161)
- Użycie klasy do zaimplementowania interfejsu (162)
- Wywoływanie metod interfejsu (165)
- Niszczenie interfejsów (167)
- Wiele interfejsów w jednym obiekcie (169)
- Klauzula wyboru metody (172)
- Deklaracja IInterface (173)
- Interfejsy w teorii (177)
- Dlaczego warto używać interfejsów (178)
- Pielęgnacja i uaktualnianie interfejsu (180)
- Typ wariantowy (181)
- RTTI i typy zmiennoprzecinkowe (188)
- Ramki (194)
- Tworzenie ramek (195)
- Wielokrotne użycie ramek (197)
- Kompilacja z linii poleceń (198)
Rozdział 5. Edytor i debugger (201)
- Edytor kodu źródłowego i inne narzędzia (201)
- Kilka słów o edytorze i debuggerze (201)
- Wpływanie na wizualne narzędzia z poziomu edytora (202)
- Menedżer projektu (205)
- Eksplorator kodu (207)
- Dostosowywanie wyglądu eksploratora kodu (210)
- Generowanie kodu: kompletowanie klas w edytorze i eksploratorze (211)
- Przeglądarka (216)
- Lista To-Do (218)
- Okna narzędziowe (220)
- Zapamiętanie pulpitu i pulpitu śledzenia (222)
- "Magiczne" narzędzia: Code Insight (222)
- "Cud" kompletowania kodu (223)
- "Cud" wglądu - Parameter Insight (224)
- Code Insight: przeglądanie swojego kodu (225)
- Stosowanie szablonów kodu zwiększa szybkość pisania programów (226)
- Używanie debuggera (228)
- Krokowe przechodzenie kodu (229)
- Kod, z którym debugger sobie nie poradzi: optymalizacje (231)
- Kod, przez który nie można przejść: Konsolidator (232)
- Podglądanie kodu w oknie Watch List (233)
- Badanie zmiennej (234)
- Praca z punktami wstrzymania (235)
- Używanie wyjątków do ulepszenia swojego kodu (237)
- Deklarowanie własnych klas wyjątków (238)
- Klauzula finally i ponowne zgłaszanie wyjątku (239)
- Używanie okna CPU (240)
- System pomocy Kyliksa (242)
- Elf Debug Server (243)
- Usługi w module DebugHelp (254)
- Dane wyjściowe z modułu DebugHelp (255)
- Wysyłanie informacji do pliku (256)
- Wysyłanie informacji do serwera HTTP (257)
- Odbieranie informacji HTTP na serwerze (258)
- Pole listy typu owner draw (259)
Rozdział 6. Poznanie środowiska Linuksa (261)
- Środowisko systemu Linux w skrócie (262)
- Środowisko graficzne w Linuksie (262)
- Anatomia środowiska graficznego (264)
- Struktura systemu X Window (265)
- Historia systemu X Window (265)
- Nazwa systemu X Window (265)
- Czym jest system X Window? (265)
- Sieć i model X klienta/serwera (266)
- Wąski kanał pomiędzy X serwerem a X klientem (266)
- Podłączanie się do zdalnego serwera (267)
- Programowanie pod X w Kyliksie (268)
- Program typu Hello World w X (270)
- Tworzenie głównego okna za pomocą XCreateWindow (277)
- Kaskadowy porządek okien (283)
- Tworzenie kontekstu grafiki (283)
- Pętla zdarzeń (284)
- Podsumowanie dotyczące pisania programów w X (286)
- Menedżery okien (287)
- Po co stworzono menedżery okien (287)
- Potęga menedżerów okien (287)
- Nazewnictwo menedżerów okien (288)
- Biblioteki obiektów graficznych (288)
- Kontrolki, komponenty i widgety (288)
- Kilka słów o środowiskach graficznych (289)
- Środowisko KDE (289)
- Środowisko GNOME (289)
Część II CLX (291)
Rozdział 7. Architektura CLX i programowanie wizualne (293)
- Qt i CLX (294)
- FreeCLX (297)
- Qt i zdarzenia (298)
- Komunikaty w CLX (299)
- Sygnały i odbiorniki w Qt (301)
- Obiekt aplikacji Qt i pętla zdarzeń (303)
- Wywoływanie "surowego" kodu Qt w Object Pascalu (304)
- Program Slider w CLX (306)
- CLX, Qt i obiekt haka (307)
- Metoda EventFilter (311)
- Praca ze stylami (317)
- Praca z zasobami (320)
- Zasoby łańcuchów znakowych (321)
- Tworzenie nieprostokątnych formularzy (322)
- Dziedziczenie formularzy (323)
- Przedefiniowanie inicjalizacji widgetu (325)
- Rysowanie kształtu formularza (329)
Rozdział 8. Pakiety i kod współdzielony (331)
- Strona teoretyczna architektury komponentów (331)
- Tworzenie komponentów potomnych (333)
- Zapisywanie owoców swojej pracy (338)
- Określanie cech komponentu (338)
- Testowanie komponentu (340)
- Pakiety: umieszczanie komponentu na palecie (341)
- Czym jest pakiet? (341)
- Pakiety i LD_LIBRARY_PATH (342)
- Pakiety i paleta komponentów (344)
- Tworzenie pakietów (345)
- Pakiety projektowe i wykonawcze (347)
- Ikony: praca z plikami dcr (348)
- Jednoczesne otwieranie pakietu i projektu (348)
- Klauzula requires (348)
- Rejestrowanie komponentów (349)
- Korzystanie z pakietów wewnątrz programu (349)
- Wejście do pakietu w czasie działania programu (353)
- Tworzenie obiektu współdzielonego (354)
- Wywoływanie procedur z biblioteki w Kyliksie (357)
- Dynamiczne ładowanie obiektów współdzielonych (358)
Rozdział 9. Tworzenie komponentów (359)
- Praca z komunikatami (360)
- Proste komunikaty: przydatna kontrolka (360)
- Reagowanie na komunikaty (362)
- Praca z metodą EventFilter w komponentach (363)
- Rozszerzenie modułu ElfControls (366)
- Sztuka nazywania komponentów (377)
- Kontrolki TElfBigEdit i TElfEmptyPanel (377)
- Komponenty złożone (378)
- Tworzenie właściwości published w komponencie (381)
- Wzmianka na temat zapisywania właściwości (382)
- Drugi złożony komponent (383)
- Tworzenie komponentu łączącego TLabel i TEdit (389)
- Zmienianie położenia etykiety (399)
- TElfLabelEdit a kompatybilność z Windows (401)
- Etykiety z tekstem 3D (402)
Rozdział 10. Zaawansowane tworzenie komponentów (405)
- Właściwości (406)
- Deklarowanie właściwości (406)
- Oglądanie właściwości w inspektorze obiektów (409)
- Więcej o właściwościach (410)
- Budowanie komponentów od podstaw (421)
- Komponent zegara (423)
- Poznanie TElfClock (429)
- Metoda Paint zegara (430)
- Komponent TElfColorClock (431)
- Tworzenie fantazyjnego zegara (432)
- Tworzenie ikon dla komponentów (436)
- Tools API: edytory właściwości i komponentów (437)
- Kod fazy projektowej i kod fazy wykonawczej (442)
- Tools API w Kyliksie (442)
- Tools API i Wine (443)
- Tools API i interfejsy (443)
- Edytory właściwości (444)
- Więcej na temat rejestrowania komponentów i ich edytorów (449)
- Edytory komponentów (451)
- Kilka słów na temat pielęgnacji komponentów (452)
- Szablony komponentów (453)
Rozdział 11. Grafika w Kyliksie (455)
- Najważniejsze obiekty modułu QGraphics.pas (455)
- TCanvas (456)
- Bezpośrednie wykorzystywanie funkcji biblioteki Qt (457)
- Zmiana układu współrzędnych (460)
- Kolory (462)
- Pędzle (463)
- Pióra (467)
- Czcionki (472)
- Rysowanie figur geometrycznych (474)
- Zastosowanie - zbiór Mandelbrota (478)
- "Naciąganie gumki" (487)
- Zachowywanie obrazu (489)
- Definiowanie zdarzeń i obsługa zdarzenia OnPaint (491)
- LoadResource - odczyt sceny początkowej (492)
- Zastosowanie - labirynt pseudo-3D (493)
- Architektura świata pseudo-3D (494)
- Tworzenie elementów graficznych (496)
- Powierzchnie i buforowanie dublujące (497)
- Podstawowy kod maszynerii (498)
- Implementowanie interfejsów (520)
- ISimpleSurface - projektowanie wymiennego zaplecza (523)
- Rysowanie ścian segmentów we właściwej lokalizacji (525)
Część III Programowanie systemowe w Linuksie (529)
Rozdział 12. Aplikacje konsolowe, zarządzanie pamięcią i operacje na plikach (531)
- Aplikacje konsolowe (531)
- Programowanie konsolowe (532)
- Uruchamianie aplikacji konsolowej (533)
- Zarządzanie pamięcią (533)
- Zmienne i struktury danych (534)
- Obiekty (535)
- Operacje na plikach w Kyliksie (536)
- Operacje na plikach w tradycyjnym Pascalu (536)
- Operacje na plikach z użyciem TFileStream (539)
- Specyfika plików w Linuksie (543)
- Korzystanie z funkcji biblioteki glibc (546)
Rozdział 13. Procesy i wątki (547)
- Sposoby wykonywania aplikacji w Linuksie (547)
- Obsługa wątków w Kyliksie (549)
- Dostęp do pamięci w wątkach (551)
- Błędy synchronizacji i bezpieczeństwo wątku (551)
- Metoda Synchronize obiektu wątku (552)
- Sekcje krytyczne (553)
- Synchronizator Multi-Read Exclusive-Write (554)
- Mechanizmy blokowania (554)
- Ukończenie i przerwanie pracy wątku (555)
- Debugowanie wielowątkowych aplikacji (556)
- Kilka ostatnich słów na temat wątków (557)
- Kontrola procesów w Linuksie i komunikacja międzyprocesowa (557)
- Tworzenie nowych procesów (558)
- Sygnalizowanie procesów (560)
Część IV DataCLX (561)
Rozdział 14. Podstawy DataCLX (563)
- Architektura DataCLX (563)
- Dostęp do danych (563)
- Łączenie się z bazą danych (564)
- Odbieranie danych (565)
- Wizualne kontrolki danych (566)
- Wyświetlanie danych za pomocą wizualnych kontrolek danych (566)
- Typowy przepływ danych (571)
- Interaktywna manipulacja danymi (571)
- Publikowanie danych (572)
- Konfigurowanie serwera (573)
- Łącze do InterBase (574)
- Łącze do MySQL (575)
- Łącze do DB2 (575)
- Łącze do Oracle (576)
Rozdział 15. Praca z komponentami danych (577)
- TSQLConnection (577)
- Właściwości komponentu TSQLConnection (579)
- Metody TSQLConnection (580)
- Zdarzenia TSQLConnection (581)
- TSQLDataSet (583)
- TSQLQuery (584)
- TSQLStoredProc (584)
- TSQLTable (584)
- TClientDataSet (585)
- Właściwości TClientDataSet (586)
- Metody TClientDataSet (588)
- TDataSetProvider (592)
- TSQLClientDataSet (593)
- TSQLMonitor (593)
- Przykłady zwykłego użycia zestawów danych (595)
- Kwerendy (595)
- Pola wiązane (595)
- Kwerendy parametryzowane (597)
- Związki master-detail (597)
- Dostosowywanie arkusza detali (598)
- Pola kalkulowane (599)
- Lokalne przeszukiwanie przyrostowe (600)
- Lokalne filtrowanie (602)
- Zakładki (602)
- Używanie procedur zapisanych w bazie danych (605)
- Tymczasowe klucze po stronie klienta (607)
- Pola agregowane (608)
Rozdział 16. Warstwa dostępu do danych (611)
- Przeznaczenie warstwy dostępu do danych (611)
- Zmaksymalizowanie szybkości dostępu do danych (612)
- Zapewnienie niezależności od platformy (612)
- Zapewnienie łatwego wdrażania (612)
- Zminimalizowanie rozmiaru i użycia zasobów (613)
- Zapewnienie wspólnego interfejsu do wydajnego przetwarzania SQL i procedur zapisanych w bazie danych (613)
- Uczynienie programowania sterowników łatwym i rozszerzalnym (613)
- Zapewnienie dostępu do specyficznych funkcji bazy danych (614)
- Ważny rysunek (614)
- Zestawy danych MyBase (615)
- Formaty (binarny i XML) (615)
- Metadane (616)
- Restrykcje (618)
- Dane (618)
- Typy pól (618)
- Pola specjalne (618)
- Pakiety delta (618)
- Zwrot do nadawcy (621)
- Łączność z bazami danych (621)
- Abstrakcja dbExpress (622)
- Odwzorowanie typów danych (634)
- Programowanie sterowników dbExpress (635)
- Znajomość biblioteki klienta różnych producentów baz danych (635)
- Inicjalizowanie środowiska (636)
- Łączenie z serwerem bazy danych (636)
- Inicjalizowanie uchwytów instrukcji SQL (636)
- Przygotowywanie instrukcji SQL (637)
- Przekazywanie parametrów (637)
- Wykonywanie instrukcji SQL (638)
- Wiązanie bufora rekordów (638)
- Pobieranie rekordów (639)
- Zwalnianie uchwytów i rozłączanie (639)
- Implementacja rdzenia dbExpress (640)
- SQLDriver (640)
- SQLConnection (641)
- SQLCommand (642)
- SQLCursor (645)
- SQLMetaData (645)
Rozdział 17. Tworzenie rzeczywistej aplikacji (647)
- Opis aplikacji (647)
- Definiowanie bazy danych (647)
- Tabele (648)
- Indeksy (651)
- Ograniczenia danych (652)
- Generatory (652)
- Procedury przechowywane w bazie danych (653)
- Wyzwalacze (655)
- Podstawowy projekt (657)
- Moduł danych (657)
- Graficzny interfejs użytkownika (661)
- Prezentowanie danych (661)
- Edycja danych (662)
- Rozszerzanie funkcjonalności (663)
- Interfejs WWW (665)
- Formatowanie (665)
- Rozmieszczenie danych (669)
- Nawigowanie (672)
Rozdział 18. Optymalizacja aplikacji baz danych (675)
- Wstęp (675)
- Zapełniaj bazę danymi (676)
- Monitoruj komunikację SQL (676)
- Unikaj trzymania transakcji otwartych przez długi okres czasu (677)
- Nie parametryzuj zapytań zawierających słowo like (677)
- Unikaj kluczy podstawowych i kluczy obcych (678)
- Używaj procedur składowanych w bazie (679)
- Bądź "wyzwolony" (680)
- Bądź wymagający (680)
- Parametryzuj i przetwarzaj zapytania w celu zmaksymalizowania wydajności (681)
- Unikaj pobierania wszystkiego (681)
- Zasady Roba o złączeniach zewnętrznych lewostronnych (681)
- Zaprojektuj odpowiednio bazę danych (682)
- Użyj skorelowanych podzapytań (683)
- Użyj procedur przechowywanych w bazie danych (683)
- Użyj sprzężeń zewnętrznych lewostronnych (684)
- Buforuj tabele powiązań w dużych bazach danych z wieloma użytkownikami (684)
- Używaj sprytnych powiązań (685)
- Wyłącz metadane (685)
- Potrzebujesz szybkości? Wyłącz opcję synchronicznego zapisu (686)
- Indeksowanie bazy danych (686)
- Selektywność (686)
- Ostrożnie z kluczami obcymi (687)
- Indeksy wielokolumnowe (687)
- Porządek w indeksie (687)
- Indeksuj oszczędnie (687)
- Wskazówki dotyczące InterBase (687)
- Nie używaj dużych typów varchar (687)
- W swojej końcowej aplikacji używaj zawsze zdalnego połączenia (688)
- Używaj stron o wielkości 2 kB lub 4 kB (688)
- Plany indeksów (688)
- Określ bufor podręczny bazy danych przy pomocy Gfix (694)
- Uruchamiaj InterBase na maszynach jednoprocesorowych (694)
Część V WWW (695)
Rozdział 19. Aplikacje serwera Apache (697)
- Aplikacje internetowe (697)
- Aplikacje CGI (698)
- Formularze (698)
- Serwer WWW Apache (699)
- Kylix i CGI (700)
- Konfiguracja dla CGI (703)
- Konfiguracja dla DSO (704)
Rozdział 20. Programowanie aplikacji WWW (707)
- Moduł aplikacji (707)
- Nowa aplikacja internetowa (708)
- Komponenty WebBroker (709)
- TWebDispatcher (709)
- TWebModule (711)
- TWebResponse (713)
- TWebRequest (713)
- Prezentowanie danych (715)
- Symulowanie zapytania GET (717)
- Generowanie stron (718)
- TPageProducer (718)
- HTMLDoc kontra HTMLFile (721)
- TDataSetPageProducer (722)
- Generowanie tabel (730)
- TDataSetTableProducer (731)
- Poprawianie wyglądu strony (736)
- Związek Master-Detail (737)
Rozdział 21. Zaawansowane programowanie serwerów WWW (741)
- Nowa wersja WebApp42 (741)
- Producer i ProducerContent (742)
- dbExpress (742)
- TDataSetTableProducer (744)
- TSQLQueryTableProducer (745)
- PrepareSQLQueryTableProducer (748)
- Zarządzanie informacją o stanie (750)
- Rozszerzone URL (751)
- Mechanizm Cookies (755)
- Ukryte pola (757)
- Zaawansowane wytwarzanie stron (759)
- Obrazki (764)
- Strategie międzyplatformowej uniwersalności kodu (772)
Dodatki (775)
Skorowidz (777)





