Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00161 009722 11027755 na godz. na dobę w sumie
Aplikacje w Delphi. Przykłady - książka
Aplikacje w Delphi. Przykłady - książka
Autor: Liczba stron: 260
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-212-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> delphi - programowanie
Porównaj ceny (książka, ebook, audiobook).
Delphi jest narzędziem do programowania obiektowego w systemie Windows, opartym na języku Object Pascal, którego składnia jest zgodna ze składnią języka Turbo Pascal. Środowisko Delphi IDE (ang. Integrated Development Environment) umożliwia zaprojektowanie w prosty sposób interfejsu użytkownika, generując część kodu programu automatycznie.
Istnieje wiele książek poświęconych Delphi, ta jednak różni się od pozostałych. Przedstawia ona przykłady kodu źródłowego pokazującego, jak w praktyce używać Delphi. Jest więc uzupełnieniem książek omawiających sam język Object Pascal i prezentuje wykorzystanie wiedzy teoretycznej w praktyce programistycznej. Przykładowym tekstom programów towarzyszą komentarze autora wyjaśniające dlaczego użyto takiego, a nie innego rozwiązania.

Zagadnienia omówione w tej książce obejmują szeroki zakres tematyczny:

Nie odkrywaj Ameryki: sprawdź najpierw, jak inni rozwiązali problemy, które napotkałeś programując w Delphi. Ta książka zaoszczędzi Twój czas i pozwoli pisać programy znacznie efektywniej, a przy okazji sprawi, że poznasz wiele nowych możliwości wspaniałego narzędzia jakim jest Delphi.

Praktyczne rozwiązania konkretnych problemów:

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

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Aplikacje w Delphi. Przyk³ady Autor: Teresa Pamula ISBN: 83-7361-212-2 Format: B5, stron: 260 Delphi jest narzêdziem do programowania obiektowego w systemie Windows, opartym na jêzyku Object Pascal, którego sk³adnia jest zgodna ze sk³adni¹ jêzyka Turbo Pascal. Ďrodowisko Delphi IDE (ang. Integrated Development Environment) umo¿liwia zaprojektowanie w prosty sposób interfejsu u¿ytkownika, generuj¹c czêġæ kodu programu automatycznie. Istnieje wiele ksi¹¿ek poġwiêconych Delphi, ta jednak ró¿ni siê od pozosta³ych. Przedstawia ona przyk³ady kodu ĥród³owego pokazuj¹cego, jak w praktyce u¿ywaæ Delphi. Jest wiêc uzupe³nieniem ksi¹¿ek omawiaj¹cych sam jêzyk Object Pascal i prezentuje wykorzystanie wiedzy teoretycznej w praktyce programistycznej. Przyk³adowym tekstom programów towarzysz¹ komentarze autora wyjaġniaj¹ce dlaczego u¿yto takiego, a nie innego rozwi¹zania. Zagadnienia omówione w tej ksi¹¿ce obejmuj¹ szeroki zakres tematyczny: • Projektowanie interfejsu u¿ytkownika, tworzenie menu • Formatowanie tekstu i liczb • Tworzenie okien dialogowych, list wyboru • Pisanie prostego edytora tekstu • Prezentacja danych w tabelach i za pomoc¹ wykresów • Pisanie aplikacji graficznych • Korzystanie z zasobów dyskowych i drukarek • Pos³ugiwanie siê wieloma komponentami tego samego typu • Dynamiczne tworzenie komponentów, tworzenie nowych klas komponentów • Pisanie aplikacji opartych na bazach danych Nie odkrywaj Ameryki: sprawdĥ najpierw, jak inni rozwi¹zali problemy, które napotka³eġ programuj¹c w Delphi. Ta ksi¹¿ka zaoszczêdzi Twój czas i pozwoli pisaæ programy znacznie efektywniej a przy okazji sprawi, ¿e poznasz wiele nowych mo¿liwoġci wspania³ego narzêdzia jakim jest Delphi. Spis treści Wprowadzenie ...................................................n................................ 7 Rozdział 1. Projektowanie aplikacji w Delphi ...................................................n..... 9 Środowisko zintegrowane — Delphi IDE ...................................................z.........................9 Elementy projektu aplikacji ...................................................z...........................................10 Standardowe właściwości komponentów...................................................z.......................13 Standardowe zdarzenia...................................................z...................................................z14 Rozdział 2. Podstawowe składniki aplikacji...................................................n..... 17 Okno aplikacji ...................................................z...................................................z.............17 Ikona aplikacji ...................................................z...................................................z.............22 Wyświetlanie napisów...................................................z...................................................z.22 Rodzaje przycisków, podobieństwa i różnice ...................................................z................27 Etykiety i przyciski...............................z...................................................z..........................30 Rozdział 3. Menu główne i podręczne...................................................n.............. 35 Wielopoziomowe menu główne...................................................z.....................................35 Przyporządkowanie poleceń opcjom menu...................................................z....................37 Menu podręczne ...................................................z...................................................z..........40 „Polskie litery” w nazwach poleceń menu...................................................z.....................41 Rozdział 4. Wprowadzanie danych, formatowanie i wyświetlanie na ekranie ........ 43 Liczby — funkcje konwersji i formatowanie liczb. Przecinek czy kropka?.....................44 Daty — funkcje konwersji i formatowanie daty i czasu ...................................................z46 Systemowe separatory liczb i daty ...................................................z.................................49 Wprowadzanie danych za pomocą okienek edycyjnych TEdit.........................................49 Wprowadzanie danych za pomocą okienek InputBox i InputQuery.................................54 Sposoby zabezpieczenia programu przed błędami przy wprowadzaniu danych ..............55 Obliczenia. Wybrane funkcje modułu Math ...................................................z..................61 Rozdział 5. Okienka komunikatów ...................................................n.................. 65 Wyświetlanie komunikatów z napisami stałymi w języku szystemowym — MessageBox...................................................z...................................................z.........66 Wyświetlanie komunikatów za pomocą funkcji ShowMessage, zMessageDlg, MessageDlgPos...................................................z...................................................z.........67 4 Aplikacje w Delphi. Przykłady Rozdział 6. Okienka dialogowe z karty Dialogs ...................................................n 73 Rozdział 7. Listy wyboru — TListBox i TComboBox............................................. 79 Dodawanie elementów do listy ...................................................z......................................81 Wybieranie elementów z listy ...................................................z........................................82 Sposoby wyświetlania elementów listy...................................................z..........................84 Blokowanie edycji dla listy TComboBox ...................................................z......................86 Czytanie i zapisywanie zawartości listy do pliku dyskowego ..........................................87 Rozdział 8. Prosty edytor — komponent TMemo................................................. 89 Kopiowanie, wycinanie i wklejanie tekstu...................................................z.....................90 Czytanie i zapisywanie tekstu do pliku ...................................................z..........................91 Wyświetlanie informacji o położeniu kursora ...................................................z...............92 Automatyczne kasowanie linii nie zawierających liczb lub wybranych znaków .............93 Rozdział 9. Grupowanie komponentów...................................................n.............. 95 Pola opcji i pola wyboru...................................................z.................................................95 Komponenty grupujące ...................................................z..................................................96 Ramka TBevel...................................................z...................................................z...........100 Rozdział 10. Tabelaryzacja danych — komponent TStringGrid ............................. 101 Ustalanie podstawowych parametrów tabeli...................................................z................104 Wypełnianie tabeli danymi...................................................z...........................................106 Wybieranie komórek tabeli ...................................................z..........................................108 Filtrowanie wprowadzanych danych...................................................z............................110 Niestandardowe przejście do kolejnej komórki — klawisz Enter ..................................112 Zmiana koloru i wyrównania tekstu w wybranych komórkach ......................................114 Wyświetlanie tekstu w komórce w dwóch wierszach...................................................z..117 Totolotek ...................................................z...................................................z...................119 Tabela i lista ...................................................z...................................................z..............121 Rozdział 11. Graficzna prezentacja danych — komponent TChart ........................ 123 Rysowanie wykresów z wykorzystaniem komponentu TChart ......................................123 Opis wybranych właściwości, metod i zdarzeń komponentów TChart i TChartSeries ..125 Wykresy kołowe...................................................z...................................................z........128 Wykresy kolumnowe...................................................z...................................................z.131 Wykresy funkcji matematycznych ...................................................z...............................134 Formatowanie i skalowanie wykresów ...................................................z........................138 Posługiwanie się wieloma wykresami...................................................z..........................142 Rozdział 12. Odmierzanie czasu — komponent TTimer........................................ 147 Rozdział 13. Grafika w Delphi — korzystanie z metod obiektu TCanvas ............... 149 Wyświetlanie prostych figur geometrycznych i tekstu ...................................................z150 Rysowanie „trwałe” — zdarzenie OnPaint ...................................................z..................156 Przykłady animacji w Delphi ...................................................z.......................................158 Rozdział 14. Wyświetlanie obrazów — komponent TImage.................................. 163 Rysowanie po obrazie ...................................................z..................................................165 Binaryzacja obrazu...................................................z...................................................z....166 Rozdział 15. Współpraca programu z plikami dyskowymi .................................... 169 Wybór foldera plików ...................................................z..................................................169 Wyszukiwanie plików ...................................................z..................................................171 Zapisywanie danych z okienek TEdit i tabeli do pliku tekstowego................................174 Czytanie danych z pliku tekstowego...................................................z............................175 Zapisywanie i odczytywanie danych z tabeli do pliku *.csv ..........................................177 Spis treści 5 Rozdział 16. Drukowanie w Delphi ...................................................n.................. 179 Drukowanie napisów i tekstu z okienek edycyjnych ...................................................z...180 Drukowanie tabeli i wykresu...................................................z........................................181 Drukowanie obrazu ...................................................z...................................................z...184 Rozdział 17. Programy z wieloma oknami ...................................................n........ 187 Wymiana danych i metod między modułami...................................................z...............187 Program z hasłem ...................................................z...................................................z......190 Wyświetlanie tytułu programu ...................................................z.....................................192 Rozdział 18. Posługiwanie się wieloma komponentami tego samego typu. Operatory Is i As...................................................n......................... 195 Wprowadzanie i kasowanie danych dla kilku okienek edycyjnych................................196 Przypisywanie grupie komponentów tej samej procedury obsługi zdarzenia.................197 Wyświetlanie informacji o numerach kontrolek, ich nazwach i klasach ........................200 Rozdział 19. Tablice dynamiczne...................................................n..................... 203 Rozdział 20. Dynamiczne tworzenie komponentów.............................................. 207 Wyświetlanie kontrolek i przypisywanie zdarzeniom procedur obsługi ........................208 Przykłady dynamicznego tworzenia wykresów ...................................................z...........212 Tworzenie menu w czasie działania programu ...................................................z............215 Rozdział 21. Definiowanie nowych klas komponentów ........................................ 219 Klasa tabel z wyrównaniem zawartości komórek do prawej strony ...............................219 Klasa okienek z właściwością Alignment...................................................z....................221 Instalowanie nowych komponentów na palecie komponentów......................................223 Nowy komponent do ankiety ...................................................z.......................................227 Rozdział 22. Podstawowe operacje na bazach danych ........................................ 231 Przeglądanie istniejących baz danych w formacie .dbf...................................................z233 Tworzenie własnej bazy danych ...................................................z..................................235 Modyfikowanie bazy...................................................z...................................................z.237 Filtrowanie rekordów bazy danych ...................................................z..............................238 Wyszukiwanie rekordów...................................................z..............................................240 Sortowanie...................................................z...................................................z.................241 Rysowanie wykresów na podstawie danych z bazy...................................................z.....242 Obliczanie średniej ze wszystkich wartości danego pola................................................243 Biblioteka — przykład relacyjnej bazy danych ...................................................z...........244 Literatura ...................................................n................................... 249 Skorowidz...................................................n................................... 251 Rozdział 13. Grafika w Delphi — korzystanie z metod obiektu TCanvas Niektóre komponenty posiadają właściwość typu obiektowego 6 CPXCU (tzw. płótno). Są to m.in.: 6(QTO, 6+OCIG, 62CKPV$QZ, 6$KVOCR, 6 QODQ$QZ, 65VTKPI)TKF, 6.KUV$QZ, 62TKPVGT. Właściwość CPXCU zawiera metody, które umożliwiają rysowanie na tych kompo- nentach za pomocą linii różnych figur, kolorowanie powierzchni oraz wyświetlanie tekstu. Możliwa jest również zmiana koloru i grubości linii, koloru i wzoru wypełnie- nia, atrybutów czcionki itd. Rysowanie za pomocą metod obiektu CPXCU różnych obiektów może być przydatne do zmiany cech niektórych komponentów, np. 65VTKPI)TKF czy 6 JCTV, a także przy drukowaniu formularza i tekstu. Wybrane właściwości obiektu 6 CPXCU: $TWUJ — określa wzór lub kolor wypełnienia figur (tzw. pędzeml); (QPV — krój czcionki dla wyświetlanych napisów; 2GP — określa cechy kreślonych linii: grubość, styl, kolor (tzmw. pióro); 2GP2QU — określa współrzędne kursora graficznego. Podstawowymi parametrami większości procedur i funkcji graficznych są współrzędne punktu na komponencie, po którym rysujemy. Lewy górny róg ma współrzędne (0, 0), a prawy dolny najczęściej (9KFVJ, *GKIJV). Na rysunku 13.1 przedstawiono współrzędne okna formularza, które wykorzystano w zadaniach tego rmozdziału. 150 Rysunek 13.1. Formularz z zaznaczonymi wartościami współrzędnych wierzchołków (x, y) Aplikacje w Delphi. Przykłady Wyświetlanie prostych figur geometrycznych i tekstu Proste figury i tekst możemy wyświetlić na formularzu, korzystając z procedur i funkcji obiektu typu 6 CPXCU — tabela 13.1. Właściwości takiego obiektu umożliwiają m. in. zmianę grubości i stylu rysowanych linii, zmianę koloru i wzoru wypełnienia figur oraz wybór kroju i stylu czcionki dla tekstu. Tabela 13.1. Wybrane metody obiektu TCanvas Metoda Znaczenie -QNQT CPXCU2KZGNU=Z[? CPXCU2KZGNU=?EN4GF /QXG6Q Z[KPVGIGT .KPG6Q Z[KPVGIGT 4GEVCPING Z[Z[+PVGIGT NNKRUG Z[Z[+PVGIGT 2QN[NKPG 2QKPVUCTTC[QH62QKPV Za pomocą funkcji 2KZGNU można odczytać kolor piksela w miejscu o współrzędnych (x, y) — zmienna -QNQT jest typu 6 QNQT. Ta sama funkcja wywołana w ten sposób powoduje wyświetlenie na formularzu czerwonego punktu w miejsucu o współrzędnych [10, 20] — współrzędną poziomą (x) liczymy od lewej do prawej, a współrzędną pionową od góry wu dół. Współrzędne lewego górnego wierzchołka to (0, 0). Przenosi kursor graficzny do punktu o współrzędnych ux, y. Rysuje linię od bieżącej pozycji kursora graficznego duo punktu o współrzędnych x, y. Procedura rysuje prostokąt wypełniony standardowym kolorem pędzla ( CPXCU$TWUJ QNQT). Procedura rysuje elipsę (lub koło) — parametrami są współrzędne dwóch przeciwległych wierzchołków prostuokąta (kwadratu), w który elipsa jest wpisana. Procedura rysuje linię łamaną lub wielokąt. Parametramui są współrzędne punktów, które zostaną połączone linią.u Jeśli współrzędne punktu pierwszego i ostatniego są takie usame, to rysowany jest wielokąt; w przeciwnym razie liniau łamana, np. procedura: 2QN[NKPG =2QKPV  2QKPV  2QKPV   2QKPV  2QKPV  2QKPV  ? narysuje gwiazdę pięcioramienną (patrz pomoc dla polyline). Rozdział 13. ♦ Grafika w Delphi — korzystanie z metod obiektu TCanvas 151 Tabela 13.1. Wybrane metody obiektu TCanvas (ciąg dalszy) Metoda Znaczenie 2QN[IQP 2QKPVUCTTC[QH62QKPV 4GHTGUJ TCY Z[KPVGIGT )TCRJKE6)TCRJKE Procedura umożliwia narysowanie wielokąta wypełnionuego bieżącym kolorem i stylem pędzla. Przykładowo, instruukcje: CPXCU$TWUJ QNQTEN4GF CPXCU2QN[IQP =2QKPV  2QKPV   å2QKPV  2QKPV  ?  spowodują narysowanie czworokąta wypełnionego koloruem czerwonym. Współrzędne punktu pierwszego i ostatniego unie muszą się pokrywać, ponieważ procedura i tak łączy una końcu punkt ostatni z punktem pierwszym. Odświeżanie formularza — procedura kasuje wszystkie oubiekty rysowane za pomocą metod obiektu CPXCU i nieumieszczone w procedurze obsługi zdarzenia 1P2CKPV. Rysuje obraz określony parametrem )TCRJKE w miejscu o współrzędnych x i y (przykład 13.14). #TE Z[Z[Z[Z[ KPVGIGT Rysuje krzywą eliptyczną w prostokącie o współrzędnuych (x1, y1; x2, y2), od punktu o współrzędnych (x3, y3) do punktu (x4, y4). 6GZV1WV Z[KPVGIGTEQPUV 6GZVUVTKPI QR[4GEV EQPUV GUV64GEV CPXCU6 CPXCUEQPUV5QWTEG 64GEV (KNN4GEV EQPUV4GEV64GEV (NQQF(KNN :;+PVGIGT QNQT 6 QNQT(KNN5V[NG6(KNN5V[NG Wyświetla tekst od punktu o współrzędnych x, y — lewy górny róg prostokąta zawierającego tekst; 6GZV to parametr w postaci tekstu stałego w apostrofach, np. #NCOCMQVC , lub zmienna zawierająca łańcuch znaków, np. C #NCOCMQVC (EQPUV w nagłówku procedury oznacza podobne wywołanie jak w przypadku wartości, lecz umożliwia bardziej efektyuwne wykorzystanie pamięci). Kopiuje część obrazu z jednego płótna na inne płótno. Rysowanie prostokąta wypełnionego bieżącym kolorem i uwzorem. Wypełnianie tzw. powodziowe obiektów. (TCOG4GEV EQPUV4GEV64GEV Rysowanie obwodu prostokąta. 2KG :;:;:;: ;+PVGIGT  4QWPF4GEV :;:;: ;+PVGIGT 5VTGVEJ TCY EQPUV4GEV64GEV )TCRJKE6)TCRJKE 6GZV*GKIJV EQPUV6GZVUVTKPI  +PVGIGT 6GZV1WV :;+PVGIGTEQPUV 6GZVUVTKPI 6GZV4GEV 4GEV64GEV:; +PVGIGTEQPUV6GZVUVTKPI Rysowanie wycinka koła. Rysowanie prostokąta z zaokrąglonymi narożnikami. Dopasowanie rysunku do obszaru danego prostokąta. Funkcja zwraca wysokość tekstu w pikselach. Procedura wyświetla napis na komponencie posiadającyum właściwość 6 CPXCU. Procedura wyświetla napis w prostokącie, którego wspóułrzędne są podane w postaci typu 64GEV (pierwszy parametr). Procedura była wykorzystywana przy formatowaniu komórek tabeliu. 6GZV9KFVJ EQPUV6GZVUVTKPI  +PVGIGT Funkcja zwraca szerokość tekstu w pikselach. 152 Aplikacje w Delphi. Przykłady Oprócz wymienionych metod zdefiniowane są metody, które korzystają z tzw. mecha- nizmów niskopoziomowych i właściwości *CPFNG komponentu, np. instrukcja: MQN)GV0GCTGUV QNQT (QTO CPXCU*CPFNG4)$   spowoduje przypisanie zmiennej MQN koloru najbardziej zbliżonego do podanego — w przypadku, gdy bieżący tryb graficzny nie posiada koloru typu RGB. Przykład 13.1. Wyświetl na etykiecie współrzędne prawego dolnego wiermzchołka formularza — lewy górny ma współrzędne (0, 0). Rozwiązanie Wstaw etykietę 6.CDGN. Współrzędne prawego dolnego wierzchołka formularza możemy odczytać, korzystając z właściwości NKGPV9KFVJ i NKGPV*GKIJV formularza. Należy wpisać np. w procedurze obsługi zdarzenia 1P NKEM etykiety instrukcję: .CDGN CRVKQP+PV6Q5VT NKGPV9KFVJ  +PV6Q5VT NKGPV*GKIJV  lub użyć funkcji )GV NKGPV4GEVCPING, która zwraca wartość typu 64GEV określającą współrzędne dwóch przeciwległych wierzchołków formularzam: 4(QTO)GV NKGPV4GEVCPING4V[RW64GEVOQľPCCFGMNCTQYCèLCMQOKGPPæNQMCNPæ .CDGN CRVKQP+PVVQUVT 44KIJV  +PVVQUVT 4$QVVQO  Przykład 13.2. Na środku formularza wyświetl punkt koloru czerwonego, przy czym nie może w tym miejscu znajdować się inny obiekt (np. przycisk), bo wyświetlony piksel zostanie przez ten obiekt przesłonięty. Rozwiązanie Poniższą instrukcję wpisz np. w procedurze obsługi prmzycisku: CPXCU2KZGNU= NKGPV9KFVJFKX NKGPV*GKIJVFKX?EN4GF Przykład 13.3. Narysuj linie koloru czerwonego będące przekątnymi formmularza — rysunek 13.2. Rysunek 13.2. Formularz z przekątnymi pozostającymi po zmianie jego rozmiaru Rozdział 13. ♦ Grafika w Delphi — korzystanie z metod obiektu TCanvas 153 Rozwiązanie Poniższe instrukcje wpisz np. w procedurze obsługi pmrzycisku. Pierwsza przekątna: CPXCU2GP QNQTEN4GFOKCPCMQNQTWRKÎTCPCEGTYQP[ RTGUWPKúEKGMWTUQTCITCHKEPGIQFQRWPMVWQYURÎđTúFP[EJ  CPXCU/QXGVQ   PCT[UQYCPKGNKPKKQFDKGľæEGIQRQđQľGPKCMWTUQTCITCHKEPGIQGFQRWPMVWRTCYGIQ åFQNPGIQYKGTEJQđMC CPXCU.KPGVQ NKGPV9KFVJ NKGPV*GKIJV  Narysuj drugą przekątną. Aby przekątne pozostały na formularzu podczas zmiany jego rozmiaru, należy wykorzy- stać dwa zdarzenia: 1P2CKPV i 1P4GUKG. W procedurach obsługi tych zdarzeń powinny znaleźć się instrukcje, jak w procedurach poniżej: RTQEGFWTG6(QTO(QTO2CKPV 5GPFGT61DLGEV  DGIKP  CPXCU2GP QNQTEN4GF  CPXCU/QXGVQ    CPXCU.KPGVQ NKGPV9KFVJ NKGPV*GKIJV   CPXCU/QXGVQ NKGPV9KFVJ   CPXCU.KPGVQ  NKGPV*GKIJV  GPF i RTQEGFWTG6(QTO(QTO4GUKG 5GPFGT61DLGEV  DGIKP 4GHTGUJRT[OKCPKGTQOKCTWQMPC MCUQYCPGUæRQRTGFPKGRTGMæVPG GPF Przykład 13.4. Wyświetl na formularzu punkty rozmieszczone losowo i om losowych kolorach. Rozwiązanie Wstaw przycisk i w procedurze obsługi zdarzenia 1P NKM wpisz odpowiednie instrukcje: .QUQYGRWPMV[ RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  XCTKKPVGIGT DGIKP HQTKVQFQ CPXCU2KZGNU=4CPFQO NKGPV9KFVJ 4CPFQO NKGPV*GKIJV ? 4)$ 4CPFQO  4CPFQO  4CPFQO    GPF Przykład 13.5. Wyświetl na formularzu trzy różne prostokąty — ramkę, prostokąt wypełniony kolorem $TWUJ QNQT, prostokąt z zaokrąglonymi brzegami. 154 Aplikacje w Delphi. Przykłady Rozwiązanie W procedurze obsługi przycisku wpisz instrukcje jakm poniżej: RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  XCT RTQUV64GEV DGIKP RTQUV4GEV    CPXCU$TWUJ QNQTEN$NCEM TCOMC  CPXCU(TCOG4GEV RTQUV   CPXCU$TWUJ QNQTEN)TGGP RTQUVQMæVY[RGđPKQP[  CPXCU4GEVCPING   RTQUVQMæVCQMTæINQP[OKDTGICOK  CPXCU4QWPF4GEV   GPF Przykład 13.6. Wyświetl na środku formularza napis „Zadania z Delphi” w kolorze niebieskim, o roz- miarze czcionki równym 36 pt, bez tła — rysunek 13.3. Rysunek 13.3. Napis na środku formularza Rozwiązanie W procedurze wykorzystano funkcje zwracające szerokość i wysokość napisu oraz rozmiary formularza — i na tej podstawie obliczono współrzędne lewego górnego wierzchołka wyświetlanego napisu: RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  XCTZ[KPVGIGT DGIKP  CPXCU(QPV0COG #TKCN   CPXCU(QPV QNQT N$NWG  CPXCU(QPV5KG  CPXCU$TWUJ5V[NGDU NGCT Z NKGPV9KFVJ CPXCU6GZV9KFVJ CFCPKC  GNRJK  [ NKGPV*GKIJV CPXCU6GZV*GKIJV   CPXCU6GZV1WV ZFKX[FKX CFCPKC GNRJK  GPF Rozdział 13. ♦ Grafika w Delphi — korzystanie z metod obiektu TCanvas 155 Przykład 13.7. Narysuj elipsę o maksymalnych wymiarach na formularzu. Rozwiązanie W procedurze obsługi przycisku wpisz instrukcję: GNKRUCYRKUCPCYRTQUVQMæVQTQOKCTCEJHQTOWNCTC CPXCU NNKRUG  NKGPV9KFVJ NKGPV*GKIJV  Przykład 13.8. Narysuj na formularzu trójkąt o zielonym obwodzie i żómłtym wypełnieniu. Rozwiązanie RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  DGIKP  CPXCU$TWUJ QNQTEN;GNNQY  CPXCU2GP QNQTEN)TGGP T[UQYCPKGVTÎLMæVC  CPXCU2QN[NKPG =2QKPV  2QKPV  2QKPV  2QKPV  ?   CPXCU(NQQFHKNN ENITGGPHUDQTFGT RTQEGFWTCY[RGGđPKCQDKGMVPCT[UQYCP[ MQNQTGOKGNQP[OYGYPæVTMVÎTGIQPCLFWLGUKúRWPMVQYURÎđTGúFP[EJ  GPF Przykład 13.9. Wyświetl na formularzu linie rysowane różnymi stylami. Rozwiązanie Wstaw przycisk 6$WVVQP. W procedurze obsługi zdarzenia 1P NKEM przycisku wpisz instrukcje, jak w poniższej procedurze: UV[NGNKPKK RTQEGFWTG6(QTO$WVVQP NKEM 5GGPFGT61DLGEV  XCTZ[KPVGIGT DGIKP Z4CPFQO NKGPV9KFVJ  [4CPFQO NKGPV*GKIJV   CPXCU2GP QNQT4)$ 4CPFQO  4CPFQO  4CPFQO   ECUG4CPFQO  QH  CPXCU2GP5V[NGRU5QNKF  CPXCU2GP5V[NGRU CUJ  CPXCU2GP5V[NGRU QV  CPXCU2GP5V[NGRU CUJ QV  CPXCU2GP5V[NGRU CUJ QV QV GPF  CPXCU.KPG6Q Z[  GPF 156 Aplikacje w Delphi. Przykłady Przykład 13.10. Wyświetl na formularzu prostokąt malowany różnymi stylami pędzla po każdym kliknię- ciu przycisku. Rozwiązanie Wstaw przycisk 6$WVVQP. W procedurze obsługi zdarzenia 1P NKEM przycisku wpisz instrukcje, jak w poniższej procedurze: UV[NGRúFNC RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  DGIKP 4GHTGUJMCUWLGRQRTGFPKRTQUVQMæV  CPXCU$TWUJ QNQT4)$ 4CPFQO  4CPFQO  4CPFQO  MQNQTGORúFNC GOCNQYCPGUæYQT[ ECUG4CPFQO  QH  CPXCU$TWUJ5V[NGDU NGCT  CPXCU$TWUJ5V[NGDU5QNKF  CPXCU$TWUJ5V[NGDU$ KCIQPCN  CPXCU$TWUJ5V[NGDU( KCIQPCN  CPXCU$TWUJ5V[NGDU TQUU  CPXCU$TWUJ5V[NGDU KCI TQUU  CPXCU$TWUJ5V[NGDU*QTKQPVCN  CPXCU$TWUJ5V[NGDU8GTVKECN GPF  CPXCU4GEVCPING   GPF Rysowanie „trwałe” — zdarzenie OnPaint Instrukcje zawierające metody obiektu CPXCU można umieszczać w procedurach obsłu- gi zdarzenia 1P NKEM dla przycisków, dla formularza i innych komponentów. Można również korzystać z innych zdarzeń komponentów. Jednak tylko niektóre z nich umoż- liwiają tzw. „trwałe” rysowanie, czyli rysowanie odnawmiane po każdej zmianie, np. po zmianie rozmiaru okna i przykryciu w ten sposób części obiektów graficznych. Dla okna formularza korzysta się w tym celu ze zdarzenia 1P2CKPV. Dla innych komponentów podobne zdarzenia mają inne nazwy. Przedstawiono jem w tabeli 13.2. Przykład 13.11. Narysuj na formularzu prostokąt koloru czerwonego, tak aby nie kasował się po przy- kryciu okna formularza innym oknem. Prostokąt powinien rysować się po kliknięciu przycisku i kasować po kliknięciu drugiego przyciskum — rysunek 13.4. Rozwiązanie Wstaw dwa przyciski 6$WVVQP. Rozdział 13. ♦ Grafika w Delphi — korzystanie z metod obiektu TCanvas 157 Tabela 13.2. Zdarzenia umożliwiające rysowanie „trwałe” Zdarzenie Znaczenie 1P2CKPV Zdarzenie dla formularza generowane każdorazowo, gdyu zawartość okna formularza wymaga odświeżenia. Sytuacja taka ma miejsce przy tworuzeniu okna formularza, a także wtedy, gdy np. jedno okno zostanie przesłoniuęte innym oknem lub gdy następuje zmiana jego rozmiaru. 2CKPV$QZ2CKPV Odpowiednik zdarzenia 1P2CKPV dla komponentu 2CKPV$QZ. 1P TCY GNN Zdarzenie występujące dla komponentu typu 6 TCY)TKF i 65VTKPI)TKF — umożliwia „trwałe” rysowanie obiektów i wyświetlanie tekstu w koumórkach. Zdarzenie dla komponentu typu 6 JCTV, odpowiednik zdarzenia 1P2CKPV. 1P#HVGT TCY Rysunek 13.4. Rysowanie i kasowanie prostokąta na formularzu Gdyby instrukcję rysującą prostokąt umieścić w procedurze obsługi zdarzenia 1P2CKPV, to prostokąt byłby na formularzu bezpośrednio po uruchomieniu programu. Dlatego procedurę obsługi tego zdarzenia z nową instrukcją należy wywołać za pomocą przy- cisku. W przykładzie pokazano, jak wykonać takie zadanie. RTQEGFWTG6(QTO/QLC2TQE 5GPFGT61DLGEV  DGIKP  CPXCU4GEVCPING  NKGPV9KFVJ NKGPV*GKIJV  GPF RTQEGFWTCT[UWLGRTQUVQMæVMQNQTWEGTYQPGIQKRT[RKUWLGRTQEGFWTGQDUđWIK åFCTGPKC1P2CKPVRTQEGFWTú/QLC2TQE RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  DGIKP  CPXCU2GP QNQTEN4GF  CPXCU4GEVCPING  NKGPV9KFVJ NKGPV*GKIJV  1P2CKPV/QLC2TQERT[RKUCPKGRTQEGFWTGQDUđWIKFCTGPKCRTQEGFWT[T[UWLæEGL åRTQUV GPF QFđæEGPKGRTQEGFWT[/QLC2TQEQFFCTGPKC1P2CKPVōY[MCUQYCPKGRTQUVQMæVC RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  DGIKP 1P2CKPVPKNVCKPUVTWMELCURQYQFWLGľGT[UWPGMRTQUVQGMæVCPKGDúFKGQFPCYKCP[ 4GHTGUJRTQEGFWTCVCMCUWLGRTQUVQMæV GPF 158 Aplikacje w Delphi. Przykłady Przykład 13.12. Wypełnij formularz bitmapą, np. kawa.bmp. Rozwiązanie W procedurze obsługi zdarzenia 1P2CKPV dla formularza wpisz instrukcje, jak w pro- cedurze poniżej. Zadeklaruj zmienną globalną lub pole klasy 6(QTO (w sekcji RWDNKE): XCT$KVOCR6$KVOCR RTQEGFWTG6(QTO(QTO2CKPV 5GPFGT61DLGEV  XCTZ[+PVGIGT DGIKP [ YJKNG[*GKIJVFQ DGIKP Z YJKNGZ9KFVJFQ DGIKP  CPXCU TCY Z[$KVOCR  ZZ $KVOCR9KFVJ GPF [[ $KVOCR*GKIJV GPF GPF W metodzie (QTO(QTO TGCVG dopisz instrukcje: $KVOCR6$KVOCR TGCVG $KVOCR.QCF(TQO(KNG  9+006 MCYCDOR  Przykłady animacji w Delphi W programowaniu stosuje się różne techniki animacji. Jednym z prostszych sposobów jest rysowanie obiektu, następnie kasowanie i ponowne rysowanie w innym miejscu. Wadą tego sposobu jest trudność w uzyskaniu płynnośmci ruchu obiektów. Inna metoda polega na zastosowaniu dwóch obszarów, na których rysujemy. W danej chwili widoczny jest tylko jeden z nich. Drugi jest wówczas modyfikowany i wyświe- tlany dopiero po zakończeniu operacji w miejsce piermwszego. W zadaniach przykładowych zastosowano pierwszy sposób animacji. Udało się uzyskać odpowiednią płynność ruchu obiektów, dlatego nie wykorzystano sposobu z użyciem dwóch obszarów rysowania. Przykład 13.13. Wykonaj następującą animację: kółko o średnicy 30 punktów przesuwa się od lewego do prawego brzegu formularza i z powrotem. Rozdział 13. ♦ Grafika w Delphi — korzystanie z metod obiektu TCanvas 159 Rozwiązanie W procedurze obsługi przerwania od Timera wpisz: ], _ RTQEGFWTG6(QTO6KOGT6KOGT 5GPFGT61DLGEV  EQPUVZKPVGIGT [KPVGIGT MTQMKPVGIGT DGIKP MCUQYCPKGQDKGMVW  CPXCU$TWUJEQNQT QNQTMQNQTHQTOWNCTC  CPXCU2GPEQNQT QNQTMQNQTRKÎTC (QTO CPXCU NNKRUG Z[Z [   T[UQYCPKGMÎđMCMQNQTGOEGTYQP[O  CPXCU$TWUJEQNQTEN4GF ZZ MTQM  CPXCU NNKRUG Z[Z [   KHZ   NKGPVYKFVJVJGPMTQMMTQM KHZVJGPMTQMMTQM GPF Dyrektywa ], _przed treścią procedury włącza opcję kompilatora umożliwiającą zmianę wartości stałych typowanych (ang. Assignable typed constans). Opcja ta powinna być standardowo włączona, ale jeśli nie mamy pewności, lepmiej dodać dyrektywę ], _. Przykład 13.14. Wykonaj animację tak jak w zadaniu poprzednim, gdy formularz jest wypełniony wzorem — rysunek 13.5. Rysunek 13.5. Animacja z tłem Rozwiązanie Na formularzu umieść przycisk 6$WVVQP i komponent 66KOGT. Właściwość +PVGTXCN ustaw na 200 ms, a właściwość PCDNGF na HCNUG. Treść procedur obsługi przycisku i przerwania od Timera przedstawiono poniżej. Zadeklaruj zmienną globalną: XCT$KVOCR$KVOCR6$KVOCR RTQEGFWTCRQDKGTCRTQUVQMæVP[HTCIOGPVHQTOWNCTCKWTWEJCOKCG6KOGT RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  XCTZ[KPVGIGT 160 Aplikacje w Delphi. Przykłady DGIKP WVYQTGPKGQDKGMVW$KVOCR $KVOCR6$KVOCR TGCVG $KVOCR9KFVJ NKGPV9KFVJ $KVOCR*GKIJV RQDTCPKGRTQUVQMæVPGIQY[EKPMCHQTOWNCTCQDUCTWRQMVÎT[ODúFKGUKúRQTWUCđQ MÎđMQ HQTZVQ NKGPV9KFVJFQ HQT[VQFQ $KVOCR CPXCU2KZGNU=Z[?(QTO CPXCU2KZGNU=Z[ ? 6KOGT PCDNGFVTWGY+PURGMVQTG1DKGMVÎYCDNQMWL6KOGT GPF RTQEGFWTCQDUđWIKRTGTYCPKCQF6KOGTCT[UQYCPKGKMCUQYCPKGQDKGMVWEQOU RTQEGFWTG6(QTO6KOGT6KOGT 5GPFGT61DLGEV  EQPUVZKPVGIGT [KPVGIGT MTQMKPVGIGT XCTZ[KPVGIGT DGIKP LGħNKYKúMU[O[TQOKCTHQTOWNCTCVQVTGDCYRTQEGFWTGQDUđWIKFCTGPKC 1P4GUKGLGUEGTCRQDTCèDKVOCRú  CPXCU TCY [$KVOCR Y[ħYKGVNGPKGYEGħPKGLRQDTCPGGIQRCUMCHQTOWNCTC MCUQYCPKGQDKGMVW T[UQYCPKGMÎđMC  CPXCU NNKRUG Z[Z [   ZZ MTQM KHZ   NKGPVYKFVJVJGPMTQMMTQM KHZVJGPMTQMMTQM GPF Y[RGđPKCPKGHQTOWNCTCDKVOCRæ RTQEGFWTG6(QTO(QTO2CKPV 5GPFGT61DLGEV  XCTZ[+PVGIGT DGIKP [ YJKNG[*GKIJVFQ DGIKP Z YJKNGZ9KFVJFQ DGIKP  CPXCU TCY Z[$KVOCR  ZZ $KVOCR9KFVJ GPF [[ $KVOCR*GKIJV GPF GPF RTQEGFWTC(QTO GUVTQ[YCNPKCRCOKúè CLOQYCPæRTGDKVOCR[ RTQEGFWTG6(QTO(QTO GUVTQ[ 5GPFGT61DLGEV  DGIKP $KVOCR(TGG $KVOCR(TGG GPF Rozdział 13. ♦ Grafika w Delphi — korzystanie z metod obiektu TCanvas 161 Przykład 13.15. Wykonaj animację polegającą na przemieszczaniu się kulki w losowych kierunkach w prostokątnym obszarze o wymiarach (0, 0, 200, 200). Wykorzystaj komponent 62CKPV$QZ z zakładki System — rysunek 13.6. Rysunek 13.6. Animacja niebieskiej kulki Rozwiązanie Na formularzu umieść komponent 62CKPV$QZ i 66KOGT. Komponent 62CKP$QZ jest stoso- wany do wyświetlania (kreślenia) grafiki, która ma być ograniczona do obszaru prosto- kątnego. Korzystając z komponentu 62CKPV$QZ, programista nie musi kontrolować, czy obszar ten nie został przekroczony — jeśli narysowany obiekt nie mieści się wewnątrz komponentu 62CKPV$QZ, to zostaje obcięty. Dodatkowo zawarty w nim rysunek możemy przesuwać po formularzu, zmieniając właściwości .GHV i 6QR tego komponentu. Proce- dura przedstawiona poniżej działa poprawnie z komponentem 62CKPV$QZ i bez niego — wtedy kulka przesuwa się po formularzu. W zadaniu można również dodać przycisk, który będzie włączał zegar (animację) po wpisaniu w procedurze obsługi instrukcji 6KOGT PCDNGFVTWG (wcześniej należy zegar zablokować w okienku Inspektora Obiektów — PCDNGFVTWG). {J+} RTQEGFWTG6(QTO6KOGT6KOGT 5GPFGT61DLGEV  EQPUVZKPVGIGT [KPVGIGT MTQMZKPVGIGT MTQM[KPVGIGT DGIKP YKVJ2CKPV$QZ CPXCUFQ DGIKP E[UEGPKGRTQUVQMæVC $TWUJ QNQTEN9JKVG 4GEVCPING   QDNKEGPKGYURÎđTúFP[EJ ZZ MTQMZ [[ MTQM[ T[UQYCPKGMQđCYMYCFTCEKGQDQMW TÎYP[ORKMUGNK $TWUJ QNQTEN$NWG  NNKRUG Z[Z [   KH Z  VJGP DGIKP MTQMZ 4CPFQO   162 Aplikacje w Delphi. Przykłady MTQMZMTQMZ GPF KH [  VJGP DGIKP MTQM[ 4CPFQO   MTQM[MTQM[ GPF KH Z VJGPMTQMZMTQMZ KH [ VJGPMTQM[MTQM[ GPFYKVJ GPF Przykład 13.16. Umieść na formularzu komponent typu 6$WVVQP i 65JCRG. Zadaniem przycisku jest wyświetlanie po każdym kliknięciu na przemian kółka lumb prostokąta. Po naciśnięciu klawiszy strzałek komponent 5JCRG przesuwa się zgodnie z kierunkiem strzałki — rysunek 13.7. Rysunek 13.7. Przesuwanie koła za pomocą klawiszy strzałek Aby klawisze strzałek nie były przechwytywane przez komponent Button1, należy ustawić dla każdego z nich właściwość 6CD5GV na HCNUG. Rozwiązanie Wstaw komponenty 6$WVVQP i 65JCRG. W procedurze obsługi kliknięcia przycisku wpisz instrukcje, jak poniżej: RTQEGFWTG6(QTO$WVVQP NKEM 5GPFGT61DLGEV  DGIKP KH5JCRG5JCRGUV KTENGVJGP5JCRG5JCRGUV4GEVCPING GNUG5JCRG5JCRGUV KTENG (QTO#EVKXG QPVTQNPKN GPF W celu sprawdzenia klawiszy strzałek wykorzystaj zdarzenie 1P-G[ QYP dla formularza. Treść procedury obsługi tego zdarzenia przedstawionmo poniżej: RTQEGFWTG6(QTO(QTO-G[ QYP 5GPFGT61DLGEVXCT-G[9QTF5JKHV65JKHV5VCVG  DGIKP ECUG-G[QH XMA4KIJV5JCRG.GHV5JCRG.GHV  XMA.GHV5JCRG.GHV5JCRG.GHV XMA7R5JCRG6QR5JCRG6QR XMA QYP5JCRG6QR5JCRG6QR  GPF GPF
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Aplikacje w Delphi. 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ą: