Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00075 006729 13591759 na godz. na dobę w sumie
Microsoft Visual C++ 2008. Praktyczne przykłady - książka
Microsoft Visual C++ 2008. Praktyczne przykłady - książka
Autor: Liczba stron: 360
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-2587-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> visual c++ - programowanie
Porównaj ceny (książka, ebook, audiobook).

Wiele osób słyszało o języku C++, lecz ogromna większość z nich na samą myśl o bliższym poznaniu go reaguje z podobną rezerwą, jak na pomysł wybrania się na wakacyjny kurs języka mandaryńskiego. Osoby te popełniają jednak niewybaczalny błąd i skutecznie odcinają się od niezwykle interesującego świata nowoczesnego programowania. Na ludzi biegle znających C++ czeka bardzo wiele atrakcyjnych ofert pracy, a niemalejąca popularność systemów Windows sprawia, że najbardziej poszukiwani w tej grupie są specjaliści znający Visual C++, czyli wygodne w użyciu i bardzo rozbudowane środowisko programistyczne firmy Microsoft. Nie trzeba chyba dodawać, że zarabiają oni zwykle znacznie więcej niż najlepsi nawet tłumacze z języka mandaryńskiego...

Jeśli chcesz dołączyć do tej programistycznej elity, już dziś sięgnij po odpowiednie źródło wiedzy. Książka 'Microsoft Visual C++ 2008. Praktyczne przykłady ' umożliwi Ci gładkie rozpoczęcie przygody z Visual C++, prezentując podstawowe informacje na temat języka, opisując środowisko programistyczne, sposób tworzenia aplikacji oraz technikę zarządzania danymi i korzystania z plików. Nauczysz się z niej również właściwego stosowania elementów kontrolnych i komponentów programistycznych. Poznasz metody przetwarzania wielowątkowego, zagadnienia związane z grafiką i łączeniem się z siecią, a ponadto dowiesz się, jak skonstruowany jest kod programu. Na tym jednak nie koniec, bowiem na kilku rozbudowanych i bardzo zróżnicowanych przykładach poznasz też praktyczne zastosowanie całej tej teorii, a wszystko przy użyciu bezpłatnej wersji środowiska programistycznego firmy Microsoft.

Nie zwlekaj - już dziś wkrocz w magiczny świat programowania z wykorzystaniem Visual C++ 2008!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Microsoft Visual C++ 2008. Praktyczne przyk³ady Autor: Mariusz Owczarek ISBN: 978-83-246-2587-1 Format: 158×235, stron: 360 (cid:129) Poznaj w praktyce œrodowisko Visual C++ 2008 (cid:129) Dowiedz siê, jak korzystaæ z gotowych komponentów programistycznych (cid:129) Naucz siê pisaæ w C++ aplikacje przeznaczone dla systemu Windows Wiele osób s³ysza³o o jêzyku C++, lecz ogromna wiêkszoœæ z nich na sam¹ myœl o bli¿szym poznaniu go reaguje z podobn¹ rezerw¹, jak na pomys³ wybrania siê na wakacyjny kurs jêzyka mandaryñskiego. Osoby te pope³niaj¹ jednak niewybaczalny b³¹d i skutecznie odcinaj¹ siê od niezwykle interesuj¹cego œwiata nowoczesnego programowania. Na ludzi biegle znaj¹cych C++ czeka bardzo wiele atrakcyjnych ofert pracy, a niemalej¹ca popularnoœæ systemów Windows sprawia, ¿e najbardziej poszukiwani w tej grupie s¹ specjaliœci znaj¹cy Visual C++, czyli wygodne w u¿yciu i bardzo rozbudowane œrodowisko programistyczne firmy Microsoft. Nie trzeba chyba dodawaæ, ¿e zarabiaj¹ oni zwykle znacznie wiêcej ni¿ najlepsi nawet t³umacze z jêzyka mandaryñskiego… Jeœli chcesz do³¹czyæ do tej programistycznej elity, ju¿ dziœ siêgnij po odpowiednie Ÿród³o wiedzy. Ksi¹¿ka „Microsoft Visual C++ 2008. Praktyczne przyk³ady” umo¿liwi Ci g³adkie rozpoczêcie przygody z Visual C++, prezentuj¹c podstawowe informacje na temat jêzyka, opisuj¹c œrodowisko programistyczne, sposób tworzenia aplikacji oraz technikê zarz¹dzania danymi i korzystania z plików. Nauczysz siê z niej równie¿ w³aœciwego stosowania elementów kontrolnych i komponentów programistycznych. Poznasz metody przetwarzania wielow¹tkowego, zagadnienia zwi¹zane z grafik¹ i ³¹czeniem siê z sieci¹, a ponadto dowiesz siê, jak skonstruowany jest kod programu. Na tym jednak nie koniec, bowiem na kilku rozbudowanych i bardzo zró¿nicowanych przyk³adach poznasz te¿ praktyczne zastosowanie ca³ej tej teorii, a wszystko przy u¿yciu bezp³atnej wersji œrodowiska programistycznego firmy Microsoft. (cid:129) Podstawowe informacje na temat Visual C++ 2008 (cid:129) Instalacja œrodowiska programistycznego (cid:129) Elementy sk³adowe aplikacji i sposoby u¿ywania kontrolek (cid:129) Zarz¹dzanie danymi i u¿ywanie plików (cid:129) U¿ywanie najwa¿niejszych komponentów programistycznych (cid:129) Wykorzystanie elementów graficznych (cid:129) Podstawy korzystania z w¹tków (cid:129) Korzystanie z komponentów sieciowych (cid:129) Opis jêzyka C++ i C++/CLI oraz struktury napisanych w nich programów (cid:129) Praktyczne projekty aplikacji opracowanych za pomoc¹ Visual C++ 2008 Nie zwlekaj – ju¿ dziœ wkrocz w magiczny œwiat programowania z wykorzystaniem Visual C++ 2008! Spis treĈci Co znajdziesz w tej ksiñĔce? ............................................................. 9 Rozdziaä 1. Podstawy Ĉrodowiska Visual C++ 2008 .......................................... 11 JĊzyk C++ a .NET Framework ....................................................................................... 11 Opis Ğrodowiska ............................................................................................................. 12 Pobieranie i instalacja Ğrodowiska .................................................................................. 12 Gáówne okno VC++ 2008 ............................................................................................... 13 Tworzenie nowej aplikacji w VC++ 2008 ........................................................................ 13 Wygląd Ğrodowiska w trybie budowy aplikacji .............................................................. 16 Struktura projektu ........................................................................................................... 17 Klasa okna gáównego ...................................................................................................... 18 Rozdziaä 2. Podstawowe elementy aplikacji ...................................................... 21 Gáówne okno .................................................................................................................. 21 Przyciski ......................................................................................................................... 26 Etykiety .......................................................................................................................... 27 Pola tekstowe .................................................................................................................. 29 Wprowadzanie danych do aplikacji za pomocą pól tekstowych ..................................... 31 Wprowadzanie danych z konwersją typu ....................................................................... 32 WyĞwietlanie wartoĞci zmiennych ................................................................................. 34 Pole tekstowe z maską formatu danych .......................................................................... 35 Pola wyboru, przyciski opcji, kontenery grupujące ........................................................ 37 Rozdziaä 3. Menu i paski narzödzi ..................................................................... 41 Rodzaje menu ................................................................................................................. 41 Komponent MenuStrip ................................................................................................... 41 Menu podrĊczne ............................................................................................................. 47 Skróty klawiaturowe w menu ......................................................................................... 49 Paski narzĊdzi ................................................................................................................. 51 Rozdziaä 4. Tablice, uchwyty i dynamiczne tworzenie obiektów .......................... 55 Tablice ............................................................................................................................ 55 Uchwyty ......................................................................................................................... 59 Dynamiczne tworzenie obiektów — operator gcnew ..................................................... 60 Dynamiczna deklaracja tablic ......................................................................................... 61 4 Microsoft Visual C++ 2008. Praktyczne przykäady Rozdziaä 5. Komunikacja aplikacji z plikami ...................................................... 63 Pliki jako Ĩródáo danych ................................................................................................. 63 Wyszukiwanie plików .................................................................................................... 64 Odczyt wáasnoĞci plików i folderów .............................................................................. 65 Odczyt danych z plików tekstowych .............................................................................. 66 Zapisywanie tekstu do pliku ........................................................................................... 69 Zapis danych do plików binarnych ................................................................................. 71 Odczyt z plików binarnych ............................................................................................. 72 Rozdziaä 6. Okna dialogowe ............................................................................. 75 Okno typu MessageBox .................................................................................................. 75 Okno dialogowe otwarcia pliku ...................................................................................... 77 Okno zapisu pliku ........................................................................................................... 79 Okno wyboru koloru ....................................................................................................... 80 Wybór czcionki .............................................................................................................. 81 Rozdziaä 7. MoĔliwoĈci edycji tekstu w komponencie TextBox .......................... 83 WáaĞciwoĞci pola TextBox ............................................................................................. 83 Kopiowanie i wklejanie tekstu ze schowka .................................................................... 85 Wyszukiwanie znaków w tekĞcie ................................................................................... 86 Wstawianie tekstu miĊdzy istniejące linie ...................................................................... 87 Wprowadzanie danych do aplikacji ................................................................................ 88 Prosta konwersja typów — klasa Convert ...................................................................... 88 Konwersja ze zmianą formatu danych ............................................................................ 89 Konwersja liczby na áaĔcuch znakowy ........................................................................... 92 Rozdziaä 8. Komponent tabeli DataGridView ...................................................... 95 Podstawowe wáaĞciwoĞci komponentu DataGridView ................................................... 95 Zmiana wyglądu tabeli ................................................................................................... 98 Dopasowanie wymiarów komórek tabeli do wyĞwietlanego tekstu .............................. 101 Odczytywanie danych z komórek tabeli ....................................................................... 102 Zmiana liczby komórek podczas dziaáania aplikacji .................................................... 106 Tabela DataGridView z komórkami róĪnych typów .................................................... 110 Przyciski w komórkach — DataGridViewButtonCell .................................................. 113 Komórki z polami wyboru — DataGridViewCheckBoxCell ....................................... 114 Grafika w tabeli — komórka DataGridViewImageCell ............................................... 116 Komórka z listą rozwijaną — DataGridViewComboBoxCell ...................................... 117 OdnoĞniki internetowe w komórkach — DataGridViewLinkCell ................................ 119 Rozdziaä 9. Metody zwiñzane z czasem — komponent Timer ........................... 123 Czas systemowy ........................................................................................................... 123 Komponent Timer ........................................................................................................ 125 Rozdziaä 10. Grafika w aplikacjach Visual C++ .................................................. 127 Obiekt Graphics — kartka do rysowania ...................................................................... 127 Pióro Pen ...................................................................................................................... 133 PĊdzle zwykáe i teksturowane ....................................................................................... 135 Rysowanie pojedynczych punktów — obiekt Bitmap .................................................. 137 Rysowanie trwaáe — odĞwieĪanie rysunku .................................................................. 138 Rozdziaä 11. Podstawy aplikacji wielowñtkowych ............................................. 141 Wątki ............................................................................................................................ 141 Komunikacja z komponentami z innych wątków — przekazywanie parametrów ........ 143 Przekazywanie parametrów do metody wątku .............................................................. 145 Klasa wątku — przekazywanie parametrów z kontrolą typu ........................................ 146 Komponent BackgroundWorker ................................................................................... 148 Spis treĈci 5 Rozdziaä 12. Poäñczenie aplikacji z sieciñ internet ............................................. 153 Komponent WebBrowser ............................................................................................. 153 Przetwarzanie stron WWW — obiekt HtmlDocument ................................................. 156 Protokóá FTP ................................................................................................................ 160 Pobieranie zawartoĞci katalogu z serwera FTP ............................................................. 161 Pobieranie plików przez FTP ........................................................................................ 162 Wysyáanie pliku na serwer FTP .................................................................................... 164 Rozdziaä 13. Dynamiczne tworzenie okien i komponentów ................................. 167 WyĞwietlanie okien — klasa Form ............................................................................... 167 Komponenty w oknie tworzonym dynamicznie ........................................................... 169 Przesyáanie danych z okien dialogowych ..................................................................... 170 Okno tytuáowe aplikacji ................................................................................................ 171 Obsáuga zdarzeĔ dla komponentów tworzonych dynamicznie ..................................... 172 Aplikacja zabezpieczona hasáem .................................................................................. 173 Rozdziaä 14. Struktura programów C++ i C++/CLI ............................................ 175 Programy korzystające z konsoli w VC++ 2008 .......................................................... 175 Ogólna postaü programu pisanego w C++ .................................................................... 176 Dyrektywy .................................................................................................................... 177 Dyrektywa #include ............................................................................................. 177 Dyrektywa #define ............................................................................................... 178 Dyrektywa #if — kompilacja warunkowa ........................................................... 178 Typy zmiennych ........................................................................................................... 178 Zmienne typu int .................................................................................................. 178 Zmienne typu float ............................................................................................... 179 Typ double ........................................................................................................... 179 Typ char ............................................................................................................... 179 Modyfikatory typów ............................................................................................ 179 Rzutowanie (konwersja) typów ........................................................................... 179 Typ wyliczeniowy ................................................................................................ 180 Operatory ...................................................................................................................... 180 Zapis danych do plików i odczyt z nich za pomocą operatorów i ............. 182 WskaĨniki ..................................................................................................................... 184 Tablice .......................................................................................................................... 184 Operatory new i delete .................................................................................................. 185 Instrukcje ...................................................................................................................... 186 Instrukcje warunkowe .......................................................................................... 186 Instrukcje iteracji ................................................................................................. 187 Funkcje ......................................................................................................................... 188 PrzeciąĪanie funkcji ............................................................................................. 189 NiejednoznacznoĞü .............................................................................................. 189 Przekazywanie argumentów przez wartoĞü i adres .............................................. 190 WskaĨniki do funkcji ........................................................................................... 191 Funkcja main() ............................................................................................................. 192 Przekazywanie parametrów do funkcji main() ..................................................... 193 Struktury i unie ............................................................................................................. 195 Struktury .............................................................................................................. 195 Klasy ............................................................................................................................. 196 Konstruktory i destruktory ................................................................................... 199 PrzeciąĪanie konstruktorów ................................................................................. 201 PrzeciąĪanie operatorów ...................................................................................... 202 Statyczne metody i pola klasy .............................................................................. 203 WskaĨnik zwrotny this ......................................................................................... 204 Dziedziczenie ....................................................................................................... 205 6 Microsoft Visual C++ 2008. Praktyczne przykäady Wáasne kontrolki dziedziczące po standardowych ....................................................... 208 Przestrzenie nazw ......................................................................................................... 211 Wyjątki ......................................................................................................................... 212 Aplikacje, aplikacje ...................................................................................................... 215 Rozdziaä 15. Prosty edytor tekstu .................................................................... 217 Opis .............................................................................................................................. 217 Gáówne okno ................................................................................................................ 217 Budowa interfejsu uĪytkownika ................................................................................... 219 Otwieranie pliku z dysku .............................................................................................. 223 Zapisanie pliku tekstowego .......................................................................................... 226 Obsáuga schowka .......................................................................................................... 227 Cofanie komend (Undo) ...................................................................................... 228 WyciĊcie tekstu do umieszczenia w schowku ...................................................... 228 Aby skopiowaü tekst do schowka ........................................................................ 228 Aby wkleiü tekst ze schowka ............................................................................... 229 Test ............................................................................................................................... 229 Rozdziaä 16. Program do rysowania .................................................................. 231 Opis .............................................................................................................................. 231 Budowa interfejsu uĪytkownika ................................................................................... 231 Wczytywanie pliku graficznego z dysku ...................................................................... 233 WyĞwietlanie grafiki w oknie ....................................................................................... 234 Rysowanie w oknie za pomocą myszy ......................................................................... 236 Zmiana koloru linii ....................................................................................................... 239 Zapis pliku graficznego na dysku ................................................................................. 240 Test ............................................................................................................................... 243 Rozdziaä 17. Figury Voronoi .............................................................................. 245 Opis .............................................................................................................................. 245 Interfejs uĪytkownika ................................................................................................... 246 Struktura projektu C++/CLI ......................................................................................... 246 Wyznaczanie odlegáoĞci miĊdzy punktami ................................................................... 248 Rysowanie figur ........................................................................................................... 248 Obsáuga programu ........................................................................................................ 251 Test ............................................................................................................................... 252 Rozdziaä 18. Automat komórkowy .................................................................... 253 Opis .............................................................................................................................. 253 Interfejs uĪytkownika ................................................................................................... 254 Inicjalizacja planszy ..................................................................................................... 256 Zaznaczanie pól w siatce .............................................................................................. 257 Krok w trybie Gra w Īycie ............................................................................................ 258 Krok w trybie Seeds ..................................................................................................... 260 Kroki w trybie automatycznym .................................................................................... 261 Obsáuga programu ........................................................................................................ 262 Inne ciekawe ukáady do Gry w Īycie ............................................................................ 262 Oscylatory ............................................................................................................ 263 Obiekty latające ................................................................................................... 264 Test ............................................................................................................................... 266 Rozdziaä 19. WieĔe Hanoi ................................................................................. 267 Opis .............................................................................................................................. 267 Interfejs uĪytkownika ................................................................................................... 268 Deklaracja zmiennych klasy Form1 ............................................................................. 270 Spis treĈci 7 Obsáuga menu ............................................................................................................... 270 Funkcja rysująca krąĪki ................................................................................................ 272 Przekáadanie krąĪków ................................................................................................... 275 RóĪne koĔcowe metody ................................................................................................ 278 Test ............................................................................................................................... 279 Rozdziaä 20. Aplikacja bazy danych .................................................................. 281 Opis .............................................................................................................................. 281 Instalacja PostgreSQL .................................................................................................. 281 Wyáączenie usáugi bazy ................................................................................................ 284 Inicjalizacja bazy .......................................................................................................... 285 Organizacja i typy danych w bazach PostgreSQL ........................................................ 286 JĊzyk SQL .................................................................................................................... 288 Utworzenie bazy danych .............................................................................................. 288 Interfejs uĪytkownika ................................................................................................... 290 Wáączenie sterowników bazy PostgreSQL do projektu ................................................ 291 àączenie z bazą i odczyt danych ................................................................................... 292 Dodawanie danych do bazy .......................................................................................... 294 Zmiana danych w bazie ................................................................................................ 296 Kasowanie danych ........................................................................................................ 299 Obsáuga bazy ................................................................................................................ 300 Test ............................................................................................................................... 300 Rozdziaä 21. Aplikacja do nauki säówek ............................................................ 303 Opis .............................................................................................................................. 303 Interfejs uĪytkownika ................................................................................................... 303 Deklaracja pól klasy ..................................................................................................... 305 Odczyt danych z pliku tekstowego ............................................................................... 306 Odpytywanie ze sáówek ................................................................................................ 308 Zapis listy wyrazów do pliku tekstowego ..................................................................... 309 Obsáuga ......................................................................................................................... 310 Test ............................................................................................................................... 310 Rozdziaä 22. Aplikacja do monitorowania systemu ............................................ 313 Opis .............................................................................................................................. 313 Interfejs uĪytkownika ................................................................................................... 313 Ustawienie parametrów kontrolek performanceCounter .............................................. 314 Odczyt parametrów z kontrolek performanceCounter .................................................. 316 Uruchamianie timera — ikona w pasku zadaĔ ............................................................. 316 Rysowanie wykresów ................................................................................................... 318 Opis .............................................................................................................................. 321 Test .............................................................................................................................. 322 Rozdziaä 23. Klient FTP .................................................................................... 323 Opis .............................................................................................................................. 323 Interfejs uĪytkownika ................................................................................................... 323 Klasa do obsáugi FTP ................................................................................................... 324 Pobieranie katalogu ...................................................................................................... 326 Pobieranie plików ......................................................................................................... 328 Wysyáanie plików ......................................................................................................... 329 Poruszanie siĊ po folderach .......................................................................................... 329 Rozbudowa ................................................................................................................... 331 Test ............................................................................................................................... 331 8 Microsoft Visual C++ 2008. Praktyczne przykäady Rozdziaä 24. Aplikacja do drukowania grafiki .................................................... 333 Opis .............................................................................................................................. 333 Interfejs uĪytkownika ................................................................................................... 333 Otwieranie rysunku ...................................................................................................... 334 Obracanie rysunku ........................................................................................................ 335 Drukowanie .................................................................................................................. 336 Opis dziaáania ............................................................................................................... 338 Test ............................................................................................................................... 338 Odpowiedzi do testów .................................................................. 341 Skorowidz .................................................................................... 343 Rozdziaä 12. Poäñczenie aplikacji z sieciñ internet Komponent WebBrowser Czasami istnieje potrzeba wyĞwietlania w oknie aplikacji danych pobranych bezpo- Ğrednio ze stron WWW. W VC++ 2008 mamy komponent, który jest wáaĞciwie kom- pletną przeglądarką stron opartą na Internet Explorerze. Za pomocą tego komponentu w prosty sposób moĪna wyĞwietlaü zawartoĞü caáych stron WWW w oknie aplikacji. MoĪe byü on uĪyty nie tylko do przeglądania stron w sieci, ale takĪe do wyĞwietlania dokumentów HTML z komputera lokalnego (na przykáad plików pomocy aplikacji). Podstawowe wáaĞciwoĞci komponentu WebBrowser przed- stawia tabela 12.1. Tabela 12.1. Wybrane wáaĞciwoĞci kontrolki WebBrowser WäaĈciwoĈè AllowNavigation WáaĞciwoĞü umoĪliwiająca zablokowanie przeglądarki tak, Īe nie moĪna przejĞü Znaczenie Url CanGoBack CanGoForward Document DocumentText DocumentTitle na inne strony niĪ aktualna. WartoĞü false oznacza zablokowanie. Adres strony do wyĞwietlenia w przeglądarce. Ta wáaĞciwoĞü jest typu Uri^. WartoĞü true oznacza, Īe odwiedzana strona nie jest pierwszą (istnieje historia). WartoĞü true oznacza, Īe uĪytkownik cofaá siĊ w historii odwiedzanych stron i wyĞwietlana strona nie jest ostatnią odwiedzoną. WáaĞciwoĞü typu HtmlDocument zawierająca aktualnie wyĞwietlaną w kontrolce stronĊ. MoĪe byü uĪyta do pobrania danych ze strony. Zawiera Ĩródáo HTML strony aktualnie wyĞwietlonej w przeglądarce. Tytuá aktualnie wyĞwietlanej strony. Najprostszy sposób wyĞwietlenia strony WWW pokazuje przykáad. 154 Microsoft Visual C++ 2008. Praktyczne przykäady Przykäad 12.1 __________________________________________________ Po naciĞniĊciu przycisku wyĞwietl w oknie aplikacji stronĊ helion.pl. Rozwiñzanie Do okna aplikacji wstaw kontrolkĊ WebBrowser (zakáadka okna narzĊdziowego, ostatnia kontrolka w dziale Common Controls) oraz przycisk Button. PowiĊksz rozmiary okna aplikacji i kontrolki WebBrowser tak, aby zwiĊkszyü komfort oglądania stron. Do zdarzenia Click przycisku przypisz nastĊpującą metodĊ: private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Uri^ adres= gcnew Uri( http://helion.pl ); webBrowser1- Url=adres; } Uruchom aplikacjĊ, po naciĞniĊciu przycisku w oknie kontrolki pojawi siĊ odpowiednia strona WWW (rysunek 12.1). Rysunek 12.1. WyĞwietlanie stron WWW w komponencie WebBrowser Adres przekazywany do wäaĈciwoĈci Url naleĔy zawsze poprzedzaè prefiksem. W przy- padku stron WWW jest to http://. W podobny sposób moĪna wyĞwietliü plik lokalny. Przykäad 12.2 __________________________________________________ Utwórz w katalogu na dysku C: folder Aplikacja, a nastĊpnie w tym folderze plik pomoc.html o dowolnej treĞci. Rozdziaä 12. i Poäñczenie aplikacji z sieciñ internet 155 WyĞwietl w oknie kontrolki WebBrowser plik pomoc.html znajdujący siĊ w folderze C:\Aplikacja lub inny plik HTML. Rozwiñzanie Zbuduj program identyczny jak w poprzednim przykáadzie, zmieĔ jedynie adres doku- mentu. Uri^ adres= gcnew Uri( c:\\aplikacja\\pomoc.html ); Program bĊdzie teraz wyĞwietlaá plik lokalny. Klasa kontrolki WebBrowser posiada teĪ wiele metod, które umoĪliwiają nawigacjĊ po stronach WWW. Przedstawia je tabela 12.2. Tabela 12.2. Wybrane metody obiektu WebBrowser Metoda GoBack() GoForward() GoHome() GoSearch() Navigate(System::String adres) Navigate(Uri adres) Stop() Dziaäanie Przenosi uĪytkownika do poprzedniej strony w historii. Dziaáa tylko, jeĪeli wáaĞciwoĞü CanGoBack==true. Przenosi do nastĊpnej strony w historii, jeĪeli uĪytkownik cofaá siĊ wczeĞniej. Przenosi do strony domowej. Strona domowa jest tą samą, jaka zostaáa okreĞlona w Internet Explorerze. Przenosi do strony domyĞlnej wyszukiwarki. RównieĪ lokalizacja tej strony jest pobierana z Internet Explorera. WyĞwietla w kontrolce stronĊ o adresie adres. Zatrzymuje wczytywanie aktualnej strony. Bez problemu moĪna dodaü moĪliwoĞü przechodzenia do stron wczeĞniej odwiedzo- nych, tak jak w przeglądarce. ChociaĪ pisanie kolejnej przeglądarki internetowej mija siĊ wáaĞciwie z celem, to nawigacjĊ moĪna wykorzystaü do opracowania na przykáad plików pomocy czy prezentacji, którą bĊdzie moĪna oglądaü wewnątrz aplikacji. Przykäad 12.3 __________________________________________________ Napisz przeglądarkĊ stron WWW z moĪliwoĞcią poruszania siĊ po historii odwiedzanych stron. Rozwiñzanie Utwórz aplikacjĊ i dodaj do jej okna komponent WebBrowser, dwa przyciski i pole tek- stowe. We wáaĞciwoĞci Text pierwszego przycisku wpisz Wstecz, a drugiego — Naprzód. W polu tekstowym bĊdziemy wpisywaü stronĊ do odwiedzenia, jej wczytanie powin- no nastąpiü, kiedy uĪytkownik naciĞnie klawisz Enter. Aby tak siĊ staáo, trzeba obsáu- Īyü zdarzenie KeyDown dla pola tekstowego. Zaznacz pole tekstowe myszą w widoku 156 Microsoft Visual C++ 2008. Praktyczne przykäady projektowania aplikacji, odnajdĨ to zdarzenie w panelu zdarzeĔ, a nastĊpnie kliknij je dwukrotnie. Utworzy siĊ metoda obsáugi tego zdarzenia, jednym z parametrów tej metody bĊdzie rodzaj naciĞniĊtego klawisza. Oto kod tej metody, w którym przejĞcie do strony nastĊpuje przy wykryciu naciĞniĊcia klawisza Enter. private: System::Void textBox1_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e) { if (e- KeyData==System::Windows::Forms::Keys::Enter) webBrowser1- Navigate( http:// +textBox1- Text); } Teraz wystarczy juĪ tylko zaprogramowaü metody przycisków — odpowiednio: cofa- jące lub przenoszące do przodu w historii. private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { webBrowser1- GoBack(); } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { webBrowser1- GoForward(); } Po wypróbowaniu zapisz projekt na dysku, poniewaĪ bĊdziemy jeszcze z niego korzystaü. Przetwarzanie stron WWW — obiekt HtmlDocument Do lepszego zrozumienia tej czĊĞci rozdziaáu konieczna jest znajomoĞü podstaw skáadni jĊzyka HTML. Celem uĪycia kontrolki WebBrowser nie bĊdzie raczej napisanie kolejnej przeglądarki WWW, bo takich jest juĪ duĪo. Zamiast tego za pomocą tej kontrolki moĪna wykonywaü operacje na dokumentach pisanych w jĊzyku HTML. ĝrodowisko .NET Framework zawiera klasĊ HtmlDocument, która reprezentuje dokument tego typu. Za pomocą tego obiektu uzyskujemy dostĊp do poszczególnych czĊĞci skáa- dowych pliku HTML. Te czĊĞci skáadowe są zawarte w obiektach HtmlElement. Obiekt typu HtmlDocument grupuje wiĊc kilka obiektów HtmlElement. WáaĞciwoĞci obiektu HtmlDocument przedstawia tabela 12.3. Obiekt HtmlElement posiada wáaĞciwoĞci ogólne odnoszące siĊ do wszystkich rodza- jów sekcji kodu HTML. Najbardziej interesujące są zwykle wáaĞciwoĞci szczególne, odnoszące siĊ do konkretnych czĊĞci kodu, na przykáad znacznik SRC w kodzie wstawia- nia obrazka oznacza ĞcieĪkĊ do pliku graficznego. DostĊp do tych szczególnych wáaĞci- woĞci uzyskujemy za pomocą metod GetAttribute() lub SetAttribute(). Argumentami tych metod jest znacznik w kodzie, do którego chcemy uzyskaü dostĊp (na przykáad SRC dla odczytania ĞcieĪki dostĊpu do obrazka). Rozdziaä 12. i Poäñczenie aplikacji z sieciñ internet 157 Tabela 12.3. Niektóre wáaĞciwoĞci obiektu HtmlDocument WäaĈciwoĈè All Body Cookie Encoding Forms Images Links Title Znaczenie Tabela obiektów HtmlElement zawierająca wszystkie czĊĞci skáadowe dokumentu. Element zawierający czĊĞü dokumentu po znaczniku BODY. Zawiera wszystkie znaczniki kontekstu (ang. cookies) powiązane z danym dokumentem. Kodowanie uĪywane przez aktualny dokument. Tabela obiektów HtmlElement zawierająca wszystkie czĊĞci po znacznikach FORM. Obiekty HtmlElement reprezentujące czĊĞci dokumentu po znacznikach IMG (obrazy). Zbiór odnoĞników do innych stron zawartych w aktualnym dokumencie. Tytuá dokumentu. Przykäad 12.4 __________________________________________________ Wypisz w polu tekstowym ĞcieĪki do wszystkich plików graficznych na stronie WWW wyĞwietlonej w kontrolce WebBrowser. Rozwiñzanie Otwórz projekt z przykáadu 12.3. Zmniejsz trochĊ obszar kontrolki WebBrowser i dodaj do okna aplikacji kolejny przycisk Button oraz pole tekstowe TextBox; caáoĞü niech wygląda jak na rysunku 12.2. Rysunek 12.2. Aplikacja pokazująca obiekty graficzne na stronie 158 Microsoft Visual C++ 2008. Praktyczne przykäady Po naciĞniĊciu trzeciego przycisku w polu tekstowym powinny siĊ pojawiü odnoĞniki do wszystkich obrazków zawartych na wyĞwietlanej stronie WWW. Aby to zrobiü, skorzystamy z wáaĞciwoĞci Image obiektu HtmlDocument. WáaĞciwoĞü Image jest typu tablicowego, do odczytu jej elementów uĪyjemy enumeratora (porównaj przykáad 4.2). Do zdarzenia Click przycisku przypisz metodĊ: private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { System::Collections::IEnumerator^ element= webBrowser1- Document- Images- GetEnumerator(); element- MoveNext(); while ((element- MoveNext()) (element!=nullptr)) { textBox2- AppendText(((HtmlElement^)(element- Current))- GetAttribute( SRC )- ToString()); textBox2- AppendText(System::Environment::NewLine); } } Dziaáanie programu dla strony helion.pl pokazuje rysunek 12.2. W áatwy sposób moĪna teĪ napisaü program, który bĊdzie sprawdzaá, czy dana strona WWW posáuguje siĊ jakimiĞ znacznikami kontekstu. Wykorzystamy do tego odpowied- nią wáaĞciwoĞü obiektu HtmlDocument. Przykäad 12.5 __________________________________________________ WyposaĪ przeglądarkĊ w moĪliwoĞü podglądu znaczników kontekstu na danej stronie. Rozwiñzanie Utwórz aplikacjĊ identyczną jak w przykáadzie 12.4. Tym razem metoda wywoáywana przy naciĞniĊciu trzeciego przycisku jest nastĊpująca: private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { System::String^ cookie; cookie=webBrowser1- Document- Cookie; textBox2- Clear(); if (cookie!=nullptr) textBox2- AppendText(cookie); else textBox2- AppendText( Nie znaleziono znaczników kontekstu! ); } Przykäad 12.6 __________________________________________________ Po naciĞniĊciu przycisku wyĞwietl w polu tekstowym wszystkie odnoĞniki znajdujące siĊ na danej stronie. Rozdziaä 12. i Poäñczenie aplikacji z sieciñ internet 159 Rozwiñzanie Utwórz aplikacjĊ jak w przykáadzie 12.4. Po naciĞniĊciu trzeciego przycisku odczytamy zawartoĞü wáaĞciwoĞci Links dla danej strony. Podobnie jak to byáo we wáaĞciwoĞci Image, jest to tablica obiektów HtmlElement, którą bĊdziemy odczytywaü za pomocą enumeratora. Oto odpowiednia metoda trzeciego przycisku. WáaĞciwoĞü InnerText obiektu HtmlElement pozwala na odczytanie tekstu związanego z odnoĞnikiem. private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { System::Collections::IEnumerator^ odnosnik= webBrowser1- Document- Links- GetEnumerator(); odnosnik- MoveNext(); while ((odnosnik- MoveNext()) (odnosnik!=nullptr)) { textBox2- AppendText(((HtmlElement^)(odnosnik- Current))- InnerText- ToString()+ ); textBox2- AppendText(((HtmlElement^)(odnosnik- Current))- GetAttribute( href )- ToString()); textBox2- AppendText(System::Environment::NewLine); } } Rysunek 12.3 pokazuje aplikacjĊ w dziaáaniu. Rysunek 12.3. WyĞwietlanie odnoĞników ze strony WWW 160 Microsoft Visual C++ 2008. Praktyczne przykäady Protokóä FTP Protokóá FTP sáuĪy do przesyáania plików przez internet. MoĪna go uĪyü we wnĊtrzu aplikacji na przykáad do automatycznego pobrania uaktualnienia lub potrzebnych plików z danymi. Implementacja FTP w .NET Framework jest na poziomie, który nazwaábym „póáni- skim”, co oznacza, Īe nie trzeba mieü wiedzy o FTP, aby siĊ nim posáugiwaü, ale nie jest to teĪ kwestia uĪycia jednej metody pobierającej lub wysyáającej pliki. Poáączenia FTP umoĪliwiają obiekty dwóch klas: FtpWebRequest i FtpWebResponse. Pierwszy z nich reprezentuje zapytanie do serwera FTP, a drugi odpowiedĨ serwera. Do poprawnej pracy bĊdą potrzebne dwie wáaĞciwoĞci obiektu FtpWebRequest, które przedstawia tabela 12.4. Tabela 12.4. Wybrane wáaĞciwoĞci obiektu FtpWebRequest WäaĈciwoĈè Credentials Method Znaczenie Zawiera login i hasáo stosowane przy logowaniu do serwera FTP. OkreĞla rodzaj operacji do wykonania na serwerze. MoĪliwe wartoĞci to:  WebRequestMethods::Ftp::DownloadFile — pobranie pliku,  WebRequestMethods::Ftp::UploadFile — wysáanie pliku,  WebRequestMethods::Ftp::ListDirectoryDetails — pobranie szczegóáowych informacji o plikach znajdujących siĊ na serwerze. Oprócz tych wáaĞciwoĞci bĊdziemy uĪywaü dwóch metod opisanych w tabeli 12.5. Tabela 12.5. Metody obiektu FtpWebRequest sáuĪące do pobierania lub wysyáania danych Metoda GetResponse() GetRequestStream() Dziaäanie Zwraca obiekt typu FtpWebResponse, z którego moĪemy czytaü dane wysyáane przez serwer. Zwraca strumieĔ, do którego moĪna pisaü dane, jakie mają byü wysáane na serwer FTP. Ogólnie zaprogramowanie pobierania danych z FTP wymaga nastĊpujących czynnoĞci: a) Utworzenie obiektu FtpWebRequest — parametrem dla konstruktora obiektu jest adres serwera; w przypadku pobrania lub wysáania pliku parametrem jest peána ĞcieĪka wraz z nazwą pliku. b) Zapisanie we wáaĞciwoĞci Credentials loginu i hasáa do serwera. c) Wybranie czynnoĞci (wysáanie bądĨ pobranie pliku, pobranie zawartoĞci katalogu) i odpowiednie ustawienie wáaĞciwoĞci Method. d) Wysáanie zapytania do serwera i pobranie odpowiedzi (czyli obiektu FtpWebResponse) za pomocą metody GetResponse(). e) Pobranie strumienia odpowiedzi z obiektu FtpWebResponse i pobieranie z niego danych (zawartoĞci pliku lub katalogu). Rozdziaä 12. i Poäñczenie aplikacji z sieciñ internet 161 W przypadku wysáania pliku na serwer czynnoĞci od a) do c) są takie same, a dalej mamy: d) Otwarcie strumienia do pisania na serwer metodą GetRequestStream() obiektu FtpWebRequest. e) Zapisanie danych (zawartoĞci pliku lokalnego) do tego strumienia. Pobieranie zawartoĈci katalogu z serwera FTP Teraz zobaczmy, jak praca z FTP wygląda w praktyce. Przykäad 12.7 __________________________________________________ Pobierz zawartoĞü podanego katalogu z podanego serwera FTP. Rozwiñzanie Do nowego okna aplikacji wstaw dwa pola tekstowe TextBox oraz przycisk Button. Aby program dziaáaá, dodaj do niego moĪliwoĞü korzystania z przestrzeni nazw System: ´:Net i System::IO, które zawierają potrzebne klasy. using namespace System::Net; using namespace System::IO; Ustaw wáaĞciwoĞü Multiline pola tekstowego textBox2 na true i powiĊksz je tak, aby mogáo wyĞwietliü kilka linii tekstu. MetodĊ obsáugującą zdarzenie Click napisz jak niĪej: private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Uri^ adres = gcnew Uri( ftp:// +textBox1- Text); FtpWebRequest^ req = dynamic_cast FtpWebRequest^ (WebRequest::Create(adres)); req- Credentials=gcnew NetworkCredential( anonymous , moja_nazwa@moj_adres.pl ); req- Method=WebRequestMethods::Ftp::ListDirectoryDetails; FtpWebResponse^ resp; resp=dynamic_cast FtpWebResponse^ (req- GetResponse()); Stream^ resp_stream = resp- GetResponseStream(); StreamReader^ reader = gcnew StreamReader(resp_stream); String^ linia; textBox2- Clear(); while (!reader- EndOfStream) { linia=reader- ReadLine(); textBox2- AppendText(linia+System::Environment::NewLine); } } 162 Microsoft Visual C++ 2008. Praktyczne przykäady Po uruchomieniu programu wpisz adres dowolnego publicznego serwera FTP i naciĞnij przycisk. W polu tekstowym otrzymasz zawartoĞü gáównego katalogu. Dziaáanie aplika- cji przedstawia rysunek 12.4. Zapisz aplikacjĊ na dysku. Rysunek 12.4. Aplikacja pobierająca zawartoĞü folderu z serwera FTP Pobieranie plików przez FTP Po znalezieniu potrzebnego pliku moĪna go pobraü na dysk. Rozszerzymy aplikacjĊ o taką moĪliwoĞü. Przykäad 12.8 __________________________________________________ Dodaj do aplikacji z przykáadu 12.7 moĪliwoĞü pobrania pliku. Rozwiñzanie Otwórz aplikacjĊ z poprzedniego przykáadu i umieĞü trzeci przycisk Button oraz jeszcze jedno pole tekstowe do wpisywania nazwy pliku do pobrania. Metoda zdarzenia Click dla drugiego przycisku bĊdzie miaáa postaü: private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Uri^ adres = gcnew Uri( ftp:// +textBox1- Text+ / +textBox3- Text); FtpWebRequest^ req = dynamic_cast FtpWebRequest^ (WebRequest::Create(adres)); req- Credentials=gcnew NetworkCredential( anonymous , moja_nazwa@moj_adres.pl ); req- Method=WebRequestMethods::Ftp::DownloadFile; FtpWebResponse^ resp=dynamic_cast FtpWebResponse^ (req- GetResponse()); Stream^ resp_stream = resp- GetResponseStream(); Rozdziaä 12. i Poäñczenie aplikacji z sieciñ internet 163 FileStream^ stru_plik = gcnew FileStream( ./ +textBox3- Text,FileMode::Create); // czytaj plik z serwera i zapisuj do strumienia int ile_bajtow; array Byte ^ bufor = gcnew array Byte (1024); do { ile_bajtow=resp_stream- Read(bufor,0,bufor- Length); stru_plik- Write(bufor,0,ile_bajtow); } while(ile_bajtow!=0); stru_plik- Flush(); stru_plik- Close(); resp_stream- Close(); resp- Close(); } PowyĪsza metoda dziaáa przy zaáoĪeniu, Īe pole tekstowe textBox1 sáuĪy do wpisy- wania adresu FTP, textBox2 do wyĞwietlania zawartoĞci katalogu, a textBox3 do wpi- sywania nazwy pliku do pobrania. Po uruchomieniu aplikacji najpierw naleĪy wpisaü adres serwera wraz z folderem, w którym znajduje siĊ plik, a nastĊpnie nacisnąü przycisk Katalog. Po wyĞwietleniu listy plików sprawdĨ, czy plik znajduje siĊ na tej liĞcie, a nastĊpnie wpisz w polu teksto- wym jego peáną nazwĊ i naciĞnij przycisk Pobierz plik. Po pobraniu plik bĊdzie siĊ znaj- dowaá w folderze roboczym aplikacji. Wygląd aplikacji przedstawia rysunek 12.5. Rysunek 12.5. Aplikacja do pobierania plików W przypadku pobierania däuĔszych plików metoda pobierania powinna uruchamiaè siö w osobnym wñtku. W czöĈci z przykäadami znajduje siö klient korzystajñcy z oddziel- nych wñtków. 164 Microsoft Visual C++ 2008. Praktyczne przykäady Wysyäanie pliku na serwer FTP Czas na zaprogramowanie moĪliwoĞci przesyáania pliku na serwer. Przykäad 12.9 __________________________________________________ Doáącz do aplikacji z poprzedniego przykáadu moĪliwoĞü przesyáania plików z dysku lokalnego na serwer. Rozwiñzanie Otwórz aplikacjĊ z poprzedniego przykáadu i umieĞü trzeci przycisk Button oraz kom- ponent systemowego okna otwarcia pliku OpenFileDialog. We wáaĞciwoĞci Text trze- ciego przycisku wpisz Wyħlij plik. Po naciĞniĊciu przycisku powinno siĊ pojawiü standardowe okno wyboru pliku, w którym bĊdzie moĪna wskazaü plik do wysáania. Wysyáanie pliku zrealizujemy w metodzie obsáugującej zdarzenie Click przycisku. private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { if (openFileDialog1- ShowDialog()== System::Windows::Forms::DialogResult::OK) { if (openFileDialog1- FileName== ) return; Uri^ adres = gcnew Uri( ftp:// +textBox1- Text+ / + Path::GetFileName(openFileDialog1- FileName)); FtpWebRequest^ req = dynamic_cast FtpWebRequest^ (WebRequest::Create(adres)); req- Credentials=gcnew NetworkCredential( anonymous , moja_nazwa@moj_adres.pl ); req- Method=WebRequestMethods::Ftp::UploadFile; FileStream^ stru_plik = gcnew FileStream(openFileDialog1- FileName,FileMode::Open); Stream^ req_stream = req- GetRequestStream(); int ile_bajtow; array Byte ^ bufor = gcnew array Byte (1024); do { ile_bajtow=stru_plik- Read(bufor,0,1024); req_stream- Write(bufor,0,ile_bajtow); } while(ile_bajtow!=0); req_stream- Close(); MessageBox::Show( Plik wysđany , Potwierdzenie ,MessageBoxButtons::OK, MessageBoxIcon::Information); } } Po uruchomieniu programu naleĪy wpisaü adres serwera wraz z katalogiem, w którym chcemy umieĞciü plik (na przykáad ftp.mojftp.net/upload), a nastĊpnie najlepiej dla sprawdzenia pobraü spis plików za pomocą przycisku Katalog. Teraz naciĞnij przycisk Rozdziaä 12. i Poäñczenie aplikacji z sieciñ internet 165 WyĞlij plik, wybierz plik w oknie dialogowym i kliknij OK — plik zostanie wysáany na serwer. Po wysáaniu moĪesz znowu pobraü zawartoĞü katalogu, aby sprawdziü, czy plik zostaá wysáany. Aby program dziaäaä, serwer musi zezwalaè na przyjmowanie plików. JeĔeli chcesz siö zalogowaè na prywatny serwer, musisz podaè swój login i hasäo we wäaĈciwoĈci Credentials. Wpisywanie swojego loginu i hasäa na staäe do programu jest niebezpieczne — raczej naleĔy dodaè moĔliwoĈè wpisywania tych danych do pól tekstowych, skñd bödñ za kaĔdym razem pobierane.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Microsoft Visual C++ 2008. Praktyczne przykłady
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: