SlideShare a Scribd company logo
1 of 34
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   Delphi 7. Æwiczenia
                                         zaawansowane
           KATALOG KSI¥¯EK
                                         Autor: Adam Boduch
                      KATALOG ONLINE     ISBN: 83-7361-076-6
                                         Format: B5, stron: 158
       ZAMÓW DRUKOWANY KATALOG           Przyk³ady na ftp: 951 kB


              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA     W 2002 roku firma Borland zaprezentowa³a na polskim rynku now¹ wersjê narzêdzia
                                         typu RAD, s³u¿¹cego do szybkiego tworzenia aplikacji — Delphi. Jest to ju¿ 7. wersja
                                         tego popularnego pakietu. Wprowadzono sporo nowo ci: poprawiono rodowisko
         CENNIK I INFORMACJE             programistyczne IDE, dodano nowe komponenty VCL i wprowadzono kilka zmian
                                         w bibliotece uruchomieniowej. Delphi 7 zosta³o tak¿e przystosowane do platformy .NET
                   ZAMÓW INFORMACJE      Microsoftu.
                     O NOWO CIACH        Je li chcesz szybko zapoznaæ siê z mo¿liwo ciami nowego Delphi, ksi¹¿ka „Delphi 7.
                                         Æwiczenia zaawansowane” to idealny przewodnik dla Ciebie. Znajdziesz tu wiele
                       ZAMÓW CENNIK      æwiczeñ dotycz¹cych ró¿nych obszarów zaawansowanego wykorzystania Delphi;
                                         od programowania baz danych po programowanie internetowe.
                                         Dziêki ksi¹¿ce poznasz:
                 CZYTELNIA                  • Zmiany i nowo ci wprowadzone w Delphi 7
          FRAGMENTY KSI¥¯EK ONLINE          • Programowanie sieciowe w Delphi 7: korzystanie z gniazd i protoko³ów
                                             SMTP i HTTP
                                            • Tworzenie kontrolek ActiveX
                                            • Szybkie pisanie aplikacji internetowych z u¿yciem komponentów IntraWeb
                                            • Sposoby korzystania z baz danych za pomoc¹ dbExpress
                                            • Metody pozyskiwania z poziomu Delphi informacji o sprzêcie i oprogramowaniu,
                                              sterowanie procesami




Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
                   Wstęp............................................................................................................................................................7
Rozdział 1.        Nowości w Delphi 7................................................................................................................................9
                   Nowości w zakresie IDE................................................................................................... 9
                      Nowe elementy menu ............................................................................................... 10
                      Code Insight............................................................................................................. 12
                      Opcje kodu źródłowego............................................................................................. 13
                      Pozostałe zmiany IDE............................................................................................... 14
                   Nowe komponenty VCL ................................................................................................. 15
                      Elementy wizualne w stylu Windows XP.................................................................... 15
                      Manifest XP............................................................................................................. 19
                      Pakiet Indy .............................................................................................................. 20
                      Pozostałe komponenty .............................................................................................. 20
                      Komponenty zmodyfikowane .................................................................................... 20
                   Zmiany w bibliotece uruchomieniowej ............................................................................. 20
                      Moduł Classes.......................................................................................................... 20
                      Moduł StrUtils ......................................................................................................... 22
                      Moduł VarCmplx...................................................................................................... 22
                      Moduł SysUtils ........................................................................................................ 22
                   .NET............................................................................................................................. 22
                      Modyfikacje dotyczące kompilatora ........................................................................... 22
                   Bazy danych.................................................................................................................. 24
                   Podsumowanie............................................................................................................... 24

Rozdział 2. Programowanie sieciowe...............................................................................................................25
                   Komponenty dostępne w Delphi ...................................................................................... 25
                   Jak to działa? ................................................................................................................. 26
                       IP............................................................................................................................ 26
                       TCP ........................................................................................................................ 26
                       Porty ....................................................................................................................... 27
                       Protokół HTTP ........................................................................................................ 27
                       Protokół FTP ........................................................................................................... 27
                       Protokół SMTP ........................................................................................................ 27
                   Korzystanie z gniazdek ................................................................................................... 28
                       Ustanawianie połączenia ........................................................................................... 28
                       Przesyłanie danych pomiędzy komputerami ................................................................ 32
                       Jak działają konie trojańskie?..................................................................................... 33
4                                                                                                                       Delphi 7. Ćwiczenia zaawansowane


                       Wykorzystanie protokołu SMTP ..................................................................................... 35
                          Wysyłanie e-maili..................................................................................................... 35
                       Wykorzystanie protokołu HTTP...................................................................................... 44
                          Łączenie się z serwerem HTTP.................................................................................. 44
                          Wymiana danych...................................................................................................... 45
                       Praktyczne przykłady wykorzystania protokołu HTTP ...................................................... 49
                          Wykrywanie nowej wersji programu .......................................................................... 49
                          Wykorzystanie wyszukiwarki serwisu 4programmers.net ............................................. 52
                       Podsumowanie............................................................................................................... 63

Rozdział 3. ActiveX......................................................................................................................................................65
                       Co to jest COM?............................................................................................................ 65
                       Tworzenie obiektów COM.............................................................................................. 65
                       Wpisywanie kodu — ROT13 .......................................................................................... 72
                       Budowa i rejestracja kontrolki ......................................................................................... 73
                       Wykorzystanie obiektu COM .......................................................................................... 74
                       Czym jest ActiveX?........................................................................................................ 74
                       Importowanie kontrolek ActiveX..................................................................................... 75
                          Wykorzystanie komponentu TShockwaveFlash........................................................... 76
                       Tworzenie kontrolek ActiveX.......................................................................................... 77
                       Przykładowa kontrolka ActiveX ...................................................................................... 78
                          Tworzenie interfejsu COM ........................................................................................ 78
                          Tworzenie kontrolki ActiveX..................................................................................... 79
                          Budowa, rejestracja i instalacja kontrolki .................................................................... 89
                          Wykorzystanie kontrolki TVText ............................................................................... 90
                       Publikowanie ActiveX w Internecie ................................................................................. 91
                          Względy bezpieczeństwa........................................................................................... 94
                       Podsumowanie............................................................................................................... 94

Rozdział 4.            IntraWeb.................................................................................................................................................95
                       Tworzenie projektu ........................................................................................................ 95
                       Uruchamianie projektu ................................................................................................... 96
                       Dodajemy kontrolki........................................................................................................ 97
                           Obsługa zdarzeń ....................................................................................................... 97
                           Przechwytywanie informacji...................................................................................... 98
                           Komunikaty informacyjne ......................................................................................... 99
                       Flash ........................................................................................................................... 100
                       Wykorzystanie JavaScriptu ........................................................................................... 101
                       Tworzenie kilku formularzy .......................................................................................... 102
                       Wysyłanie plików......................................................................................................... 104
                       Podsumowanie............................................................................................................. 104

Rozdział 5. Bazy danych dbExpress .................................................................................................................105
                       Czym są aplikacje typu klient-serwer?............................................................................ 105
                          Narzędzia............................................................................................................... 105
                          Komponenty .......................................................................................................... 106
                       dbExpress.................................................................................................................... 106
                          Łączenie z serwerem............................................................................................... 106
                          Tworzenie tabel...................................................................................................... 109
                          Dodawanie nowych rekordów.................................................................................. 110
                          Odczytywanie rekordów.......................................................................................... 111
                          Kasowanie rekordów .............................................................................................. 113
Spis treści                                                                                                                                            5


                    Przykład działania — księga gości ................................................................................. 116
                        Projektowanie tabel ................................................................................................ 117
                        Projektowanie interfejsu.......................................................................................... 117
                        Kod aplikacji.......................................................................................................... 119
                    Informacje o bazie danych ............................................................................................ 125
                    Inne komponenty dbExpress ......................................................................................... 126
                    Podsumowanie............................................................................................................. 128

Rozdział 6. Informacje o sprzęcie.....................................................................................................................129
                    Informacje o katalogach................................................................................................ 129
                    Informacje o u ytkowniku ............................................................................................ 131
                    Informacja o systemie operacyjnym............................................................................... 131
                    Informacja o klawiaturze............................................................................................... 133
                    Informacje o systemie................................................................................................... 134
                        Krótki przegląd pól rekordu..................................................................................... 134
                        Przykładowy program ............................................................................................. 135
                        Częstotliwość taktowania procesora ......................................................................... 136
                    Informacje o stanie pamięci........................................................................................... 137
                    Lista aktywnych procesów ............................................................................................ 139
                        Ikony procesów...................................................................................................... 141
                    Wątki procesu.............................................................................................................. 143
                        Formularz realizujący wyświetlenie wątków procesu ................................................. 143
                    „Zabijanie” aktywnych procesów .................................................................................. 147
                    Informacje o dyskach ................................................................................................... 149
                        Lista wszystkich dysków ......................................................................................... 149
                        Etykiety dysków..................................................................................................... 151
                        Dodatkowe informacje na temat dysków .................................................................. 152
                        Pobieranie rozmiaru dysków.................................................................................... 153
                    Rozdzielczość ekranu ................................................................................................... 155
                        Odczyt aktualnej rozdzielczości ............................................................................... 155
                        Zmiana rozdzielczości............................................................................................. 156
                    Podsumowanie............................................................................................................. 158
3.
                                                                                Rozdział

                                                                           ActiveX
           Ten rozdział będzie poświęcony w całości kontrolkom ActiveX. Do czego słu ą oraz co
           to jest ActiveX? W jaki sposób umieszczać kontrolki ActiveX w Internecie oraz jak je
           tworzyć na bazie komponentów VCL. Tego wszystkiego dowiesz się czytając ten rozdział.

           Wcześniej jednak musisz zapoznać się z pojęciem COM...




Co to jest COM?
                 COM — od ang. Component Object Model. Specyfikacja firmy Microsoft, która w zało eniu
                 dotyczy tworzenia obiektów wielokrotnego u ytku, niezale nie od języka programowania.

             eby zrozumieć ActiveX, musisz zrozumieć COM — postaram się to zwięźle wytłumaczyć.
           Otó firma Microsoft wymyśliła model obiektów, które mogą być wykorzystywane w ka -
           dym środowisku programistycznym Win32. Wynikiem powstania obiektu COM jest kon-
           trolka z rozszerzeniem .dll. Kontrolka taka mo e być wykorzystana zarówno w Delphi,
           jak i Visual C++, C++ Builderze, czy Visual Basicu.




Tworzenie obiektów COM
           COM jest podstawą dla ActiveX i dla OLE. eby zrozumieć istotę działania ActiveX,
           musisz zrozumieć istotę działania COM — stąd następujące ćwiczenie.

Ćwiczenie 3.1.

           Tworzenie nowego projektu.
66                                                                  Delphi 7. Ćwiczenia zaawansowane


             1. Z menu Delphi wybierz New/New/Other. Pojawi się Repozytorium. Zaznacz zakładkę
                 ActiveX (rysunek 3.1).

Rysunek 3.1.
Zakładka ActiveX
Repozytorium




             2. Zaznacz w tym oknie ikonę ActiveX Library i naciśnij OK. W tym momencie zostanie
                 utworzony pusty projekt.
             3. Z polecenia File wybierz pozycję Save. Wska miejsce, gdzie Delphi ma zapisać plik.

           Utworzyliśmy właśnie pusty projekt, ale na razie do niczego nam to nie słu y. Utworzenie
           właściwego obiektu COM te jest proste — polega na wybraniu ikony Com Object.


Ćwiczenie 3.2.

           Tworzenie obiektu COM.
             1. Mając otwarty projekt z ćwiczenia 3.1 ponownie wybierz pozycję File/New/Other.
             2. Z zakładki ActiveX tym razem wybierz pozycję Com Object. Delphi wyświetli okno
                 kreatora obiektów COM, widoczne na rysunku 3.2.

Rysunek 3.2.
Kreator obiektów COM




             3. W polu %NCUU 0COG wpisz 4QV.
Rozdział 3.    ActiveX                                                                              67


               4. Pole GUETKRVKQP słu y do wstawienia krótkiego opisu obiektu. Mo esz wpisać np.
                  #NIQT[VO 4QV.
               5. Przyciskiem OK zamknij okno. Obiekt COM został utworzony.
               6. Z menu File wybierz Save All i wpisz nazwę dla modułu.

              Na pierwszym planie znajduje się okno edytora biblioteki typu (rysunek 3.3). Za pomocą
              tego edytora sterujemy obiektem COM. Wszystkie zmiany dokonane w tym edytorze znajdą
              odzwierciedlenie w module.

Rysunek 3.3.
Okno edytora
biblioteki typu;
dodawanie
właściwości
oraz metod




              Dodawanie nowych metod oraz właściwości jest dość proste. Wszystko mo na zrobić
              za pomocą edytora biblioteki. Wystarczy kliknąć prawym przyciskiem myszy pozycję
              IRot13 i z menu New wybrać Properties lub Methods.


Ćwiczenie 3.3.

              Dodawanie nowej metody.
               1. Kliknij prawym przyciskiem myszy pozycję IRot13 i z menu New wybierz Method.

Rysunek 3.4.
Dodawanie
nowej metody
68                                                                    Delphi 7. Ćwiczenia zaawansowane


            2. Po tym kroku pojawi się w obrębie edytora nowa pozycja — nazwij ją 4QV
               (zakładka Attributes).
            3. Następnie przejdź do zakładki Parameters. Nasza funkcja 4QV z zało enia nie
               będzie posiadać adnych parametrów. Jedyne, co tu będziesz musiał ustalić,
               to wartość zwracaną przez funkcję.
            4. Z pozycji 4GVWTP 6[RG wybierz .2564.
            5. Mo esz zapisać cały projekt (Ctrl+Shift+S).

           Zmiany, których dokonaliśmy w edytorze zostały oddane w module 4QV(TO.

Wydruk 3.1. Kod źródłowy modułu Rot13Frm.pas
             WPKV 4QV(TO
             ] 9#40 5;/$1.A2.#6(14/ 1((_

             KPVGTHCEG
             WUGU
               9KPFQYU #EVKXG: %NCUUGU %QO1DL RA6.$ 5VF8EN
             V[RG
               64QV  ENCUU
66[RGF%QO1DLGEV +4QV
               RTQVGEVGF
                  HWPEVKQP 4QV 2%JCT UVFECNN
                  ]GENCTG +4QV OGVJQFU JGTG_
               GPF
             KORNGOGPVCVKQP
             WUGU %QO5GTX
             HWPEVKQP 64QV4QV 2%JCT
             DGIKP
             GPF
             KPKVKCNKCVKQP
               66[RGF%QO1DLGEV(CEVQT[%TGCVG
%QO5GTXGT 64QV %NCUUA4QV
                  EK/WNVK+PUVCPEG VO#RCTVOGPV
             GPF


           W module tym mo esz wpisać kod funkcji 4QV. Podczas gdy Ty pracujesz z modułem
           4QV(TO, Delphi pracuje nad tworzeniem modułu przechowującego kod biblioteki. W edyto-
           rze kodu cały czas masz otwartą zakładkę p32_TLB.pas (do nazwy projektu jest dodawana
           końcówka A6.$).

Wydruk 3.2. Kod źródłowy biblioteki
             WPKV RA6.$
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane
Delphi 7. Ćwiczenia zaawansowane

More Related Content

What's hot

mod_perl. Podręcznik programisty
mod_perl. Podręcznik programistymod_perl. Podręcznik programisty
mod_perl. Podręcznik programistyWydawnictwo Helion
 
J2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIJ2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIWydawnictwo Helion
 
Aplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie IIAplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie IIWydawnictwo Helion
 
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...Wydawnictwo Helion
 
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...Wydawnictwo Helion
 
PHP4. Zaawansowane programowanie
PHP4. Zaawansowane programowaniePHP4. Zaawansowane programowanie
PHP4. Zaawansowane programowanieWydawnictwo Helion
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowaneWydawnictwo Helion
 
C++Builder i Turbo C++. Podstawy
C++Builder i Turbo C++. PodstawyC++Builder i Turbo C++. Podstawy
C++Builder i Turbo C++. PodstawyWydawnictwo Helion
 
Core Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IICore Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
 
Programuje W Delphi I C Builder
Programuje W Delphi I C BuilderProgramuje W Delphi I C Builder
Programuje W Delphi I C BuilderGregory Grex
 
Programuje W Delphi I C Builder
Programuje W Delphi I C BuilderProgramuje W Delphi I C Builder
Programuje W Delphi I C Builderfreeebook
 
PHP. 101 praktycznych skryptów. Wydanie II
PHP. 101 praktycznych skryptów. Wydanie IIPHP. 101 praktycznych skryptów. Wydanie II
PHP. 101 praktycznych skryptów. Wydanie IIWydawnictwo Helion
 
PHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowaniaPHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowaniaWydawnictwo Helion
 

What's hot (20)

ABC Delphi 7
ABC Delphi 7ABC Delphi 7
ABC Delphi 7
 
mod_perl. Podręcznik programisty
mod_perl. Podręcznik programistymod_perl. Podręcznik programisty
mod_perl. Podręcznik programisty
 
Delphi 2005
Delphi 2005Delphi 2005
Delphi 2005
 
J2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIJ2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie II
 
Aplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie IIAplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie II
 
Flash i PHP5. Podstawy
Flash i PHP5. PodstawyFlash i PHP5. Podstawy
Flash i PHP5. Podstawy
 
C# i ASP.NET. Szybki start
C# i ASP.NET. Szybki startC# i ASP.NET. Szybki start
C# i ASP.NET. Szybki start
 
ABC Delphi 2006
ABC Delphi 2006ABC Delphi 2006
ABC Delphi 2006
 
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
 
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
 
PHP4. Zaawansowane programowanie
PHP4. Zaawansowane programowaniePHP4. Zaawansowane programowanie
PHP4. Zaawansowane programowanie
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowane
 
C++Builder i Turbo C++. Podstawy
C++Builder i Turbo C++. PodstawyC++Builder i Turbo C++. Podstawy
C++Builder i Turbo C++. Podstawy
 
Java. Wprowadzenie
Java. WprowadzenieJava. Wprowadzenie
Java. Wprowadzenie
 
Core Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IICore Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie II
 
PHP5. Tajniki programowania
PHP5. Tajniki programowaniaPHP5. Tajniki programowania
PHP5. Tajniki programowania
 
Programuje W Delphi I C Builder
Programuje W Delphi I C BuilderProgramuje W Delphi I C Builder
Programuje W Delphi I C Builder
 
Programuje W Delphi I C Builder
Programuje W Delphi I C BuilderProgramuje W Delphi I C Builder
Programuje W Delphi I C Builder
 
PHP. 101 praktycznych skryptów. Wydanie II
PHP. 101 praktycznych skryptów. Wydanie IIPHP. 101 praktycznych skryptów. Wydanie II
PHP. 101 praktycznych skryptów. Wydanie II
 
PHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowaniaPHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowania
 

Viewers also liked

Oracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawOracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawWydawnictwo Helion
 
Bezpieczeństwo w sieciach Windows
Bezpieczeństwo w sieciach WindowsBezpieczeństwo w sieciach Windows
Bezpieczeństwo w sieciach WindowsWydawnictwo Helion
 
DirectX. Rendering w czasie rzeczywistym
DirectX. Rendering w czasie rzeczywistymDirectX. Rendering w czasie rzeczywistym
DirectX. Rendering w czasie rzeczywistymWydawnictwo Helion
 
Sound Blaster Live! Przewodnik po karcie dźwiękowej
Sound Blaster Live! Przewodnik po karcie dźwiękowejSound Blaster Live! Przewodnik po karcie dźwiękowej
Sound Blaster Live! Przewodnik po karcie dźwiękowejWydawnictwo Helion
 
C++ Builder. Symulacje komputerowe
C++ Builder. Symulacje komputeroweC++ Builder. Symulacje komputerowe
C++ Builder. Symulacje komputeroweWydawnictwo Helion
 

Viewers also liked (8)

Oracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawOracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstaw
 
Bezpieczeństwo w sieciach Windows
Bezpieczeństwo w sieciach WindowsBezpieczeństwo w sieciach Windows
Bezpieczeństwo w sieciach Windows
 
AutoCAD 2004 PL
AutoCAD 2004 PLAutoCAD 2004 PL
AutoCAD 2004 PL
 
DirectX. Rendering w czasie rzeczywistym
DirectX. Rendering w czasie rzeczywistymDirectX. Rendering w czasie rzeczywistym
DirectX. Rendering w czasie rzeczywistym
 
Sound Blaster Live! Przewodnik po karcie dźwiękowej
Sound Blaster Live! Przewodnik po karcie dźwiękowejSound Blaster Live! Przewodnik po karcie dźwiękowej
Sound Blaster Live! Przewodnik po karcie dźwiękowej
 
AutoCAD 2004. Pierwsze kroki
AutoCAD 2004. Pierwsze krokiAutoCAD 2004. Pierwsze kroki
AutoCAD 2004. Pierwsze kroki
 
C++ Builder. Symulacje komputerowe
C++ Builder. Symulacje komputeroweC++ Builder. Symulacje komputerowe
C++ Builder. Symulacje komputerowe
 
AutoCAD 2004
AutoCAD 2004AutoCAD 2004
AutoCAD 2004
 

Similar to Delphi 7. Ćwiczenia zaawansowane

PHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalistyPHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalistyWydawnictwo Helion
 
.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanieWydawnictwo Helion
 
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsVisual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanieWydawnictwo Helion
 
Visual C# 2005. Zapiski programisty
Visual C# 2005. Zapiski programistyVisual C# 2005. Zapiski programisty
Visual C# 2005. Zapiski programistyWydawnictwo Helion
 
Po prostu własny serwer internetowy
Po prostu własny serwer internetowyPo prostu własny serwer internetowy
Po prostu własny serwer internetowyWydawnictwo Helion
 
Visual C# 2005 Express Edition. Od podstaw
Visual C# 2005 Express Edition. Od podstawVisual C# 2005 Express Edition. Od podstaw
Visual C# 2005 Express Edition. Od podstawWydawnictwo Helion
 
Wstęp do programowania w języku C#
Wstęp do programowania w języku C#Wstęp do programowania w języku C#
Wstęp do programowania w języku C#Wydawnictwo Helion
 
.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemniceWydawnictwo Helion
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPWydawnictwo Helion
 
Kylix. Vademecum profesjonalisty
Kylix. Vademecum profesjonalistyKylix. Vademecum profesjonalisty
Kylix. Vademecum profesjonalistyWydawnictwo Helion
 

Similar to Delphi 7. Ćwiczenia zaawansowane (17)

Delphi 7 i bazy danych
Delphi 7 i bazy danychDelphi 7 i bazy danych
Delphi 7 i bazy danych
 
Fedora Core. Ćwiczenia
Fedora Core. ĆwiczeniaFedora Core. Ćwiczenia
Fedora Core. Ćwiczenia
 
PHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalistyPHP. Programowanie w systemie Windows. Vademecum profesjonalisty
PHP. Programowanie w systemie Windows. Vademecum profesjonalisty
 
.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie
 
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsVisual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanie
 
Visual C# 2005. Zapiski programisty
Visual C# 2005. Zapiski programistyVisual C# 2005. Zapiski programisty
Visual C# 2005. Zapiski programisty
 
Po prostu własny serwer internetowy
Po prostu własny serwer internetowyPo prostu własny serwer internetowy
Po prostu własny serwer internetowy
 
Visual C# 2005 Express Edition. Od podstaw
Visual C# 2005 Express Edition. Od podstawVisual C# 2005 Express Edition. Od podstaw
Visual C# 2005 Express Edition. Od podstaw
 
Wstęp do programowania w języku C#
Wstęp do programowania w języku C#Wstęp do programowania w języku C#
Wstęp do programowania w języku C#
 
ABC Delphi 6
ABC Delphi 6ABC Delphi 6
ABC Delphi 6
 
Po prostu Red Hat Linux 8
Po prostu Red Hat Linux 8Po prostu Red Hat Linux 8
Po prostu Red Hat Linux 8
 
Po prostu Red Hat Linux 9
Po prostu Red Hat Linux 9Po prostu Red Hat Linux 9
Po prostu Red Hat Linux 9
 
.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHP
 
Kylix. Vademecum profesjonalisty
Kylix. Vademecum profesjonalistyKylix. Vademecum profesjonalisty
Kylix. Vademecum profesjonalisty
 
Debian Linux. Ćwiczenia
Debian Linux. ĆwiczeniaDebian Linux. Ćwiczenia
Debian Linux. Ćwiczenia
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

Delphi 7. Ćwiczenia zaawansowane

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Delphi 7. Æwiczenia zaawansowane KATALOG KSI¥¯EK Autor: Adam Boduch KATALOG ONLINE ISBN: 83-7361-076-6 Format: B5, stron: 158 ZAMÓW DRUKOWANY KATALOG Przyk³ady na ftp: 951 kB TWÓJ KOSZYK DODAJ DO KOSZYKA W 2002 roku firma Borland zaprezentowa³a na polskim rynku now¹ wersjê narzêdzia typu RAD, s³u¿¹cego do szybkiego tworzenia aplikacji — Delphi. Jest to ju¿ 7. wersja tego popularnego pakietu. Wprowadzono sporo nowo ci: poprawiono rodowisko CENNIK I INFORMACJE programistyczne IDE, dodano nowe komponenty VCL i wprowadzono kilka zmian w bibliotece uruchomieniowej. Delphi 7 zosta³o tak¿e przystosowane do platformy .NET ZAMÓW INFORMACJE Microsoftu. O NOWO CIACH Je li chcesz szybko zapoznaæ siê z mo¿liwo ciami nowego Delphi, ksi¹¿ka „Delphi 7. Æwiczenia zaawansowane” to idealny przewodnik dla Ciebie. Znajdziesz tu wiele ZAMÓW CENNIK æwiczeñ dotycz¹cych ró¿nych obszarów zaawansowanego wykorzystania Delphi; od programowania baz danych po programowanie internetowe. Dziêki ksi¹¿ce poznasz: CZYTELNIA • Zmiany i nowo ci wprowadzone w Delphi 7 FRAGMENTY KSI¥¯EK ONLINE • Programowanie sieciowe w Delphi 7: korzystanie z gniazd i protoko³ów SMTP i HTTP • Tworzenie kontrolek ActiveX • Szybkie pisanie aplikacji internetowych z u¿yciem komponentów IntraWeb • Sposoby korzystania z baz danych za pomoc¹ dbExpress • Metody pozyskiwania z poziomu Delphi informacji o sprzêcie i oprogramowaniu, sterowanie procesami Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl
  • 2. Spis treści Wstęp............................................................................................................................................................7 Rozdział 1. Nowości w Delphi 7................................................................................................................................9 Nowości w zakresie IDE................................................................................................... 9 Nowe elementy menu ............................................................................................... 10 Code Insight............................................................................................................. 12 Opcje kodu źródłowego............................................................................................. 13 Pozostałe zmiany IDE............................................................................................... 14 Nowe komponenty VCL ................................................................................................. 15 Elementy wizualne w stylu Windows XP.................................................................... 15 Manifest XP............................................................................................................. 19 Pakiet Indy .............................................................................................................. 20 Pozostałe komponenty .............................................................................................. 20 Komponenty zmodyfikowane .................................................................................... 20 Zmiany w bibliotece uruchomieniowej ............................................................................. 20 Moduł Classes.......................................................................................................... 20 Moduł StrUtils ......................................................................................................... 22 Moduł VarCmplx...................................................................................................... 22 Moduł SysUtils ........................................................................................................ 22 .NET............................................................................................................................. 22 Modyfikacje dotyczące kompilatora ........................................................................... 22 Bazy danych.................................................................................................................. 24 Podsumowanie............................................................................................................... 24 Rozdział 2. Programowanie sieciowe...............................................................................................................25 Komponenty dostępne w Delphi ...................................................................................... 25 Jak to działa? ................................................................................................................. 26 IP............................................................................................................................ 26 TCP ........................................................................................................................ 26 Porty ....................................................................................................................... 27 Protokół HTTP ........................................................................................................ 27 Protokół FTP ........................................................................................................... 27 Protokół SMTP ........................................................................................................ 27 Korzystanie z gniazdek ................................................................................................... 28 Ustanawianie połączenia ........................................................................................... 28 Przesyłanie danych pomiędzy komputerami ................................................................ 32 Jak działają konie trojańskie?..................................................................................... 33
  • 3. 4 Delphi 7. Ćwiczenia zaawansowane Wykorzystanie protokołu SMTP ..................................................................................... 35 Wysyłanie e-maili..................................................................................................... 35 Wykorzystanie protokołu HTTP...................................................................................... 44 Łączenie się z serwerem HTTP.................................................................................. 44 Wymiana danych...................................................................................................... 45 Praktyczne przykłady wykorzystania protokołu HTTP ...................................................... 49 Wykrywanie nowej wersji programu .......................................................................... 49 Wykorzystanie wyszukiwarki serwisu 4programmers.net ............................................. 52 Podsumowanie............................................................................................................... 63 Rozdział 3. ActiveX......................................................................................................................................................65 Co to jest COM?............................................................................................................ 65 Tworzenie obiektów COM.............................................................................................. 65 Wpisywanie kodu — ROT13 .......................................................................................... 72 Budowa i rejestracja kontrolki ......................................................................................... 73 Wykorzystanie obiektu COM .......................................................................................... 74 Czym jest ActiveX?........................................................................................................ 74 Importowanie kontrolek ActiveX..................................................................................... 75 Wykorzystanie komponentu TShockwaveFlash........................................................... 76 Tworzenie kontrolek ActiveX.......................................................................................... 77 Przykładowa kontrolka ActiveX ...................................................................................... 78 Tworzenie interfejsu COM ........................................................................................ 78 Tworzenie kontrolki ActiveX..................................................................................... 79 Budowa, rejestracja i instalacja kontrolki .................................................................... 89 Wykorzystanie kontrolki TVText ............................................................................... 90 Publikowanie ActiveX w Internecie ................................................................................. 91 Względy bezpieczeństwa........................................................................................... 94 Podsumowanie............................................................................................................... 94 Rozdział 4. IntraWeb.................................................................................................................................................95 Tworzenie projektu ........................................................................................................ 95 Uruchamianie projektu ................................................................................................... 96 Dodajemy kontrolki........................................................................................................ 97 Obsługa zdarzeń ....................................................................................................... 97 Przechwytywanie informacji...................................................................................... 98 Komunikaty informacyjne ......................................................................................... 99 Flash ........................................................................................................................... 100 Wykorzystanie JavaScriptu ........................................................................................... 101 Tworzenie kilku formularzy .......................................................................................... 102 Wysyłanie plików......................................................................................................... 104 Podsumowanie............................................................................................................. 104 Rozdział 5. Bazy danych dbExpress .................................................................................................................105 Czym są aplikacje typu klient-serwer?............................................................................ 105 Narzędzia............................................................................................................... 105 Komponenty .......................................................................................................... 106 dbExpress.................................................................................................................... 106 Łączenie z serwerem............................................................................................... 106 Tworzenie tabel...................................................................................................... 109 Dodawanie nowych rekordów.................................................................................. 110 Odczytywanie rekordów.......................................................................................... 111 Kasowanie rekordów .............................................................................................. 113
  • 4. Spis treści 5 Przykład działania — księga gości ................................................................................. 116 Projektowanie tabel ................................................................................................ 117 Projektowanie interfejsu.......................................................................................... 117 Kod aplikacji.......................................................................................................... 119 Informacje o bazie danych ............................................................................................ 125 Inne komponenty dbExpress ......................................................................................... 126 Podsumowanie............................................................................................................. 128 Rozdział 6. Informacje o sprzęcie.....................................................................................................................129 Informacje o katalogach................................................................................................ 129 Informacje o u ytkowniku ............................................................................................ 131 Informacja o systemie operacyjnym............................................................................... 131 Informacja o klawiaturze............................................................................................... 133 Informacje o systemie................................................................................................... 134 Krótki przegląd pól rekordu..................................................................................... 134 Przykładowy program ............................................................................................. 135 Częstotliwość taktowania procesora ......................................................................... 136 Informacje o stanie pamięci........................................................................................... 137 Lista aktywnych procesów ............................................................................................ 139 Ikony procesów...................................................................................................... 141 Wątki procesu.............................................................................................................. 143 Formularz realizujący wyświetlenie wątków procesu ................................................. 143 „Zabijanie” aktywnych procesów .................................................................................. 147 Informacje o dyskach ................................................................................................... 149 Lista wszystkich dysków ......................................................................................... 149 Etykiety dysków..................................................................................................... 151 Dodatkowe informacje na temat dysków .................................................................. 152 Pobieranie rozmiaru dysków.................................................................................... 153 Rozdzielczość ekranu ................................................................................................... 155 Odczyt aktualnej rozdzielczości ............................................................................... 155 Zmiana rozdzielczości............................................................................................. 156 Podsumowanie............................................................................................................. 158
  • 5. 3. Rozdział ActiveX Ten rozdział będzie poświęcony w całości kontrolkom ActiveX. Do czego słu ą oraz co to jest ActiveX? W jaki sposób umieszczać kontrolki ActiveX w Internecie oraz jak je tworzyć na bazie komponentów VCL. Tego wszystkiego dowiesz się czytając ten rozdział. Wcześniej jednak musisz zapoznać się z pojęciem COM... Co to jest COM? COM — od ang. Component Object Model. Specyfikacja firmy Microsoft, która w zało eniu dotyczy tworzenia obiektów wielokrotnego u ytku, niezale nie od języka programowania. eby zrozumieć ActiveX, musisz zrozumieć COM — postaram się to zwięźle wytłumaczyć. Otó firma Microsoft wymyśliła model obiektów, które mogą być wykorzystywane w ka - dym środowisku programistycznym Win32. Wynikiem powstania obiektu COM jest kon- trolka z rozszerzeniem .dll. Kontrolka taka mo e być wykorzystana zarówno w Delphi, jak i Visual C++, C++ Builderze, czy Visual Basicu. Tworzenie obiektów COM COM jest podstawą dla ActiveX i dla OLE. eby zrozumieć istotę działania ActiveX, musisz zrozumieć istotę działania COM — stąd następujące ćwiczenie. Ćwiczenie 3.1. Tworzenie nowego projektu.
  • 6. 66 Delphi 7. Ćwiczenia zaawansowane 1. Z menu Delphi wybierz New/New/Other. Pojawi się Repozytorium. Zaznacz zakładkę ActiveX (rysunek 3.1). Rysunek 3.1. Zakładka ActiveX Repozytorium 2. Zaznacz w tym oknie ikonę ActiveX Library i naciśnij OK. W tym momencie zostanie utworzony pusty projekt. 3. Z polecenia File wybierz pozycję Save. Wska miejsce, gdzie Delphi ma zapisać plik. Utworzyliśmy właśnie pusty projekt, ale na razie do niczego nam to nie słu y. Utworzenie właściwego obiektu COM te jest proste — polega na wybraniu ikony Com Object. Ćwiczenie 3.2. Tworzenie obiektu COM. 1. Mając otwarty projekt z ćwiczenia 3.1 ponownie wybierz pozycję File/New/Other. 2. Z zakładki ActiveX tym razem wybierz pozycję Com Object. Delphi wyświetli okno kreatora obiektów COM, widoczne na rysunku 3.2. Rysunek 3.2. Kreator obiektów COM 3. W polu %NCUU 0COG wpisz 4QV.
  • 7. Rozdział 3. ActiveX 67 4. Pole GUETKRVKQP słu y do wstawienia krótkiego opisu obiektu. Mo esz wpisać np. #NIQT[VO 4QV. 5. Przyciskiem OK zamknij okno. Obiekt COM został utworzony. 6. Z menu File wybierz Save All i wpisz nazwę dla modułu. Na pierwszym planie znajduje się okno edytora biblioteki typu (rysunek 3.3). Za pomocą tego edytora sterujemy obiektem COM. Wszystkie zmiany dokonane w tym edytorze znajdą odzwierciedlenie w module. Rysunek 3.3. Okno edytora biblioteki typu; dodawanie właściwości oraz metod Dodawanie nowych metod oraz właściwości jest dość proste. Wszystko mo na zrobić za pomocą edytora biblioteki. Wystarczy kliknąć prawym przyciskiem myszy pozycję IRot13 i z menu New wybrać Properties lub Methods. Ćwiczenie 3.3. Dodawanie nowej metody. 1. Kliknij prawym przyciskiem myszy pozycję IRot13 i z menu New wybierz Method. Rysunek 3.4. Dodawanie nowej metody
  • 8. 68 Delphi 7. Ćwiczenia zaawansowane 2. Po tym kroku pojawi się w obrębie edytora nowa pozycja — nazwij ją 4QV (zakładka Attributes). 3. Następnie przejdź do zakładki Parameters. Nasza funkcja 4QV z zało enia nie będzie posiadać adnych parametrów. Jedyne, co tu będziesz musiał ustalić, to wartość zwracaną przez funkcję. 4. Z pozycji 4GVWTP 6[RG wybierz .2564. 5. Mo esz zapisać cały projekt (Ctrl+Shift+S). Zmiany, których dokonaliśmy w edytorze zostały oddane w module 4QV(TO. Wydruk 3.1. Kod źródłowy modułu Rot13Frm.pas WPKV 4QV(TO ] 9#40 5;/$1.A2.#6(14/ 1((_ KPVGTHCEG WUGU 9KPFQYU #EVKXG: %NCUUGU %QO1DL RA6.$ 5VF8EN V[RG 64QV ENCUU 66[RGF%QO1DLGEV +4QV RTQVGEVGF HWPEVKQP 4QV 2%JCT UVFECNN ]GENCTG +4QV OGVJQFU JGTG_ GPF KORNGOGPVCVKQP WUGU %QO5GTX HWPEVKQP 64QV4QV 2%JCT DGIKP GPF KPKVKCNKCVKQP 66[RGF%QO1DLGEV(CEVQT[%TGCVG %QO5GTXGT 64QV %NCUUA4QV EK/WNVK+PUVCPEG VO#RCTVOGPV GPF W module tym mo esz wpisać kod funkcji 4QV. Podczas gdy Ty pracujesz z modułem 4QV(TO, Delphi pracuje nad tworzeniem modułu przechowującego kod biblioteki. W edyto- rze kodu cały czas masz otwartą zakładkę p32_TLB.pas (do nazwy projektu jest dodawana końcówka A6.$). Wydruk 3.2. Kod źródłowy biblioteki WPKV RA6.$
  • 80. 9#40+0) 6JG V[RGU FGENCTGF KP VJKU HKNG YGTG IGPGTCVGF HTQO FCVC TGCF HTQO C 6[RG .KDTCT[ +H VJKU V[RG NKDTCT[ KU GZRNKEKVN[ QT KPFKTGEVN[ XKC CPQVJGT V[RG NKDTCT[ TGHGTTKPI VQ VJKU V[RG NKDTCT[ TGKORQTVGF QT VJG
  • 81. Rozdział 3. ActiveX 69 4GHTGUJ EQOOCPF QH VJG 6[RG .KDTCT[ 'FKVQT CEVKXCVGF YJKNG GFKVKPI VJG 6[RG .KDTCT[ VJG EQPVGPVU QH VJKU HKNG YKNN DG TGIGPGTCVGF CPF CNN OCPWCN OQFKHKECVKQPU YKNN DG NQUV
  • 153. 2#56.964 (KNG IGPGTCVGF QP HTQO 6[RG .KDTCT[ FGUETKDGF DGNQY
  • 225. 6[RG .KD %/QLG FQMWOGPV[2NKMK VGZVQYGFGNRJKAEYKEGPKCACCYCPUQYCPG åNKUVKPIKRVND .+$+ ]%%%'%%$%$#_ .%+ *GNRHKNG *GNR5VTKPI R .KDTCT[ GRPF.UV X UVFQNG %9+01955;56'/UVFQNGVND
  • 297. ] 6;2'#4'55 1((_ 7PKV OWUV DG EQORKNGF YKVJQWV V[RGEJGEMGF RQKPVGTU ] 9#40 5;/$1.A2.#6(14/ 1((_ ] 94+6'#$.'%1056 10_ ] 8#424125'66'4 10_ KPVGTHCEG WUGU 9KPFQYU #EVKXG: %NCUUGU )TCRJKEU 5VF8%. 8CTKCPVU
  • 366. )7+5 FGENCTGF KP VJG 6[RG.KDTCT[ (QNNQYKPI RTGHKZGU CTG WUGF 6[RG .KDTCTKGU .+$+AZZZZ %Q%NCUUGU %.#55AZZZZ +52+PVGTHCEGU ++AZZZZ 0QP+52 KPVGTHCEGU ++AZZZZ
  • 435. EQPUV 6[RG.KDTCT[ /CLQT CPF OKPQT XGTUKQPU R/CLQT8GTUKQP R/KPQT8GTUKQP .+$+AR 6)7+ ]%%%'%%$%$#_ ++A+4QV 6)7+ ]#%((#('%'(_ %.#55A4QV 6)7+ ]'$$#%'%'#'_ V[RG
  • 504. (QTYCTF FGENCTCVKQP QH V[RGU FGHKPGF KP 6[RG.KDTCT[
  • 642. GENCTCVKQP QH %Q%NCUUGU FGHKPGF KP 6[RG .KDTCT[ 016' *GTG YG OCR GCEJ %Q%NCUU VQ KVU GHCWNV +PVGTHCEG
  • 780. +PVGTHCEG +4QV (NCIU 1NG#WVQOCVKQP )7+ ]#%((#('%'(_
  • 781. 70 Delphi 7. Ćwiczenia zaawansowane
  • 850. +4QV KPVGTHCEG +7PMPQYP = ]#%((#('%'(_ ? HWPEVKQP 4QV 2%JCT UVFECNN GPF
  • 919. 6JG %NCUU %Q4QV RTQXKFGU C %TGCVG CPF %TGCVG4GOQVG OGVJQF VQ ETGCVG KPUVCPEGU QH VJG FGHCWNV KPVGTHCEG +4QV GZRQUGF D[ VJG %Q%NCUU 4QV 6JG HWPEVKQPU CTG KPVGPFGF VQ DG WUGF D[ ENKGPVU YKUJKPI VQ CWVQOCVG VJG %Q%NCUU QDLGEVU GZRQUGF D[ VJG UGTXGT QH VJKU V[RGNKDTCT[
  • 988. %Q4QV ENCUU ENCUU HWPEVKQP %TGCVG +4QV ENCUU HWPEVKQP %TGCVG4GOQVG EQPUV /CEJKPG0COG UVTKPI +4QV GPF KORNGOGPVCVKQP WUGU %QO1DL ENCUU HWPEVKQP %Q4QV%TGCVG +4QV DGIKP 4GUWNV %TGCVG%QO1DLGEV %.#55A4QV CU +4QV GPF ENCUU HWPEVKQP %Q4QV%TGCVG4GOQVG EQPUV /CEJKPG0COG UVTKPI +4QV DGIKP 4GUWNV %TGCVG4GOQVG%QO1DLGEV /CEJKPG0COG %.#55A4QV CU +4QV GPF GPF Ten kod to na pozór wiele niezrozumiałych instrukcji. Przykładowo, zwróć uwagę na fragment: +4QV KPVGTHCEG +7PMPQYP = ]#%((#('%'(_ ? HWPEVKQP 4QV 2%JCT UVFECNN GPF Jest to deklaracja interfejsu +4QV. Interfejs COM jest sposobem łączności u ytkownika z funkcjami COM. Dzięki interfejsowi COM masz dostęp do tego, co oferuje sama kontrolka COM. W edyto- rze biblioteki nale ało utworzyć metodę, która następnie została dopisana do interfejsu, w module p32_TBL.pas. Dzięki temu u ytkownik korzystający z kontrolki ma mo liwość wykorzystania funkcji 4QV. Tak jak nazwy komponentów zaczynają się od litery 6, nazwy interfejsów COM rozpo- czynają się od litery + — jest to zasada uniwersalna i nie nale y jej łamać. Podstawowym interfejsem jest interfejs +7PMPQY, tak samo jak podstawową klasą w VCL jest 61DLGEV.
  • 989. Rozdział 3. ActiveX 71 Ćwiczenie 3.4. Dodawanie właściwości. Gdy chcemy dodać właściwość, edytor biblioteki, tak jak w ćwiczeniu poprzednim, automatycznie wygeneruje dwie gałęzie. Domyślnie zakłada bowiem, e jedna z nich potrzebna jest do zapisywania danych do właściwości, a druga do ich odczytu. My jednak potrzebujemy właściwości „tylko do zapisu”. 1. W tym celu odszukaj na pasku przycisk New Property. 2. Obok tego przycisku znajduje się strzałka — w wyniku jej rozwinięcia poka ą się pozycje, wśród których znajduje się Write Only — wybierz ją. 3. Zostanie utworzona jedna gałąź. 4. Zmień jej nazwę na 8CNWG. 5. Z listy rozwijanej 6[RG wybierz pozycję .2564. 6. Ostatnim krokiem będzie wejście w zakładkę Parameters i ustawienie opcji parametru. 7. Z listy rozwijanej 4GVWTP 6[RG wybierz XQKF (oznacza, e nie będzie wartości zwracanej przez funkcję). Natomiast musisz ustawić parametr owej procedury. Spójrz na rysunek 3.5. Rysunek 3.5. Ustawienie typu parametru 8. Po kliknięciu napisu NQPI pojawi się strzałka słu ąca do rozwijania listy z mo liwymi typami danych. Wybierz .2564. To właściwie wszystko — teraz mo esz zapisać cały projekt. W module 4QV(TO znajduje się taka linia: RTQEGFWTG 5GVA8CNWG 8CNWG 2%JCT UVFECNN Je eli u ytkownik nada zmiennej 8CNWG nową wartość, zostanie ona przekazana jako pa- rametr procedury 5GVA8CNWG.
  • 990. 72 Delphi 7. Ćwiczenia zaawansowane Wpisywanie kodu — ROT13 Nasz przykładowy obiekt COM będzie korzystał z algorytmu ROT13 w celu zakodowania tekstu. Zasada działania tego algorytmu jest bardzo prosta. Otó przekształca on znak na numer ASCII i następnie dodaje do tego numeru liczbę 13, po czym ponownie przekształca liczbę w znak. Funkcja 4QV wygląda mniej więcej tak: HWPEVKQP 64QV4QV 2%JCT XCT K +PVGIGT 5KP 5QWV 5VTKPI DGIKP ] RT[RKUCPKG FCP[EJ FQ OKGPPGL 5VTKPI _ 5KP (4QV HQT + VQ .GPIVJ 5KP FQ RúVNC RQ YU[UVMKEJ PCMCEJ DGIKP ] LG GNK NKVGTC LGUV YKúMUC TÎYPC QF # C OPKGLUC TÎYPC QF / _ KH 7R%CUG 5KP=K? # CPF 7R%CUG 5KP=K? / VJGP 5QWV 5QWV %JT 1TF 5KP=K? MQFQYCPKG GNUG KH 7R%CUG 5KP=K? 0 CPF 7R%CUG 5KP=K? VJGP 5QWV 5QWV %JT 1TF 5KP=K? GNUG 5QWV 5QWV 5KP=K? GPF 4GUWNV 2%JCT 5QWV GPF Na końcu funkcja zwraca zakodowany ciąg znaków. Aby wszystko było bardziej zrozu- miałe, przedstawię Ci cały moduł 4QV(TO (wydruk 3.3). Wydruk 3.3. Moduł Rot13Frm.pas zawierający funkcję Rot13 WPKV 4QV(TO ] 9#40 5;/$1.A2.#6(14/ 1((_ KPVGTHCEG WUGU 9KPFQYU #EVKXG: %NCUUGU %QO1DL RA6.$ 5VF8EN V[RG 64QV ENCUU 66[RGF%QO1DLGEV +4QV RTKXCVG (4QV 2%JCT RTQVGEVGF HWPEVKQP 4QV 2%JCT UVFECNN RTQEGFWTG 5GVA8CNWG 8CNWG 2%JCT UVFECNN ]GENCTG +4QV OGVJQFU JGTG_ GPF
  • 991. Rozdział 3. ActiveX 73 KORNGOGPVCVKQP WUGU %QO5GTX HWPEVKQP 64QV4QV 2%JCT XCT K +PVGIGT 5KP 5QWV 5VTKPI DGIKP ] RT[RKUCPKG FCP[EJ FQ OKGPPGL 5VTKPI _ 5KP (4QV HQT + VQ .GPIVJ 5KP FQ RúVNC RQ YU[UVMKEJ PCMCEJ DGIKP ] LG GNK NKVGTC LGUV YKúMUC TÎYPC QF # C OPKGLUC TÎYPC QF / _ KH 7R%CUG 5KP=K? # CPF 7R%CUG 5KP=K? / VJGP 5QWV 5QWV %JT 1TF 5KP=K? MQFQYCPKG GNUG KH 7R%CUG 5KP=K? 0 CPF 7R%CUG 5KP=K? VJGP 5QWV 5QWV %JT 1TF 5KP=K? GNUG 5QWV 5QWV 5KP=K? GPF 4GUWNV 2%JCT 5QWV GPF RTQEGFWTG 64QV5GVA8CNWG 8CNWG 2%JCT DGIKP (4QV 8CNWG GPF KPKVKCNKCVKQP 66[RGF%QO1DLGEV(CEVQT[%TGCVG %QO5GTXGT 64QV %NCUUA4QV EK/WNVK+PUVCPEG VO#RCTVOGPV GPF Na początku za pomocą procedury 5GVA8CNWG do zmiennej (4QV (sekcja RTKXCVG) zo- stanie przypisana wartość z parametru owej procedury 5GVA8CNWG. Dzięki temu funkcja 4QV będzie mogła odczytać tę wartość i zakodować algorytmem 4QV, po czym zwrócić ciąg znaków. Budowa i rejestracja kontrolki Mamy ju cały potrzebny kod do skompilowania biblioteki. Z menu Project wybierz pozycję Build. Kontrolka zostanie skompilowana do postaci pliku DLL. Je eli nie ma adnych błędów, to mo esz zarejestrować kontrolkę poprzez wybranie z menu Run pozycji Register ActiveX Server. Je eli wszystko się powiedzie, powinieneś otrzymać komunikat o prawidłowej rejestracji. Kontrolka jest gotowa do u ycia.
  • 992. 74 Delphi 7. Ćwiczenia zaawansowane Wykorzystanie obiektu COM Ćwiczenie 3.5. Wykorzystanie obiektu COM. Nasza przykładowa aplikacja wcale nie musi być skomplikowana. Wystarczy, e będzie zawierać przycisk oraz kontrolkę edycyjną. W katalogu z naszą przykładową aplikacją musi się znaleźć plik p32_TLB.pas, gdy zawiera interfejsy i klasy COM. Aby cały projekt prawidłowo się skompilował, odszukaj sekcję WUGU i dodaj do niej nastę- pujące moduły: WUGU RA6.$ %QO1DL Pierwszy zawiera oczywiście deklarację interfejsu COM, a drugi zawiera nagłówek funkcji %TGCVG%QO1DLGEV. RTQEGFWTG 6/CKP(QTODVP%QPXGT%NKEM 5GPFGT 61DLGEV XCT 4QV +4QV DGIKP 4QV %TGCVG%QO1DLGEV %.#55A416 CU +4QV WVYÎT QDKGMV %1/ KH #UUKIPGF 4QV VJGP DGIKP 4QV5GVA8CNWG 2%JCT GFV8CNWG6GZV RT[RKU YCTVQ è QFE[VCPæ MQPVTQNMK GF[E[LPGL GFV8CNWG6GZV 4QV4QV FQ MQPVTQNMK RT[RKU CMQFQYCP[ VGMUV GPF GPF Oto jak wygląda u ycie kontrolki COM. Najpierw tworzymy obiekt COM, eby później skorzystać z funkcji, jakie oferuje nam jej interfejs. Rysunek 3.6 przedstawia działanie przykładowego programu. Rysunek 3.6. Tekst „Delphi 7 Studio” zakodowany za pomocą algorytmu ROT13 Oczywiście algorytm działa w dwie strony. Po zakodowaniu tekstu i ponownym naci- śnięciu przycisku następuje jego rozkodowanie. Czym jest ActiveX? ActiveX to technologia oparta na COM. Pozwala na tworzenie kontrolek .ocx lub .dll. Tak naprawdę ActiveX to obiekt COM, tyle e posiadający własny interfejs dostępny na poziomie projektowania. Wygląda to w ten sposób, i tworzony jest zwykły formularz VCL będący w rzeczywistości kontrolką ActiveX. Mo na korzystać z wszystkich kom- ponentów i, ogólnie rzecz biorąc, projektowanie jest łatwiejsze ni w przypadku zwy- kłych obiektów COM. Dodatkowo ActiveX umo liwia wygenerowanie kodu pozwala- jącego na umieszczenie jej w Sieci, na stronie WWW.
  • 993. Rozdział 3. ActiveX 75 Importowanie kontrolek ActiveX Korzystając z Delphi, mo esz nawet nie wiedzieć, e w rzeczywistości u ywasz kon- trolki ActiveX. Po zaimportowaniu do Delphi taka kontrolka przedstawia się jak zwykły komponent i znajduje się na palecie komponentów. Przykład? Komponent 69GD$TQYUGT (paleta Internet). Komponent ten słu y do wyświetlania stron WWW, ale w rzeczywistości jest to kontrolka ActiveX przeglądarki Internet Explorer. Tak więc mając zainstalowaną przeglądarkę, masz równie kontrolkę ActiveX, której z kolei mo esz u yć w Delphi. Ćwiczenie 3.6. Importowanie kontrolki ActiveX. 1. Z menu Component wybierz pozycję Import ActiveX Control. Powinno się pokazać okno Import ActiveX (rysunek 3.7). Rysunek 3.7. Okno Import ActiveX Człon okna stanowi lista rozwijana, zawierająca kontrolki znajdujące się w systemie. Za pomocą przycisku Add mo esz dodać do tej listy nową kontrolkę, ale tym zajmiemy się nieco później. W naszym ćwiczeniu do programu zaimportujemy kontrolkę Shockwave Flash. Dzięki tej kontrolce będziemy mogli w naszych aplikacjach wyświetlać filmy w formacie Flash. Je eli nie mo esz na liście odnaleźć tej kontrolki, oznacza to, e nie masz jej w systemie. 2. Przed zaimportowaniem kontrolki wybierz jeszcze paletę, na której zostanie ona zainstalowana. Ja z listy Palette page wybrałem 5VCPFCTF. 3. Teraz mo esz nacisnąć przycisk Install. Spowoduje on wyświetlenie okna Install. Właściwie w tym oknie nie musimy dokonywać adnych zmian — naciśnij OK. Po tej operacji wyświetli się okno, takie jak na rysunku 3.8.
  • 994. 76 Delphi 7. Ćwiczenia zaawansowane Rysunek 3.8. Dodawanie obiektu do pakietu 4. Delphi zapyta Cię, czy skompilować pakiet. Je eli naciśniesz Yes, spowoduje to zainstalowanie kontrolki w palecie komponentów — potwierdzeniem tego będzie komunikat (rysunek 3.9). Rysunek 3.9. Potwierdzenie instalacji obiektu Od tej chwili na palecie komponentów (zakładka Standard) pojawi się 65JQEMYCXG(NCUJ. Wykorzystanie komponentu TShockwaveFlash Pobawmy się trochę kontrolką Flash i wyświetlaniem animacji. Ćwiczenie 3.7. Ładowanie i wyświetlanie animacji w komponencie. 1. Umieść komponent 65JQEMYCXG(NCUJ na formularzu i nazwij go (NCUJ. 2. Umieść tak e komponent 6$WVVQP — będzie on słu ył do ładowania filmu. Po naciśnięciu przycisku wyświetli się okno słu ące do wyboru pliku — potrzebujemy więc jeszcze komponentu 1RGPKCNQI. Procedura ładująca plik SWF (format Flasha) wygląda następująco: RTQEGFWTG 6/CKP(QTODVP.QCF%NKEM 5GPFGT 61DLGEV DGIKP KH 1RGPKCNQI'ZGEWVG VJGP RQFECU Y[ YKGVNCPKC QMPC DGIKP (NCUJ/QXKG 1RGPKCNQI(KNG0COG RT[RKU EKG Mú FQ RNKMW (NCUJ2NC[ TQRQEPKL QFVYCTCPKG GPF GPF Jak widzisz, odtwarzanie animacji Flasha jest dziecinnie proste. Wystarczy do właściwości /QXG przypisać ście kę do pliku. Po wykonaniu metody 2NC[ rozpoczyna się odtwarzanie.
  • 995. Rozdział 3. ActiveX 77 Jedyna pułapka, jaka czyha na programistę to konieczność podawania pełnej ście ki do pliku. Mo na by pomyśleć, e skoro plik swf znajduje się w tym samym katalogu, co program, wystarczy, e ście ka będzie przypisana w następujący sposób: (NCUJ/QXG RNKMUYH Nic bardziej mylnego — w takim wypadku plik nie zostanie załadowany. Nale y to zrobić w taki sposób: (NCUJ/QXKG 'ZVTCEV(KNG2CVJ #RRNKECVKQP'ZG0COG UYH Tworzenie kontrolek ActiveX Tworzenie obiektów ActiveX jest równie proste jak tworzenie obiektów COM. Jak ju wspomniałem, podczas projektowania kontrolek ActiveX mo emy u ywać wizualnej bi- blioteki komponentów (VCL). Ćwiczenie 3.8. Tworzenie nowej kontrolki. Proces ten jest podobny do tworzenia obiektów COM. 1. Z menu File wybierz New, a następnie Other. 2. Kliknij zakładkę ActiveX, wybierz ikonę ActiveX Form. Na rysunku 3.10 przedstawione jest okno, które zostanie wyświetlone w wyniku tej operacji. Rysunek 3.10. Okno Active Form Wizard 3. W polu New ActiveX Name wpisz #EVKXG:6GUV. 4. Pole Implementation Unit niech zawiera wartość #EVKXG:6GUV(TORCU, a Project Name: #EVKXG:6GUV2TQLFRT. 5. Naciśnij OK, a Delphi utworzy kontrolkę ActiveX i wyświetli formularz. 6. Z menu File wybierz Save All. Podczas zapisywania domyślną nazwą pliku, jaką zaproponuje Delphi, będzie ta, którą wpisałeś w oknie tworzenia kontrolki ActiveX.
  • 996. 78 Delphi 7. Ćwiczenia zaawansowane Katalog, który wybrałeś wzbogacił się w parę nowych plików. Oprócz standardowych plików znajduje się tam równie plik ActiveXTestProj_TLB.pas. Plik ten zawiera inter- fejsy COM. Przykładowa kontrolka ActiveX Napiszmy przykładową kontrolkę ActiveX, która pozwoli Ci zrozumieć istotę działania tych obiektów. Nasza przykładowa kontrolka będzie umo liwiać wyświetlanie napisów do filmów. Tworzenie interfejsu COM Na samym początku procesu tworzenia kontrolki musimy, tak jak w przypadku kontrolek COM, stworzyć dwie metody 5VCTV i 5VQR. Ćwiczenie 3.9. Tworzenie metod Start i Stop. 1. Stwórz nową kontrolkę ActiveX. Postępuj tak, jak w poprzednim ćwiczeniu — w polu 0GY #EVKXG: 0COG kreatora wpisz 86GZV. 2. W polu +ORNGOGPVCVKQP 7PKV wpisz 86GZV(TORCU, a w 2TQLGEV 0COG — 86GZV2TQLFRT. 3. Zapisz cały projekt. 4. W katalogu z kontrolką znajduje się plik VTextProj_TLB.pas. Domyślnie ten plik nie jest otwarty w projekcie. Otwórz więc ten plik — w edytorze kodu utworzona zostanie nowa zakładka, a na pierwszy plan wysunie się edytor biblioteki. 5. Naciśnij prawym przyciskiem myszy pozycję +86GZV i z menu wybierz New/Method. 6. Metodę tę nazwij 5VCTV. 7. Kliknij zakładkę Parameters. Będziesz musiał dodać nowy parametr dla funkcji. Doprowadź parametr do takiej postaci, jak na rysunku 3.11. Rysunek 3.11. Parametr FileName metody Start
  • 997. Rozdział 3. ActiveX 79 Stwórz teraz metodę 5VQR, powtórz cały proces, lecz nasza procedura nie będzie zawierała adnych parametrów — nie musisz robić nic więcej. Zapisz cały projekt. Tworzenie kontrolki ActiveX Nasza kontrolka będzie wyświetlać napisy do filmów. Wiele odtwarzaczy multimedialnych oferuje mo liwość załadowania napisów do filmu, który akurat oglądamy w innej wersji językowej. Nasza kontrolka będzie uwzględniała plik z napisami, którego poszczególne linie zapisane są w ten sposób: 2TQUú 2CP OWUK D[è PCRTCYFú YC P[ Czyli format czasowy. Kontrolka w momencie wywołania metody Start zaczyna działać w pętli YJKNG. Zresztą zaraz się przekonasz, jak to wygląda... Ćwiczenie 3.10. Wygląd kontrolki ActiveX. 1. Przede wszystkim otwórz plik 86GZV(TO (je eli jeszcze nie jest otwarty w projekcie). 2. Klawiszem F12 przełącz się do formularza. 3. Zmniejsz ten formularz — dostosuj go do własnych wymagań. 4. Umieść na formularzu komponent 62CPGN, a jego właściwość #NKIP ustaw na CN%NKGPV. 5. Właściwość $GXGN+PPGT zmień na DX.QYGTGF, a sam komponent nazwij RPN/GUUCIG. 6. Na komponencie RPN/GUUCIG umieść obiekt 6.CDGN i zmień właściwość #NKIP na CN$QVVQO. 7. Nazwij komponent NDN%WTTGPV. To by było na tyle, je eli chodzi o projektowanie kontrolki od strony wizualnej. Kolejnym krokiem jest tworzenie samego kodu kontrolki. Ćwiczenie 3.11. Kod źródłowy kontrolki. Przełącz się do kodu pliku 86GZV(TO. Odnajdź sekcję RTKXCVG i dodaj następujące linie: (.KPGU 65VTKPI.KUV OKGPPC RTGEJQYWLG PCRKU[ (6KOG (6GZV 6#TTC[ VCDNKEC ECU QTC PCRKU ($TQMGP 9QTF$QQN QMTG NC E[ RTQEGU LGUV WTWEJQOKQP[ RTQEGFWTG 2TGRCTG6GZV RT[IQVWL RTGCPCNKWL RNKM VGMUVQY[ Skorzystałem tutaj z nowego typu danych — 6#TTC[. Jest to tablica dynamiczna, dodaj de- klarację tego typu w sekcji V[RG: 6#TTC[ CTTC[ QH 5VTKPI
  • 998. 80 Delphi 7. Ćwiczenia zaawansowane Procedura 2TGRCTG6GZV, którą zadeklarowaliśmy w sekcji RTKXCVG słu y do przygotowania pliku tekstowego. Zaraz po wywołaniu metody 5VCTV do zmiennej (.KPGU zostaje od- czytany plik z napisami. Procedura 2TGRCTG6GZV ma oddzielić z ka dej linii: czas, w którym napis ma być wyświetlony oraz samą treść napisu. RTQEGFWTG 686GZV2TGRCTG6GZV XCT K +PVGIGT DGIKP ] QMTG N YKGNMQ è VCDNKE[ PC RQFUVCYKG NKED[ NKPKK _ 5GV.GPIVJ (6KOG (.KPGU%QWPV 5GV.GPIVJ (6GZV (.KPGU%QWPV ] RúVNC RQ YU[UVMKEJ NKPKCEJ _ HQT + VQ (.KPGU%QWPV FQ DGIKP ] FQ VGIQ GNGOGPVW VCDNKE[ RT[RKU ECU Y MVÎT[O RQYKPKGP Y[ YKGVNKè UKú PCRKU _ (6KOG=K? %QR[ (.KPGU=K? ] VWVCL RT[RKU UCOæ VTG è _ (6GZV=K? %QR[ (.KPGU=K? .GPIVJ (.KPGU=K? GPF GPF Dzięki temu mamy tablice (6KOG oraz (6GZV gotowe do u ycia. Teraz jedyny problem to wyświetlenie odpowiedniego elementu tablicy w odpowiednim czasie. A odpowiedzialną za to procedurą jest procedura 5VCTV. RTQEGFWTG 686GZV5VCTV (KNG0COG 2%JCT XCT %QWPVGT +PVGIGT NKEPKM KNG LW PCRKUÎY QUVC Q Y[ YKGVNQP[EJ (2CWUG +PVGIGT ECU Y[ YKGVNCPKC PCRKUW %WTTGPV6KOG 66KOG ECU QFVYCTCPKC HKNOW Y*QWT Y/KP Y5GE +PVGIGT DGIKP (.KPGU 65VTKPI.KUV%TGCVG (.KPGU.QCF(TQO(KNG (KNG0COG C CFWL RNKM VGMUVQY[ 2TGRCTG6GZV RT[IQVWL FYKG VCDNKEG ($TQMGP (CNUG %QWPVGT (2CWUG Y*QWT Y/KP Y5GE ] RúVNC Y[ YKGVNCPC EQ OKNKUGMWPF FQRÎMK OKGPPC ($TQMGP PKG OC YCTVQ EK (CNUG _ YJKNG PQV ($TQMGP QT PQV #RRNKECVKQP6GTOKPCVGF FQ DGIKP #RRNKECVKQP2TQEGUU/GUUCIGU 5NGGR QFEGMCL UGM KH ($TQMGP VJGP $TGCM LG GNK OKGPPC 647' RTGTYKL FKC CPKG +PE Y5GE YKúMU NKEDú UGMWPF KH Y5GE VJGP LG GNK NKEDC YKúMUC QF DGIKP +PE Y/KP YKúMU NKEDú OKP Y5GE Y[GTWL OKGPPæ GPF
  • 999. Rozdział 3. ActiveX 81 KH Y/KP VJGP LG GNK NKEDC OKP DGIKP +PE Y*QWT YKúMU NKEDú IQFKP Y/KP Y[GTWL OKPWV[ GPF PC RQFUVCYKG FCP[EJ WVYÎT OKGPPæ 66KOG %WTTGPV6KOG 'PEQFG6KOG Y*QWT Y/KP Y5GE NDN%WTTGPV%CRVKQP 6KOG6Q5VT %WTTGPV6KOG KH #PUK/CVEJ5VT 6KOG6Q5VT %WTTGPV6KOG (6KOG VJGP DGIKP +PE %QWPVGT RPN/GUUCIG%CRVKQP (6GZV=%QWPVGT? (2CWUG GPF GNUG DGIKP KH .GPIVJ RPN/GUUCIG%CRVKQP VJGP DGIKP +PE (2CWUG KH (2CWUG VJGP DGIKP (2CWUG RPN/GUUCIG%CRVKQP GPF GPF GPF GPF GPF Po załadowaniu napisów i wywołaniu procedury 2TGRCTG6GZV mamy gotowe tablice. Pętla, która jest wykonywana w odstępie 1 sekundy, za ka dym razem zwiększa liczbę sekund, następnie minut (je eli liczba sekund osiągnie 60) itd. Następnie za pomocą funkcji 'PEQFG6KOG, dzięki zmiennym Y*QWT, Y/KP, Y5GE mo emy skonstruować typ 66KOG. Funkcja #PUK/CVEJ5VT sprawdza, czy dana wartość %WTTGPV6KOG znajduje się w tablicy (6KOG. Funkcja #PUK/CVEJ5VT znajduje się w module 5VT7VKNURCU. eby wszystko zadziałało, musisz ten moduł dodać do listy uses. Je eli tak, następuje wyświetlenie tekstu z tablicy (6GZV. Jedynym problemem jest roz- ró nienie, który element tablicy powinien być w tym momencie wyświetlony. Aby to zrealizować, nale y wprowadzić zmienną %QWPVGT, która zwiększy się o jeden za ka dym razem, gdy napis zostanie wyświetlony. W dokumentacji Delphi jest błąd i funkcja #PUK/CVEJ5VT wcale nie zwraca liczby w postaci +PVGIGT, jak to jest napisane. W rzeczywistości zwraca 6TWG, je eli element został znaleziony, lub (CNUG, w przeciwnym razie. Pozostało jeszcze napisanie procedury 5VQR. Procedura ta będzie słu yć do wstrzymywania całego procesu. Jej kod jest prosty: RTQEGFWTG 686GZV5VQR DGIKP ($TQMGP 6TWG GPF
  • 1000. 82 Delphi 7. Ćwiczenia zaawansowane Zmiana wartości zmiennej ($TQMGP na 6TWG powoduje zatrzymanie działania pętli YJKNG. Cały kod źródłowy modułu jest przedstawiony na wydruku 3.4. Wydruk 3.4. Moduł VTextFrm.pas ] %QR[TKIJV E D[ #FCO $QFWEJ CFCORTQITCOOGTUPGV _ WPKV 86GZV(TO ] 9#40 5;/$1.A2.#6(14/ 1((_ KPVGTHCEG WUGU 9KPFQYU /GUUCIGU 5[U7VKNU %NCUUGU )TCRJKEU %QPVTQNU (QTOU KCNQIU #EVKXG: #Z%VTNU 86GZV2TQLA6.$ 5VF8EN 5VF%VTNU 'ZV%VTNU 5VT7VKNU V[RG 6#TTC[ CTTC[ QH 5VTKPI 686GZV ENCUU 6#EVKXG(QTO +86GZV RPN/GUUCIG 62CPGN NDN%WTTGPV 6.CDGN RTKXCVG ] 2TKXCVG FGENCTCVKQPU _ ('XGPVU +86GZV'XGPVU (.KPGU 65VTKPI.KUV OKGPPC RTGEJQYWLG PCRKU[ (6KOG (6GZV 6#TTC[ VCDNKEC ECU QTC PCRKU ($TQMGP 9QTF$QQN QMTG NC E[ RTQEGU LGUV WTWEJQOKQP[ RTQEGFWTG 2TGRCTG6GZV RT[IQVWL RTGCPCNKWL RNKM VGMUVQY[ RTQEGFWTG #EVKXCVG'XGPV 5GPFGT 61DLGEV RTQEGFWTG %NKEM'XGPV 5GPFGT 61DLGEV RTQEGFWTG %TGCVG'XGPV 5GPFGT 61DLGEV RTQEGFWTG DN%NKEM'XGPV 5GPFGT 61DLGEV RTQEGFWTG GCEVKXCVG'XGPV 5GPFGT 61DLGEV RTQEGFWTG GUVTQ['XGPV 5GPFGT 61DLGEV RTQEGFWTG -G[2TGUU'XGPV 5GPFGT 61DLGEV XCT -G[ %JCT RTQEGFWTG 2CKPV'XGPV 5GPFGT 61DLGEV RTQVGEVGF ] 2TQVGEVGF FGENCTCVKQPU _ RTQEGFWTG GHKPG2TQRGTV[2CIGU GHKPG2TQRGTV[2CIG 6GHKPG2TQRGTV[2CIG QXGTTKFG RTQEGFWTG 'XGPV5KPM%JCPIGF EQPUV 'XGPV5KPM +7PMPQYP QXGTTKFG HWPEVKQP )GVA#EVKXG 9QTF$QQN UCHGECNN HWPEVKQP )GVA#NKIPKUCDNGF 9QTF$QQN UCHGECNN HWPEVKQP )GVA#WVQ5ETQNN 9QTF$QQN UCHGECNN HWPEVKQP )GVA#WVQ5KG 9QTF$QQN UCHGECNN HWPEVKQP )GVA#Z$QTFGT5V[NG 6Z#EVKXG(QTO$QTFGT5V[NG UCHGECNN HWPEVKQP )GVA%CRVKQP 9KFG5VTKPI UCHGECNN HWPEVKQP )GVA%QNQT 1.'A%1.14 UCHGECNN HWPEVKQP )GVAQWDNG$WHHGTGF 9QTF$QQN UCHGECNN HWPEVKQP )GVATQR6CTIGV 9QTF$QQN UCHGECNN HWPEVKQP )GVA'PCDNGF 9QTF$QQN UCHGECNN HWPEVKQP )GVA(QPV +(QPVKUR UCHGECNN
  • 1001. Rozdział 3. ActiveX 83 HWPEVKQP )GVA*GNR(KNG 9KFG5VTKPI UCHGECNN HWPEVKQP )GVA-G[2TGXKGY 9QTF$QQN UCHGECNN HWPEVKQP )GVA2KZGNU2GT+PEJ +PVGIGT UCHGECNN HWPEVKQP )GVA2TKPV5ECNG 6Z2TKPV5ECNG UCHGECNN HWPEVKQP )GVA5ECNGF 9QTF$QQN UCHGECNN HWPEVKQP )GVA5ETGGP5PCR 9QTF$QQN UCHGECNN HWPEVKQP )GVA5PCR$WHHGT +PVGIGT UCHGECNN HWPEVKQP )GVA8KUKDNG 9QTF$QQN UCHGECNN HWPEVKQP )GVA8KUKDNGQEM%NKGPV%QWPV +PVGIGT UCHGECNN RTQEGFWTG A5GVA(QPV XCT 8CNWG +(QPVKUR UCHGECNN RTQEGFWTG 5GVA#WVQ5ETQNN 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVA#WVQ5KG 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVA#Z$QTFGT5V[NG 8CNWG 6Z#EVKXG(QTO$QTFGT5V[NG UCHGECNN RTQEGFWTG 5GVA%CRVKQP EQPUV 8CNWG 9KFG5VTKPI UCHGECNN RTQEGFWTG 5GVA%QNQT 8CNWG 1.'A%1.14 UCHGECNN RTQEGFWTG 5GVAQWDNG$WHHGTGF 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVATQR6CTIGV 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVA'PCDNGF 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVA(QPV EQPUV 8CNWG +(QPVKUR UCHGECNN RTQEGFWTG 5GVA*GNR(KNG EQPUV 8CNWG 9KFG5VTKPI UCHGECNN RTQEGFWTG 5GVA-G[2TGXKGY 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVA2KZGNU2GT+PEJ 8CNWG +PVGIGT UCHGECNN RTQEGFWTG 5GVA2TKPV5ECNG 8CNWG 6Z2TKPV5ECNG UCHGECNN RTQEGFWTG 5GVA5ECNGF 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVA5ETGGP5PCR 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5GVA5PCR$WHHGT 8CNWG +PVGIGT UCHGECNN RTQEGFWTG 5GVA8KUKDNG 8CNWG 9QTF$QQN UCHGECNN RTQEGFWTG 5VCTV (KNG0COG 2%JCT UCHGECNN RTQEGFWTG 5VQR UCHGECNN RWDNKE ] 2WDNKE FGENCTCVKQPU _ RTQEGFWTG +PKVKCNKG QXGTTKFG GPF KORNGOGPVCVKQP WUGU %QO1DL %QO5GTX ] 4
  • 1002. (/_ ] 686GZV _ RTQEGFWTG 686GZVGHKPG2TQRGTV[2CIGU GHKPG2TQRGTV[2CIG 6GHKPG2TQRGTV[2CIG DGIKP ] GHKPG RTQRGTV[ RCIGU JGTG 2TQRGTV[ RCIGU CTG FGHKPGF D[ ECNNKPI GHKPG2TQRGTV[2CIG YKVJ VJG ENCUU KF QH VJG RCIG (QT GZCORNG GHKPG2TQRGTV[2CIG %NCUUA86GZV2CIG _ GPF RTQEGFWTG 686GZV'XGPV5KPM%JCPIGF EQPUV 'XGPV5KPM +7PMPQYP DGIKP ('XGPVU 'XGPV5KPM CU +86GZV'XGPVU KPJGTKVGF 'XGPV5KPM%JCPIGF 'XGPV5KPM GPF RTQEGFWTG 686GZV+PKVKCNKG DGIKP KPJGTKVGF +PKVKCNKG 1P#EVKXCVG #EVKXCVG'XGPV
  • 1003. 84 Delphi 7. Ćwiczenia zaawansowane 1P%NKEM %NKEM'XGPV 1P%TGCVG %TGCVG'XGPV 1PDN%NKEM DN%NKEM'XGPV 1PGCEVKXCVG GCEVKXCVG'XGPV 1PGUVTQ[ GUVTQ['XGPV 1P-G[2TGUU -G[2TGUU'XGPV 1P2CKPV 2CKPV'XGPV GPF HWPEVKQP 686GZV)GVA#EVKXG 9QTF$QQN DGIKP 4GUWNV #EVKXG GPF HWPEVKQP 686GZV)GVA#NKIPKUCDNGF 9QTF$QQN DGIKP 4GUWNV #NKIPKUCDNGF GPF HWPEVKQP 686GZV)GVA#WVQ5ETQNN 9QTF$QQN DGIKP 4GUWNV #WVQ5ETQNN GPF HWPEVKQP 686GZV)GVA#WVQ5KG 9QTF$QQN DGIKP 4GUWNV #WVQ5KG GPF HWPEVKQP 686GZV)GVA#Z$QTFGT5V[NG 6Z#EVKXG(QTO$QTFGT5V[NG DGIKP 4GUWNV 1TF #Z$QTFGT5V[NG GPF HWPEVKQP 686GZV)GVA%CRVKQP 9KFG5VTKPI DGIKP 4GUWNV 9KFG5VTKPI %CRVKQP GPF HWPEVKQP 686GZV)GVA%QNQT 1.'A%1.14 DGIKP 4GUWNV 1.'A%1.14 %QNQT GPF HWPEVKQP 686GZV)GVAQWDNG$WHHGTGF 9QTF$QQN DGIKP 4GUWNV QWDNG$WHHGTGF GPF HWPEVKQP 686GZV)GVATQR6CTIGV 9QTF$QQN DGIKP 4GUWNV TQR6CTIGV GPF HWPEVKQP 686GZV)GVA'PCDNGF 9QTF$QQN DGIKP 4GUWNV 'PCDNGF GPF
  • 1004. Rozdział 3. ActiveX 85 HWPEVKQP 686GZV)GVA(QPV +(QPVKUR DGIKP )GV1NG(QPV (QPV 4GUWNV GPF HWPEVKQP 686GZV)GVA*GNR(KNG 9KFG5VTKPI DGIKP 4GUWNV 9KFG5VTKPI *GNR(KNG GPF HWPEVKQP 686GZV)GVA-G[2TGXKGY 9QTF$QQN DGIKP 4GUWNV -G[2TGXKGY GPF HWPEVKQP 686GZV)GVA2KZGNU2GT+PEJ +PVGIGT DGIKP 4GUWNV 2KZGNU2GT+PEJ GPF HWPEVKQP 686GZV)GVA2TKPV5ECNG 6Z2TKPV5ECNG DGIKP 4GUWNV 1TF 2TKPV5ECNG GPF HWPEVKQP 686GZV)GVA5ECNGF 9QTF$QQN DGIKP 4GUWNV 5ECNGF GPF HWPEVKQP 686GZV)GVA5ETGGP5PCR 9QTF$QQN DGIKP 4GUWNV 5ETGGP5PCR GPF HWPEVKQP 686GZV)GVA5PCR$WHHGT +PVGIGT DGIKP 4GUWNV 5PCR$WHHGT GPF HWPEVKQP 686GZV)GVA8KUKDNG 9QTF$QQN DGIKP 4GUWNV 8KUKDNG GPF HWPEVKQP 686GZV)GVA8KUKDNGQEM%NKGPV%QWPV +PVGIGT DGIKP 4GUWNV 8KUKDNGQEM%NKGPV%QWPV GPF RTQEGFWTG 686GZVA5GVA(QPV XCT 8CNWG +(QPVKUR DGIKP 5GV1NG(QPV (QPV 8CNWG GPF RTQEGFWTG 686GZV#EVKXCVG'XGPV 5GPFGT 61DLGEV DGIKP KH ('XGPVU PKN VJGP ('XGPVU1P#EVKXCVG GPF
  • 1005. 86 Delphi 7. Ćwiczenia zaawansowane RTQEGFWTG 686GZV%NKEM'XGPV 5GPFGT 61DLGEV DGIKP KH ('XGPVU PKN VJGP ('XGPVU1P%NKEM GPF RTQEGFWTG 686GZV%TGCVG'XGPV 5GPFGT 61DLGEV DGIKP KH ('XGPVU PKN VJGP ('XGPVU1P%TGCVG GPF RTQEGFWTG 686GZVDN%NKEM'XGPV 5GPFGT 61DLGEV DGIKP KH ('XGPVU PKN VJGP ('XGPVU1PDN%NKEM GPF RTQEGFWTG 686GZVGCEVKXCVG'XGPV 5GPFGT 61DLGEV DGIKP KH ('XGPVU PKN VJGP ('XGPVU1PGCEVKXCVG GPF RTQEGFWTG 686GZVGUVTQ['XGPV 5GPFGT 61DLGEV DGIKP KH ('XGPVU PKN VJGP ('XGPVU1PGUVTQ[ GPF RTQEGFWTG 686GZV-G[2TGUU'XGPV 5GPFGT 61DLGEV XCT -G[ %JCT XCT 6GOR-G[ 5OCNNKPV DGIKP 6GOR-G[ 5OCNNKPV -G[ KH ('XGPVU PKN VJGP ('XGPVU1P-G[2TGUU 6GOR-G[ -G[ %JCT 6GOR-G[ GPF RTQEGFWTG 686GZV2CKPV'XGPV 5GPFGT 61DLGEV DGIKP KH ('XGPVU PKN VJGP ('XGPVU1P2CKPV GPF RTQEGFWTG 686GZV5GVA#WVQ5ETQNN 8CNWG 9QTF$QQN DGIKP #WVQ5ETQNN 8CNWG GPF RTQEGFWTG 686GZV5GVA#WVQ5KG 8CNWG 9QTF$QQN DGIKP #WVQ5KG 8CNWG GPF RTQEGFWTG 686GZV5GVA#Z$QTFGT5V[NG 8CNWG 6Z#EVKXG(QTO$QTFGT5V[NG DGIKP #Z$QTFGT5V[NG 6#EVKXG(QTO$QTFGT5V[NG 8CNWG GPF RTQEGFWTG 686GZV5GVA%CRVKQP EQPUV 8CNWG 9KFG5VTKPI DGIKP %CRVKQP 6%CRVKQP 8CNWG GPF
  • 1006. Rozdział 3. ActiveX 87 RTQEGFWTG 686GZV5GVA%QNQT 8CNWG 1.'A%1.14 DGIKP %QNQT 6%QNQT 8CNWG GPF RTQEGFWTG 686GZV5GVAQWDNG$WHHGTGF 8CNWG 9QTF$QQN DGIKP QWDNG$WHHGTGF 8CNWG GPF RTQEGFWTG 686GZV5GVATQR6CTIGV 8CNWG 9QTF$QQN DGIKP TQR6CTIGV 8CNWG GPF RTQEGFWTG 686GZV5GVA'PCDNGF 8CNWG 9QTF$QQN DGIKP 'PCDNGF 8CNWG GPF RTQEGFWTG 686GZV5GVA(QPV EQPUV 8CNWG +(QPVKUR DGIKP 5GV1NG(QPV (QPV 8CNWG GPF RTQEGFWTG 686GZV5GVA*GNR(KNG EQPUV 8CNWG 9KFG5VTKPI DGIKP *GNR(KNG 5VTKPI 8CNWG GPF RTQEGFWTG 686GZV5GVA-G[2TGXKGY 8CNWG 9QTF$QQN DGIKP -G[2TGXKGY 8CNWG GPF RTQEGFWTG 686GZV5GVA2KZGNU2GT+PEJ 8CNWG +PVGIGT DGIKP 2KZGNU2GT+PEJ 8CNWG GPF RTQEGFWTG 686GZV5GVA2TKPV5ECNG 8CNWG 6Z2TKPV5ECNG DGIKP 2TKPV5ECNG 62TKPV5ECNG 8CNWG GPF RTQEGFWTG 686GZV5GVA5ECNGF 8CNWG 9QTF$QQN DGIKP 5ECNGF 8CNWG GPF RTQEGFWTG 686GZV5GVA5ETGGP5PCR 8CNWG 9QTF$QQN DGIKP 5ETGGP5PCR 8CNWG GPF RTQEGFWTG 686GZV5GVA5PCR$WHHGT 8CNWG +PVGIGT DGIKP 5PCR$WHHGT 8CNWG GPF
  • 1007. 88 Delphi 7. Ćwiczenia zaawansowane RTQEGFWTG 686GZV5GVA8KUKDNG 8CNWG 9QTF$QQN DGIKP 8KUKDNG 8CNWG GPF RTQEGFWTG 686GZV5VCTV (KNG0COG 2%JCT XCT %QWPVGT +PVGIGT NKEPKM KNG LW PCRKUÎY QUVC Q Y[ YKGVNQP[EJ (2CWUG +PVGIGT ECU Y[ YKGVNCPKC PCRKUW %WTTGPV6KOG 66KOG ECU QFVYCTCPKC HKNOW Y*QWT Y/KP Y5GE +PVGIGT DGIKP (.KPGU 65VTKPI.KUV%TGCVG (.KPGU.QCF(TQO(KNG (KNG0COG C CFWL RNKM VGMUVQY[ 2TGRCTG6GZV RT[IQVWL FYKG VCDNKEG ($TQMGP (CNUG %QWPVGT (2CWUG Y*QWT Y/KP Y5GE ] RúVNC Y[ YKGVNCPC EQ OKNKUGMWPF FQRÎMK OKGPPC ($TQMGP PKG OC YCTVQ EK (CNUG _ YJKNG PQV ($TQMGP QT PQV #RRNKECVKQP6GTOKPCVGF FQ DGIKP #RRNKECVKQP2TQEGUU/GUUCIGU 5NGGR QFEGMCL UGM KH ($TQMGP VJGP $TGCM LG GNK OKGPPC 647' RTGTYKL FKC CPKG +PE Y5GE YKúMU NKEDú UGMWPF KH Y5GE VJGP LG GNK NKEDC YKúMUC QF DGIKP +PE Y/KP YKúMU NKEDú OKP Y5GE Y[GTWL OKGPPæ GPF KH Y/KP VJGP LG GNK NKEDC OKP DGIKP +PE Y*QWT YKúMU NKEDú IQFKP Y/KP Y[GTWL OKPWV[ GPF PC RQFUVCYKG FCP[EJ WVYÎT OKGPPæ 66KOG %WTTGPV6KOG 'PEQFG6KOG Y*QWT Y/KP Y5GE NDN%WTTGPV%CRVKQP 6KOG6Q5VT %WTTGPV6KOG KH #PUK/CVEJ5VT 6KOG6Q5VT %WTTGPV6KOG (6KOG VJGP DGIKP +PE %QWPVGT RPN/GUUCIG%CRVKQP (6GZV=%QWPVGT? (2CWUG GPF GNUG DGIKP KH .GPIVJ RPN/GUUCIG%CRVKQP VJGP DGIKP +PE (2CWUG
  • 1008. Rozdział 3. ActiveX 89 KH (2CWUG VJGP DGIKP (2CWUG RPN/GUUCIG%CRVKQP GPF GPF GPF GPF GPF RTQEGFWTG 686GZV5VQR DGIKP ($TQMGP 6TWG GPF RTQEGFWTG 686GZV2TGRCTG6GZV XCT K +PVGIGT DGIKP ] QMTG N YKGNMQ è VCDNKE[ PC RQFUVCYKG NKED[ NKPKK _ 5GV.GPIVJ (6KOG (.KPGU%QWPV 5GV.GPIVJ (6GZV (.KPGU%QWPV ] RúVNC RQ YU[UVMKEJ NKPKCEJ _ HQT + VQ (.KPGU%QWPV FQ DGIKP ] FQ VGIQ GNGOGPVW VCDNKE[ RT[RKU ECU Y MVÎT[O RQYKPKGP Y[ YKGVNKè UKú PCRKU _ (6KOG=K? %QR[ (.KPGU=K? ] VWVCL RT[RKU UCOæ VTG è _ (6GZV=K? %QR[ (.KPGU=K? .GPIVJ (.KPGU=K? GPF GPF KPKVKCNKCVKQP 6#EVKXG(QTO(CEVQT[%TGCVG %QO5GTXGT 6#EVKXG(QTO%QPVTQN 686GZV %NCUUA86GZV 1.'/+5%A5+/2.'(4#/' QT 1.'/+5%A#%65.+-'.#$'. VO#RCTVOGPV GPF Budowa, rejestracja i instalacja kontrolki Nasza kontrolka jest ju gotowa. Poprzez wybranie pozycji Build z menu Project kod źródłowy zostanie skompilowany do postaci pliku .ocx. Je eli projekt zawiera jakieś błędy — informacja o tym pojawi się w oknie (ang. Message View). Poprzez wybranie pozycji Register ActiveX Server z menu Run kontrolka zostanie za- rejestrowana w systemie.
  • 1009. 90 Delphi 7. Ćwiczenia zaawansowane Ćwiczenie 3.12. Instalacja kontrolki w palecie komponentów. 1. Zamknij projekt — wybierz z menu File pozycję Close All. 2. Teraz z menu Component wybierz Import ActiveX Control. Poka e się okno z rysunku 3.7. 3. Naciśnij przycisk #FF i odszukaj skompilowaną kontrolkę. Po tym zabiegu kontrolka zostanie dodana do listy. 4. Po naciśnięciu przycisku +PUVCNN powtórzy się proces z ćwiczenia 3.7. Wykorzystanie kontrolki TVText Kontrolka została umieszczona na wybranej przez Ciebie palecie. Mo esz utworzyć nowy projekt i umieścić ową kontrolkę na formularzu. Ćwiczenie 3.13. Obsługa kontrolki. Oprócz samej kontrolki na formularzu umieść tak e dwa komponenty 6$WVVQP oraz 61RGP KCNQI. Jeden przycisk będzie słu ył do rozpoczęcia odtwarzania, a drugi — do jego zatrzymania. Cały listing programu przedstawiono na wydruku 3.5. Wydruk 3.5. Program wykorzystujący kontrolkę TVText ] %QR[TKIJV E D[ #FCO $QFWEJ CFCORTQITCOOGUPGV _ WPKV /CKP(TO KPVGTHCEG WUGU 9KPFQYU /GUUCIGU 5[U7VKNU 8CTKCPVU %NCUUGU )TCRJKEU %QPVTQNU (QTOU KCNQIU 1NG%VTNU 86GZV2TQLA6.$ 5VF%VTNU V[RG 6/CKP(QTO ENCUU 6(QTO 86GZV 686GZV DVP.QCF 6$WVVQP 1RGPKCNQI 61RGPKCNQI DVP5VQR 6$WVVQP RTQEGFWTG DVP.QCF%NKEM 5GPFGT 61DLGEV RTQEGFWTG DVP5VQR%NKEM 5GPFGT 61DLGEV RTQEGFWTG (QTO%NQUG 5GPFGT 61DLGEV XCT #EVKQP 6%NQUG#EVKQP RTKXCVG ] 2TKXCVG FGENCTCVKQPU _ RWDNKE ] 2WDNKE FGENCTCVKQPU _ GPF
  • 1010. Rozdział 3. ActiveX 91 XCT /CKP(QTO 6/CKP(QTO KORNGOGPVCVKQP ] 4
  • 1011. FHO_ RTQEGFWTG 6/CKP(QTODVP.QCF%NKEM 5GPFGT 61DLGEV DGIKP KH 1RGPKCNQI'ZGEWVG VJGP DGIKP 86GZV5VQR CVT[OCPKG LG GNK VGTC EQ UKú QFVYCTC DVP5VQR'PCDNGF 6TWG 86GZV5VCTV 2%JCT 1RGPKCNQI(KNG0COG Y[YQ CPKG RTQEGFWT[ GPF GPF RTQEGFWTG 6/CKP(QTODVP5VQR%NKEM 5GPFGT 61DLGEV DGIKP 86GZV5VQR DVP5VQR'PCDNGF (CNUG GPF RTQEGFWTG 6/CKP(QTO(QTO%NQUG 5GPFGT 61DLGEV XCT #EVKQP 6%NQUG#EVKQP DGIKP 86GZV5VQR CVT[OCPKG LG GNK W [VMQYPKM EJEG Y[L è RTQITCOW GPF GPF Zauwa , e w kodzie znajduje się zdarzenie 1P%NQUG formularza. Zdarzenie to występuje w przypadku, gdy u ytkownik zdecyduje się na zamknięcie programu. Nim to nastąpi, nale y wywołać metodę 5VQR, aby zatrzymała odtwarzanie napisów. Rysunek 3.12 przed- stawia program w działaniu. Oczywiście, Ty mo esz „dorobić” do tego programu mo liwość wyświetlania samego filmu (mo na zrealizować to przy u yciu komponentu 6/GFKC2NC[GT). Rysunek 3.12. Program podczas wyświetlania napisów do filmu Publikowanie ActiveX w Internecie Jak ju wspomniałem na początku tego rozdziału, istnieje mo liwość umieszczenia własnej kontrolki ActiveX na swojej stronie WWW.
  • 1012. 92 Delphi 7. Ćwiczenia zaawansowane Ćwiczenie 3.14. Tworzenie przykładowej kontrolki. Istotą tego podrozdziału jest zaprezentowanie mo liwości publikowania własnych kontrolek. Z tego te względu obiekt, który teraz stworzymy będzie bardzo prosty. Utwórz nową kontrolkę, nazwij ją #EVKXG999. W polu Implementation Unit wpisz #EVKXG999(TORCU, a w polu Project Name: #EVKXG9992TQLFRT. Nasza kontrolka będzie w pętli wyświetlać napis, dając przy tym efekt maszyny do pisania, czyli litera po literze. Na formularzu umieść komponent 6)TQWR$QZ, a na nim 6.CDGN. Rozciągnij etykietę na całą szerokość komponentu 6)TQWR$QZ i zmień właściwość #WVQ5KG na (CNUG. Je eli chodzi o kod, to umieść dodatkowo dwa przyciski. Jeden będzie słu ył do rozpoczęcia animacji, a drugi do jej zatrzymania. XCT ($TQMGP $QQNGCP RTQEGFWTG 6#EVKXG999DVP)Q%NKEM 5GPFGT 61DLGEV EQPUV 'Z/UI 6Q LGUV RT[M CFQYC MQPVTQNMC XCT K +PVGIGT DGIKP ($TQMGP (CNUG ] RúVNC YJKNG Y[MQP[YCPC RTG EC [ ECU VTYCPKC RTQITCOW _ YJKNG PQV #RRNKECVKQP6GTOKPCVGF QT PQV ($TQMGP FQ DGIKP NDN/GUUCIG%CRVKQP ] RúVNC HQT RQYQFWLG Y[ YKGVNGPKG PC GV[MKGEKG MQNGLP[EJ NKVGT _ HQT K VQ .GPIVJ 'Z/UI FQ DGIKP #RRNKECVKQP2TQEGUU/GUUCIGU KH ($TQMGP VJGP $TGCM 5NGGR NDN/GUUCIG%CRVKQP NDN/GUUCIG%CRVKQP 'Z/UI=K? GPF GPF GPF RTQEGFWTG 6#EVKXG999DVP5VQR%NKEM 5GPFGT 61DLGEV DGIKP ($TQMGP 6TWG GPF Kod daje efekt maszyny do pisania, wyświetla litera po literze przykładowy napis. To by było na tyle, je eli chodzi o samą kontrolkę. Do opublikowania kontrolki w Sieci posłu ymy się dwiema pozycjami z menu Project: Web Deployment Options oraz Web Deploy. Na samym początku wybierz pierwszą pozycję, aby ustalić opcję publikacji (rysunek 3.13). W oknie tym musimy podać parę informacji, które są potrzebne do zbudowania kon- trolki. Załó my, e będzie ona uruchamiana na lokalnym serwerze Apache.
  • 1013. Rozdział 3. ActiveX 93 Rysunek 3.13. Okno Web Deployment Options Ćwiczenie 3.15. Publikowanie kontrolki. Pierwsze pole Target dir okna Web Deployment Options musi zawierać ście kę do ka- talogu, w którym kontrolka zostanie umieszczona po zbudowaniu. W kolejnym polu, Target URL, wpisz adres URL, który będzie prowadził do odpowiedniej strony — ja wpisałem JVVRNQECNJQUV. Ostatnie pole HTML Dir określa ście kę, gdzie wygenerowany zostanie odpowiedni plik HTML. Ja wpisałem tę samą wartość, co w pozycji Target Dir. To właściwie wszystko, zamknij okno przyciskiem OK. Wybierz z menu Project pozycję Web Deploy. Kontrolka powinna zostać skompilowana i zapisana w wybranym przez Ciebie katalogu. W oknie Web Deployment Options mo esz zaznaczyć opcję Use CAB file compression. Dzięki temu kontrolka ActiveX zostanie skompilowana do pliku *.cab. Po tym zabiegu plik ActiveWWWProj.htm zawiera treść przedstawioną na wydruku 3.6. Wydruk 3.6. Kod HTML strony wygenerowanej przez Delphi *6/. * GNRJK #EVKXG: 6GUV 2CIG * R ;QW UJQWNF UGG [QWT GNRJK HQTOU QT EQPVTQNU GODGFFGF KP VJG HQTO DGNQY *4 EGPVGT 2 1$,'%6 ENCUUKF ENUKF$$#' EQFGDCUG JVVRNQECNJQUV#EVKXG9992TQLQEZ XGTUKQP YKFVJ JGKIJV CNKIPEGPVGT JURCEG XURCEG 1$,'%6 *6/.
  • 1014. 94 Delphi 7. Ćwiczenia zaawansowane Aby kontrolka ActiveX była lepiej wyświetlana, zmieniłem szerokość i wysokość obiektu na takie wartości: YKFVJ JGKIJV Rezultat działania programu mo esz zobaczyć na rysunku 3.14. Rysunek 3.14. Kontrolka ActiveX w działaniu! Względy bezpieczeństwa U ywanie kontrolek ActiveX w Internecie nie jest zbyt popularną usługą. Wielu u ytkowni- ków ze względu na niebezpieczeństwo wynikające z korzystania z ActiveX ma wyłączoną opcję ich ładowania (zdaje się, e jest to domyślne ustawienie). Z tego względu, chcąc zała- dować kontrolkę, zobaczą tylko taki komunikat, jak pokazany na rysunku 3.15. Rysunek 3.15. Komunikat informujący o niemo ności obsłu enia ActiveX Ćwiczenia dodatkowe Ćwiczenie 3.16. Napisz program do wyświetlania filmów, który będzie korzystać z kontrolki TVText. Podsumowanie Co prawda ActiveX nie jest popularną technologią na stronach WWW, ale dość wygod- ną, je eli chodzi o tworzenie obiektów środowiskowych. Pamiętaj, e utworzoną kon- trolkę mo na równie uruchomić w innych środowiskach programistycznych systemu Windows.