
Firma Borland, producent cenionych środowisk programistycznych, połączyła swoje trzy najpopularniejsze produkty: C++ Builder, Delphi i C# Builder, tworząc pakiet Borland Developer Studio 2006. Jednym z jego elementów jest najnowsza wersja C++ Builder, oznaczona symbolem 2006, która nadal pozostaje doskonałym narzędziem do tworzenia aplikacji dla platformy Win32. C++ Builder 2006 pozwala na korzystanie z biblioteki VCL, wywołań WinAPI i funkcji systemu Windows.
Książka "C++ Builder 2006. 222 gotowe rozwiązania" to zbiór porad związanych z tworzeniem aplikacji dla systemu Windows. Wśród tytułowych 222 rozwiązań znajdziesz sposoby wykorzystywania komponentów z biblioteki VCL, elementów interfejsu programistycznego Windows (WinAPI), a także komunikatów systemowych oraz technologii COM, OLE i ActiveX. Dowiesz się, jak tworzyć biblioteki DLL i jak z nich korzystać, oraz nauczysz się projektować wspomaganą sprzętowo grafikę 3D za pomocą biblioteki OpenGL.
- Korzystanie ze środowiska C++ Builder 2006
- Projektowanie okien aplikacji
- Operacje na rejestrze systemowym
- Tworzenie wygaszaczy ekranu
- Kontrolowanie działania aplikacji za pomocą funkcji WinAPI
- Obsługa połączeń sieciowych
- Tworzenie bibliotek DLL
- Tworzenie grafiki i animacji 3D
Wykorzystaj w pracy gotowe rozwiązania,
sprawdzone przez najlepszych programistów.
Wstęp (13)Część I Borland Developer Studio 2006 (15)
Rozdział 1. Poznajemy C++Builder 2006 (17)
- Pierwszy projekt (17)
- Projekt 1. Aplikacja Kolory (17)
- Projekt 2. Zmiana tytułu formy (19)
- Projekt 3. Zmiana napisu na panelu (20)
- Projekt 4. Uzgadnianie stanu komponentów po uruchomieniu aplikacji (21)
- Projekt 5. Ustalanie pozycji okna po uruchomieniu (22)
- Projekt 6. Zapisywanie projektu w plikach (22)
- Ustawienia projektu (25)
- Projekt 7. Zmiana tytułu i ikony aplikacji (25)
- Projekt 8. Informacje o wersji aplikacji dołączane do skompilowanego pliku .exe (26)
- Przygotowanie aplikacji do dystrybucji (28)
- Analiza kodu pierwszej aplikacji (29)
- Konfiguracja środowiska w wielkim skrócie (31)
- Automatyczne zapisywanie plików projektu (32)
- Dostosowanie menu File/New (32)
- Opcje edytora (33)
- Debugowanie kodu (34)
- Wskaźniki (42)
- Wskaźniki do zmiennych i obiektów. Stos i sterta (42)
- Zagrożenia związane z wykorzystaniem wskaźników (44)
- Wskaźniki do funkcji i metawskaźniki (46)
- Podsumowanie (47)
- Referencje (48)
- Szablony (49)
- Klasy (50)
- Deklaracja klasy. Pola (50)
- Konstruktor (51)
- Metody (53)
- Operatory składowe (54)
- Przechwytywanie standardowego strumienia wyjścia (56)
- Wyjątki (57)
- Sztuczki z oknami (59)
- Projekt 9. Łagodne znikanie okna przy zamknięciu (59)
- Projekt 10. Dowolny kształt formy z wykorzystaniem własności TransparentColor (61)
- Projekt 11. Zamykanie aplikacji naciśnięciem klawisza Esc (62)
- Projekt 12. Aby okno wyglądało tak samo w systemach z różną wielkością czcionki (63)
- Projekt 13. Aby ograniczyć rozmiary formy (63)
- Projekt 14. Przeciąganie formy myszą za dowolny punkt (63)
- Projekt 15. Wizytówka programu (splash screen) (65)
- Rejestr systemu Windows (67)
- Projekt 16. Przechowywanie położenia i rozmiaru okna w rejestrze (68)
- Projekt 17. Aby uruchamiać aplikację po zalogowaniu się użytkownika (71)
- Projekt 18. Umieszczanie informacji o zainstalowanym programie (aplet Dodaj/Usuń programy) (74)
- Projekt 19. Gdzie jest katalog z moimi dokumentami? (79)
- Projekt 20. Dodawanie pozycji do menu kontekstowego związanego z zarejestrowanym typem pliku (81)
- Pliki INI (83)
- Projekt 21. Jak umieścić na pulpicie lub w menu Start skrót do strony WWW? (84)
- Projekt 22. Jak odczytać i zmienić rozmiar formy? (85)
- Zagadnienia związane z projektowaniem edytorów (86)
- Projekt 23. Wczytywanie pliku ze wskazanego przez użytkownika pliku. Okno dialogowe TOpenDialog (87)
- Projekt 24. Okno dialogowe wykorzystywane przy zapisywaniu dokumentu w pliku (89)
- Projekt 25. Przeszukiwanie tekstu. Okno dialogowe TFindDialog (90)
- Projekt 26. Formatowanie fragmentów tekstu w komponencie TRichEdit. Okno dialogowe TFontDialog (92)
- Projekt 27. Formatowanie poszczególnych atrybutów czcionki (93)
- Projekt 28. Powiadamianie o niezapisanych dokumentach (95)
- Projekt 29. Wczytywanie dokumentu z pliku wskazanego jako parametr linii komend (97)
- Projekt 30. Jak dodać aplikację do listy edytorów dostępnych z menu kontekstowego plików o danym rozszerzeniu? (97)
- Mechanizm drag & drop (97)
- Projekt 31. Mechanizm przenoszenia i upuszczania w obrębie jednej aplikacji (98)
- Projekt 32. Uelastycznianie kodu. Wykorzystanie referencji Sender (101)
- Projekt 33. Przenoszenie wielu elementów (103)
- Projekt 34. Obsługa pliku przeniesionego na formę z zewnętrznej aplikacji (104)
- Konwersje oraz operacje na łańcuchach i dacie (104)
- Projekt 35. Konwersja między liczbą i łańcuchem. Liczby w TEdit. Konwersja z formatem ustalonym przez programistę (104)
- Projekt 36. Prezentowanie daty i czasu w przyjaznej postaci (106)
- Projekt 37. Rozkładanie daty i czasu na elementy (109)
- Projekt 38. Jak przekonwertować datę utworzenia pliku na datę typu TDateTime i potem na łańcuch? (109)
- Projekt 39. Jak przekształcić łańcuch na pisany wielkimi lub małymi literami? Metody klasy AnsiString (110)
- Pliki i system plików (111)
- Projekt 40. Jak za pomocą komponentów TDriveComboBox, TDirectoryListBox, TFilterComboBox i TFileListBox stworzyć prostą przeglądarkę plików? (111)
- Projekt 41. Przeglądanie katalogów w FileListBox (112)
- Projekt 42. Tworzenie pliku tekstowego (113)
- Projekt 43. Odczytywanie plików tekstowych (114)
- Projekt 44. Pomijanie linii komentarza w plikach tekstowych (116)
- Projekt 45. Rejestrowanie zdarzeń w plikach tekstowych (117)
- Projekt 46. Operacje na plikach i katalogach (120)
- Projekt 47. Odnajdywanie pliku i odczytywanie jego własności (121)
- Projekt 48. Jak wyodrębnić z łańcucha nazwę pliku, jego rozszerzenie lub katalog, w którym się znajduje? (123)
- Projekt 49. Jak sprawdzić ilość wolnego miejsca na dysku? (123)
- Projekt 50. Wczytywanie drzewa katalogów i plików (124)
- Projekt 51. Wczytywanie drzewa katalogów i plików w osobnym wątku (126)
- Projektowanie wygaszaczy ekranu (128)
- Projekt 52. Wygaszacz ekranu (129)
- Projekt 53. Konfiguracja wygaszacza ekranu (135)
- Projekt 54. Podgląd wygaszacza na zakładce Wygaszacz ekranu apletu Właściwości: Ekran (140)
- Drukowanie (143)
- Projekt 55. Drukowanie tekstu znajdującego się w komponencie TRichEdit. Okno dialogowe TPrintDialog (143)
- Projekt 56. Lista dostępnych drukarek. Szczegółowe informacje o drukarce. Wybór domyślnej drukarki aplikacji z poziomu kodu (144)
- Projekt 57. Drukowanie tekstu przechowywanego w TStrings w trybie graficznym (145)
- Projekt 58. Jak wydrukować obraz z pliku? (148)
- Grafika. Rysowanie linii (152)
- Projekt 59. Rysowanie linii (152)
- Projekt 60. Wybór koloru za pomocą komponentu TColorDialog (155)
- Kolorowy pasek postępu (156)
- Projekt 61. Przygotowanie komponentu (156)
- Projekt 62. Testowanie kolorowego paska postępu. Dynamiczne tworzenie komponentu (162)
- Projekt 63. Upublicznianie wybranych własności i zdarzeń, chronionych w klasie bazowej (164)
- Projekt 64. Definiowanie zdarzeń na przykładzie OnPositionChanged (165)
- Projekt 65. Ikona komponentu (167)
- Projekt 66. Aby stworzyć projekt pakietu komponentu (168)
- Projekt 67. Instalowanie komponentu VCL dla Win32 (169)
- Projekt 68. Automatyczna zmiana koloru. Testowanie komponentu i zdarzenia OnPositionChanged (171)
Rozdział 5. Kontrola stanu systemu (177)
- Zamykanie i wstrzymywanie systemu Windows (177)
- Projekt 69. Funkcja ExitWindowsEx (177)
- Projekt 70. Program służący do zamykania lub ponownego uruchamiania dowolnej wersji systemu Windows (182)
- Projekt 71. Funkcja InitiateSystemShutdown (183)
- Projekt 72. Program zamykający wybrany komputer w sieci (186)
- Projekt 73. Hibernowanie i wstrzymywanie systemu za pomocą funkcji SetSystemPowerState (188)
- Projekt 74. Program umożliwiający hibernację komputera lub jego "usypianie" (190)
- Projekt 75. Blokowanie dostępu do komputera (191)
- Projekt 76. Uruchamianie wygaszacza ekranu (191)
- Projekt 77. Odczytywanie informacji o baterii notebooka (192)
- Kontrola trybu wyświetlania karty graficznej (194)
- Projekt 78. Pobieranie dostępnych trybów pracy karty graficznej (195)
- Projekt 79. Identyfikowanie bieżącego trybu działania karty graficznej (197)
- Projekt 80. Zmiana trybu wyświetlania (199)
- Uruchamianie, zamykanie i zmiana priorytetu aplikacji (201)
- Projekt 81. Uruchamianie aplikacji za pomocą funkcji WinExec (202)
- Projekt 82. Uruchamianie aplikacji za pomocą ShellExecute (203)
- Projekt 83. Przygotowanie e-maila za pomocą ShellExecute (205)
- Projekt 84. Zmiana priorytetu bieżącej aplikacji (205)
- Projekt 85. Sprawdzenie priorytetu bieżącej aplikacji (206)
- Projekt 86. Zmiana priorytetu innej aplikacji (207)
- Projekt 87. Zamykanie innej aplikacji (208)
- Projekt 88. Uruchamianie aplikacji za pomocą funkcji CreateProcess (209)
- Projekt 89. Wykrywanie zakończenia działania uruchomionej aplikacji (215)
- Projekt 90. Kontrolowanie ilości instancji aplikacji na podstawie unikalnej nazwy klasy (217)
- Kontrolowanie własności okien (219)
- Projekt 91. Lista otwartych okien (219)
- Projekt 92. Modyfikowanie stanu okna bieżącej aplikacji (222)
- Projekt 93. Ukrywanie aplikacji na pasku zadań (223)
- Projekt 94. Mrugnij do mnie! (224)
- Projekt 95. Sygnał dźwiękowy (224)
- Numery identyfikacyjne procesu i uchwyt okna (225)
- Projekt 96. Jak zdobyć identyfikator procesu, znając uchwyt okna? (225)
- Projekt 97. Jak zdobyć uchwyt głównego okna, znając identyfikator procesu? (226)
- Projekt 98. Kontrolowanie okna innej aplikacji (230)
- Projekt 99. Kontrolowanie innej aplikacji - komponent TControlProcess (235)
- Projekt 100. Pakiet dla komponentu TControlProcess (244)
- Okna o dowolnym kształcie (244)
- Projekt 101. Okno o kształcie koła (245)
- Projekt 102. Łączenie obszarów. Dodanie ikon z paska tytułu (246)
- Projekt 103. Okno z wizjerem (247)
- Projekt 104. Aby przenosić formę myszką pomimo usuniętego paska tytułu (248)
- Pliki i system plików - funkcje powłoki (249)
- Projekt 105. Jak za pomocą funkcji WinAPI powłoki systemu odczytać ścieżkę do katalogu specjalnego użytkownika? (250)
- Projekt 106. Tworzenie pliku skrótu .lnk (251)
- Projekt 107. Odczyt i edycja skrótu .lnk (254)
- Projekt 108. Umieszczenie skrótu na pulpicie (256)
- Projekt 109. Operacje na plikach i katalogach realizowane przez funkcje powłoki (kopiowanie, przenoszenie, usuwanie i zmiana nazwy) (256)
- Projekt 110. Jak usunąć plik, umieszczając go w koszu? (258)
- Projekt 111. Operacje na całym katalogu (259)
- Projekt 112. Odczytywanie wersji pliku .exe i .dll (260)
- Projekt 113. Jak dodać nazwę dokumentu do listy ostatnio otwartych dokumentów w menu Start? (263)
- Odczytywanie informacji o dysku (264)
- Projekt 114. Funkcja (264)
- Projekt 115. Test funkcji (269)
- Projekt 116. Klasa (270)
- Projekt 117. Komponent (272)
- Ikona w obszarze powiadamiania (zasobniku) (277)
- Projekt 118. Funkcja Shell_NotifyIcon (277)
- Projekt 119. Komponent TTrayIcon (278)
- Projekt 120. Menu kontekstowe ikony (279)
- Projekt 121. "Dymek" (280)
- Internet (281)
- Projekt 122. Aby sprawdzić, czy komputer jest połączony z siecią (281)
- Projekt 123. Aby pobrać plik z internetu (282)
- Projekt 124. Aby uruchomić domyślną przeglądarkę ze wskazaną stroną (283)
- Projekt 125. Aby sprawdzić adres IP lub nazwę DNS wskazanego komputera (283)
- Projekt 126. Mapowanie dysków sieciowych (287)
- Multimedia (MCI) (288)
- Projekt 127. Aby wysunąć lub wsunąć tackę w napędzie CD lub DVD (289)
- Projekt 128. Wykrywanie wysunięcia płyty z napędu lub umieszczenia jej w napędzie CD lub DVD (291)
- Projekt 129. Sprawdzanie stanu wybranego napędu CD lub DVD (291)
- Projekt 130. Aby zbadać, czy w napędzie jest płyta CD-Audio (292)
- Projekt 131. Kontrola napędu CD-Audio (293)
- Projekt 132. Asynchroniczne odtwarzanie pliku WAVE (294)
- Projekt 133. Jak wykryć obecność karty dźwiękowej? (295)
- Projekt 134. Kontrola poziomu głośności odtwarzania plików dźwiękowych (295)
- Projekt 135. Kontrola poziomu głośności CD-Audio (296)
- Inne (297)
- Projekt 136. Jak wyświetlić zaprojektowaną przez nas formę w innym oknie? (297)
- Projekt 137. Pisanie i malowanie na pulpicie (297)
- Projekt 138. Czy Windows mówi po polsku? (298)
- Projekt 139. Jak zablokować uruchamiany automatycznie wygaszacz ekranu? (299)
- Projekt 140. Zmiana tła pulpitu (299)
Rozdział 8. Komunikaty Windows (303)
- Projekt 141. Lista komunikatów odbieranych przez kolejkę komunikatów aplikacji (TApplicationEvents.OnMessage) (304)
- Projekt 142. Filtrowanie zdarzeń (305)
- Projekt 143. Odczytywanie informacji dostarczanych przez komunikat (307)
- Projekt 144. Lista wszystkich komunikatów odbieranych przez okno (metoda WndProc) (308)
- Projekt 145. Metody obsługujące komunikaty nieumieszczane w kolejce komunikatów aplikacji. Wykrywanie zmiany położenia formy (310)
- Projekt 146. Wykrycie zmiany trybu pracy karty graficznej (311)
- Projekt 147. Wysyłanie komunikatów. Symulowanie zdarzeń (313)
- Projekt 148. Wysłanie komunikatu uruchamiającego wygaszacz ekranu (314)
- Projekt 149. Blokowanie zamknięcia sesji Windows (314)
- Projekt 150. Wykrycie włożenia do napędu lub wysunięcia z niego płyty CD lub DVD; wykrycie podłączenia do gniazda USB lub odłączenia pamięci Flash (315)
- Projekt 151. Wykorzystanie komunikatów do kontroli innej aplikacji na przykładzie Winamp (317)
- Projekt 152. Przenoszenie plików pomiędzy aplikacjami (318)
- Projekt 153. Zmiana aktywnego komponentu za pomocą klawisza Enter (320)
- Projekt 154. XKill dla Windows (321)
- Projekt 155. Modyfikowanie menu systemowego formy (323)
- Projekt 156. Modyfikowanie menu systemowego aplikacji w pasku zadań (324)
- Funkcje w bibliotece DLL (328)
- Projekt 157. Tworzenie biblioteki DLL - eksport funkcji (328)
- Projekt 158. Statyczne łączenie bibliotek DLL - import funkcji (332)
- Projekt 159. Dynamiczne ładowanie bibliotek DLL (333)
- Projekt 160. Powiadamianie biblioteki o jej załadowaniu do pamięci lub usunięciu z niej (335)
- Projekt 161. Import funkcji WinAPI (336)
- Formy w bibliotece DLL (338)
- Projekt 162. Jak umieścić formę w bibliotece DLL? (338)
- Projekt 163. Wykorzystanie biblioteki DLL z funkcją tworzącą formę (341)
- Aplet panelu sterowania (343)
- Projekt 164. Przygotowanie biblioteki DLL z funkcją zwrotną CPlApplet (344)
- Projekt 165. Przygotowanie instalatora apletu dla Windows XP i Windows 2003 (348)
- COM (353)
- Projekt 166. Wykorzystanie obiektu COM do tworzenia plików skrótu .lnk (354)
- Osadzanie obiektów OLE2 (355)
- Projekt 167. Statyczne osadzanie obiektu (355)
- Projekt 168. Aby zakończyć edycję dokumentu. Łączenie menu aplikacji klienckiej i serwera OLE (356)
- Projekt 169. Wykrywanie niezakończonej edycji przy zamknięciu programu (357)
- Projekt 170. Inicjowanie edycji osadzonego obiektu z poziomu kodu (358)
- Projekt 171. Dynamiczne osadzanie obiektu (358)
- Automatyzacja (359)
- Projekt 172. Klasa Variant (361)
- Projekt 173. Łączenie z serwerem automatyzacji Excel z użyciem komponentu TExcelApplication (362)
- Projekt 174. Łączenie z serwerem automatyzacji Excel z użyciem metody Variant::GetActiveObject. Odczytywanie stanu aplikacji (364)
- Projekt 175. Uruchamianie aplikacji Excel za pośrednictwem mechanizmu automatyzacji (metoda Variant::CreateObject) (366)
- Projekt 176. Uruchamianie procedur serwera automatyzacji (367)
- Projekt 177. Eksplorowanie danych w arkuszu kalkulacyjnym (367)
- Projekt 178. Korzystanie z okien dialogowych serwera automatyzacji. Zapisywanie danych w pliku (369)
- Projekt 179. Zapisywanie danych z wykorzystaniem okna dialogowego aplikacji klienckiej (370)
- Projekt 180. Edycja danych w komórkach Excela za pomocą komponentu TExcelApplication (371)
- Projekt 181. Reagowanie na zdarzenia komponentu TExcelApplication (373)
- Projekt 182. Korzystanie z funkcji matematycznych i statystycznych Excela (374)
- Projekt 183. Uruchamianie aplikacji Microsoft Word i tworzenie nowego dokumentu lub otwieranie istniejącego (375)
- Projekt 184. Wywoływanie funkcji Worda na przykładzie sprawdzania pisowni i drukowania (376)
- Projekt 185. Wstawianie tekstu do bieżącego dokumentu Worda (377)
- Projekt 186. Zapisywanie bieżącego dokumentu Worda (377)
- Projekt 187. Zaznaczanie i kopiowanie całego tekstu dokumentu Worda do schowka (378)
- Projekt 188. Kopiowanie zawartości dokumentu Worda do komponentu TRichEdit bez użycia schowka (z pominięciem formatowania tekstu) (378)
- Projekt 189. Formatowanie zaznaczonego fragmentu tekstu w dokumencie Worda (379)
- Projekt 190. Serwer automatyzacji OLE przeglądarki Internet Explorer (380)
- Projektowanie serwera automatyzacji (381)
- Projekt 191. Projektowanie serwera automatyzacji (381)
- Projekt 192. Testowanie serwera automatyzacji (385)
- ActiveX (387)
- Projekt 193. Korzystanie z kontrolek ActiveX w projektach dla platformy Win32 (387)
- Rysowanie figur w przestrzeni 3D (392)
- Projekt 194. Inicjacja grafiki OpenGL w aplikacji projektowanej w środowisku C++Builder (392)
- Projekt 195. Rysowanie figury płaskiej (trójkąta). Podwójne buforowanie (398)
- Projekt 196. Poprawianie geometrii frustum (400)
- Projekt 197. Kolor (401)
- Projekt 198. Rysowanie figury przestrzennej (ostrosłupa) (402)
- Projekt 199. Wyodrębnienie metody rysującej figurę (404)
- Projekt 200. Obroty obiektów na scenie. Ruch kamery i ruch aktorów (406)
- Projekt 201. Przesunięcia obiektu (409)
- Projekt 202. Prosta animacja (411)
- Projekt 203. Rysowanie osi układu współrzędnych (413)
- Projekt 204. Dodawanie kolejnych figur (414)
- Projekt 205. Bardziej precyzyjne ustawianie kamery (415)
- Projekt 206. Ruch kamery kontrolowany położeniem kursora myszy (418)
- Projekt 207. Cieniowanie kolorów na powierzchniach (421)
- Kolor i światło (422)
- Projekt 208. Montowanie "wyłącznika" kolorów (424)
- Projekt 209. Włączenie systemu oświetlenia i ustawianie światła tła (425)
- Projekt 210. Uzgadnianie koloru "fizycznego" przedmiotów z kolorem ustalanym funkcją glColor (427)
- Projekt 211. Ilu programistów potrzeba, aby wkręcić mleczną żarówkę (429)
- Projekt 212. Definiowanie wektorów normalnych (430)
- Projekt 213. Gładkie materiały (rozbłysk) (435)
- Projekt 214. Ustawianie reflektora (436)
- Projekt 215. Oświetlenie różnobarwne i montowanie włączników światła (438)
- Mieszanie kolorów (440)
- Projekt 216. Przezroczystość (440)
- Projekt 217. Antyaliasing (444)
- Projekt 218. Mgła (446)
- Biblioteka GLU (448)
- Projekt 219. Definiujemy kwadrykę i rysujemy sferę (448)
- Projekt 220. Styl rysowania kwadryki (450)
- Projekt 221. Teksturowanie kwadryki (450)
- Projekt 222. Inne kwadryki (454)
Dodatek A Instalacja i rejestracja Borland Developer Studio 2006 Architect Trial (459)
- Pobieranie klucza rejestracji (459)
- Instalacja Borland Developer Studio 2006 Architect Trial (462)
- Rejestracja Borland Developer Studio 2006 Architect Trial (466)
Skorowidz (471)