You are on page 1of 46

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

C++ Buider 5.

Vademecum profesjonalisty. Tom II


Autorzy: Jarrod Hollingworth, Dan Butterfield, Bob
Swart, Jamie Allsop, et al.
Tumaczenie: zbiorowe
ISBN: 83-7197-586-4
Tytu oryginau: C++ Builder 5 Developer
Format: B5, stron: 772
oprawa twarda
Zawiera CD-ROM

Ta dugo oczekiwana ksika, omawiajca pit ju wersj C++Buildera, nie jest jak
w przypadku wielu innych pozycji powiconych narzdziom programistycznym
typow prezentacj moliwoci rodowiska projektowego i jzyka C++. Poszczeglne
jej rozdziay byy bowiem tworzone nie przez twrcw, ale przez uytkownikw
C++Buildera dziki czemu cao nabiera niecodzienny charakteru kompendium
wiedzy praktycznej, bazujcej na niejednokrotnie wieloletnich dowiadczeniach
programistycznych. Zawarto tomu drugiego stanowi naturalne uzupenienie treci
tomu pierwszego, lecz dziki specyficznemu charakterowi ksiki tom ten jest
samodzieln, penowartociow pozycj, od ktrej mona rozpocz lektur caoci.
Ksika ta obejmuje szeroki zakres zagadnie zwizanych z zaawansowanymi
moliwociami pitej wersji C++Buildera. W kolejnych rozdziaach znajduj si
omwienia i przykady prezentujce wykorzystanie komponentw Interbase Express,
ADOExpress, InternetExpress i wielu innych. Dziki tej ksice wzbogacisz swoj wiedz
o tworzeniu aplikacji z wykorzystaniem architektur CORBA, COM, COM+. Zaawansowani
programici odsoni przed Tob tajniki programowania rozproszonych aplikacji
internetowych, biurowych i bazodanowych.
Wyeliminuj bdy powodujce niekontrolowane wycieki pamici oraz przechwytuj
szczegowe informacje o bdach i wyjtkach wystpujcych w czasie dziaania
programu
Rozszerz swoje umiejtnoci projektowania i implementowania
wielowarstwowych aplikacji bazodanowych opartych na technologii MIDAS
Wykorzystaj w swoich programach bogate moliwoci aplikacji pakietu Microsoft
Office
Poznaj techniki programowania rozproszonego z wykorzystaniem architektur
COM, COM+ i CORBA
Wzboga tworzone strony WWW o obiekty i formularze oparte na technologii
ActiveX
Wykorzystaj w peni moliwoci prezentacji danych i drukowania dokumentw,
oferowane przez rodowisko graficzne systemu Windows
Profesjonalnie projektuj i dystrybuuj wasne zestawy komponentw.

"
"
"
"
"
"
"

O Autorach .................................................................................................................19
Wprowadzenie ............................................................................................................29
Przedmowa do wydania polskiego ............................................................................33
Rozdzia 1. Projekty i rodowisko zintegrowane programu C++Builder .............37
Wprowadzenie do projektw C++Buildera .......................................................................... 37
Pliki uywane w projektach C++Buildera ...................................................................... 38
Meneder projektw........................................................................................................ 41
Korzystanie z repozytorium obiektw.................................................................................. 42
Wstawianie elementw do repozytorium obiektw........................................................ 42
Wykorzystanie elementw z repozytorium obiektw..................................................... 46
Wspuytkowanie elementw w obrbie projektu ........................................................ 46
Dostosowywanie repozytorium obiektw....................................................................... 47
Tworzenie i dodawanie kreatora do repozytorium obiektw.......................................... 47
Pakiety podstawy i zastosowanie..................................................................................... 50
Uwagi na temat korzystania z pakietw.......................................................................... 53
Pakiety wykonywalne programu C++Builder ................................................................ 54
Program narzdziowy tdump .......................................................................................... 56
Nowe cechy rodowiska zintegrowanego C++Builder 5 ..................................................... 56
Kategorie waciwoci w inspektorze obiektw ............................................................. 56
Obrazki w listach rozwijanych inspektora obiektw ...................................................... 57
Format XML pliku projektu............................................................................................ 61
Formularze zapis w formacie tekstowym .................................................................. 62
Opcje na poziomie wzw ............................................................................................. 64
Nowa lista zada ............................................................................................................. 67
Kreator aplikacji konsolowych ....................................................................................... 70
Podsumowanie ...................................................................................................................... 73

Rozdzia 2. Zaawansowane programowanie w C++Builderze ...............................75


Wprowadzenie do SCL (Standard C++ Library) i wzorcw ................................................ 75
Wzorce jzyka C++......................................................................................................... 76
Waciwoci biblioteki Standard C++ Library................................................................ 79
Potyczki z kontenerami i iteratorami .............................................................................. 80
Zastosowanie standardowych algorytmw ..................................................................... 87
Biblioteka SCL wnioski ............................................................................................. 88


   
   
Wskaniki typu smart i kontenery typu strong ..................................................................... 89
Sterta kontra stos ............................................................................................................. 89
Wskaniki........................................................................................................................ 89
Kontenery typu strong (Strong Containers) .................................................................... 93
Puapki............................................................................................................................. 95
Wskaniki smart i kontenery strong podsumowanie ................................................. 96
Implementacja zaawansowanej obsugi wyjtkw (Advanced Exception Handler)............ 96
Przegld strategii ............................................................................................................. 97
Analiza korzyci.............................................................................................................. 97
Wymiana domylnej procedury obsugi wyjtkw......................................................... 98
Dodawanie do klasy informacji specyficznych dla projektu .......................................... 99
Kod rdowy procedury obsugi wyjtkw ................................................................... 99
Zaawansowana obsuga wyjtkw podsumowanie.................................................. 115
Tworzenie aplikacji wielowtkowych ................................................................................ 115
Zrozumie wielozadaniowo....................................................................................... 115
Zrozumie wielowtkowo.......................................................................................... 116
Tworzenie wtku za pomoc wywoa API ................................................................. 116
Obiekt TThread ............................................................................................................. 119
Gwny wtek VCL ...................................................................................................... 123
Ustalanie priorytetw .................................................................................................... 125
Pomiar czasu wykonania wtkw ................................................................................. 128
Synchronizacja wtkw ................................................................................................ 129
Wprowadzenie do wzorcw projektowych......................................................................... 133
Powtarzalna natura wzorcw ........................................................................................ 133
Wzorce w projektowaniu oprogramowania .................................................................. 134
Wzorce projektowe jako rdo terminologii ............................................................... 134
Format wzorca projektowego........................................................................................ 135
Klasyfikacja wzorcw projektowych............................................................................ 136
Wzorce projektowe wnioski..................................................................................... 137
Podsumowanie .................................................................................................................... 138

Rozdzia 3. Tworzenie wasnych komponentw cig dalszy............................139


Zagadnienia dotyczce tworzenia wasnych komponentw............................................... 139
Wywietlanie zoonych waciwoci publikowanych w oknie Object Inspectora...... 139
Przestrze nazw w licie parametrw zdarzenia........................................................... 140
Okrelanie listy parametrw zdarzenia ......................................................................... 141
Przykrywanie funkcji dynamicznych............................................................................ 146
Wasne komponenty obsuga komunikatw ............................................................ 147
Funkcje zwrotne Windows w komponentach ............................................................... 161
Wybr typu bazowego waciwoci.............................................................................. 169
Udostpnianie komponentu w czasie projektowania i w czasie dziaania aplikacji..... 174
Ramki .................................................................................................................................. 176
Ramka co to jest? ..................................................................................................... 177
Klasa TCustomFrame.................................................................................................... 178
Praca z ramkami w czasie projektowania ..................................................................... 178

 


Praca z ramkami w czasie dziaania aplikacji ............................................................... 179


Tworzenie klasy wyprowadzonej z TFrame ................................................................. 180
Klasy pochodne klasy wyprowadzonej z TFrame ........................................................ 183
Wielokrotne wykorzystanie ramek ............................................................................... 184
Ramki wnioski ......................................................................................................... 185
Dystrybucja komponentw ................................................................................................. 186
Umieszczanie komponentw w pakiecie ...................................................................... 186
Lokalizacja plikw pakietu ........................................................................................... 191
Nazwy stosowane w pakietach...................................................................................... 192
Nazwy komponentw.................................................................................................... 193
Dystrybucja pakietu projektowego ............................................................................... 194
Komponenty dla rnych wersji C++Buildera ............................................................. 196
Tworzenie ikonek dla palety komponentw ................................................................. 199
Tworzenie komponentw przeznaczonych do dystrybucji wskazwki................... 199
Inne zagadnienia zwizane z dystrybucj komponentw ............................................. 200
Podsumowanie .................................................................................................................... 201

Rozdzia 4. Programowanie baz danych ................................................................203


Modele architektur aplikacji baz danych ............................................................................ 203
Mechanizm Borland Database Engine .......................................................................... 204
Aplikacja macierzysta BDE (jednowarstwowa) ........................................................... 204
Architektura klient-serwer (BDE i SQL Links)............................................................ 205
Aplikacje rozproszone (wielowarstwowe).................................................................... 206
Metody dostpu do danych ........................................................................................... 207
Komponenty macierzyste.............................................................................................. 207
Duet ODBC i BDE........................................................................................................ 208
ODBC i komponenty macierzyste ................................................................................ 209
ADO (ActiveX Data Objects) ....................................................................................... 210
Wbudowany SQL.......................................................................................................... 210
Macierzysty interfejs API ............................................................................................. 211
Architektury aplikacji baz danych wnioski.............................................................. 212
Inne rda informacji o architekturach aplikacji baz danych ...................................... 212
Jzyk SQL ........................................................................................................................... 213
Tabele i indeksy ............................................................................................................ 213
Parametry ...................................................................................................................... 214
Zapytania insert, update, delete i select ........................................................................ 215
Funkcje agregujce........................................................................................................ 217
Dodatkowe informacje o jzyku SQL........................................................................... 217
Komponenty ADO Express ................................................................................................ 217
ADO a BDE .................................................................................................................. 218
Przegld komponentw ADO ....................................................................................... 220
Poczenie z baz danych.............................................................................................. 221
Dostp do zbiorw danych............................................................................................ 222
TADOTable................................................................................................................... 223
Dostp do zbiorw danych............................................................................................ 226


   
   
Zarzdzanie transakcjami.............................................................................................. 227
Zdarzenia komponentw ADO ..................................................................................... 227
Tworzenie uniwersalnej aplikacji bazy danych ............................................................ 228
Optymalizacja wydajnoci ............................................................................................ 230
Obsuga bdw............................................................................................................. 231
Aplikacje wielowarstwowe a ADO............................................................................... 232
Komponenty ADO Express podsumowanie ............................................................ 232
Architektury gromadzenia danych...................................................................................... 232
Decyzje wstpne............................................................................................................ 233
Pobieranie danych z wielu rde ................................................................................. 234
Narzdzie Data Module Designer....................................................................................... 236
Modu danych................................................................................................................ 236
Zalety stosowania moduu danych ................................................................................ 237
Moduy danych w aplikacjach, bibliotekach DLL i obiektach rozproszonych ............ 238
Zawarto moduu danych ............................................................................................ 239
Dodawanie waciwoci do moduu danych ................................................................. 240
Obsuga moduu danych................................................................................................ 240
Dla zaawansowanych .................................................................................................... 243
Dziedziczenie klasy formularza w moduach danych................................................... 243
Obsuga nierwnego dziedziczenia klas formularzy i moduw danych...................... 244
Modu danych niezaleny od interfejsu uytkownika................................................... 245
Modu danych a komponenty szkieletowe i komponenty specyficzne dla aplikacji.... 245
Moduy danych w pakietach ......................................................................................... 248
Moduy danych podsumowanie ............................................................................... 248
InterBase Express................................................................................................................ 248
Schemat bazy danych Bug Trackera ............................................................................. 249
Reguy bazy danych ...................................................................................................... 251
Generatory, wyzwalacze i procedury skadowane........................................................ 251
Implementacja programu Bug Tracker ......................................................................... 253
Program Bug Tracker w akcji ....................................................................................... 261
Podsumowanie .................................................................................................................... 262

Rozdzia 5. Krok naprzd COM+......................................................................263


COM+ wprowadzenie.................................................................................................... 264
Aplikacje COM+ ........................................................................................................... 264
Katalog COM+.............................................................................................................. 265
Usugi COM+...................................................................................................................... 265
Zdarzenia sabo skojarzone ........................................................................................... 265
Transakcje ..................................................................................................................... 267
Synchronizacja .............................................................................................................. 270
Zabezpieczenia .............................................................................................................. 270
Komponenty w kolejce ................................................................................................. 271
Rwnowaenie obcienia ............................................................................................ 271

 




Programowanie i zastosowania zdarze COM+................................................................. 271


Tworzenie obiektu zdarzenia COM+ ............................................................................ 271
Instalacja zdarzenia w aplikacji COM+ ........................................................................ 273
Tworzenie obiektu wydawcy ........................................................................................ 277
Tworzenie obiektw subskrybentw............................................................................. 278
Konfiguracja subskrybentw ........................................................................................ 282
Tworzenie subskrypcji trwaej ...................................................................................... 283
Tworzenie subskrypcji tymczasowej ............................................................................ 286
Programowanie i zastosowania obiektw transakcyjnych COM+ ..................................... 295
Tworzenie obiektw transakcyjnych w warstwie biznesowej aplikacji ....................... 296
Programowanie menedera wyrwnywania zasobw (CRM)...................................... 305
Aplikacja klienta ........................................................................................................... 316
Podsumowanie .................................................................................................................... 317

Rozdzia 6. Rozproszone aplikacje wielowarstwowe MIDAS 3 ......................319


Wprowadzenie do technologii MIDAS .............................................................................. 319
Aplikacje klientw i serwerw MIDAS ............................................................................. 321
Tworzenie serwera MIDAS .......................................................................................... 322
Rejestracja serwera MIDAS.......................................................................................... 326
Tworzenie klienta MIDAS ............................................................................................ 327
Model aktwki............................................................................................................... 330
Metoda ApplyUpdates()................................................................................................ 333
Implementacja obsugi bdw ..................................................................................... 334
Demonstracja obsugi bdw aktualizacji rekordw ................................................... 337
Zdalny dostp do serwera.............................................................................................. 338
Tworzenie serwera MIDAS w modelu nadrzdny-szczegowy.................................. 339
Eksport relacji nadrzdny-szczegowy........................................................................ 342
Tworzenie klienta MIDAS w modelu nadrzdny-szczegowy ................................... 343
Tabele zagniedone ..................................................................................................... 343
MIDAS wskie garda systemu ............................................................................ 346
Rozszerzenia MIDAS 3 ...................................................................................................... 348
Komponent TDataSetProvider ...................................................................................... 349
Porwnanie interfejsw IProvider i IAppServer........................................................... 349
Bezstanowy obiekt porednika danych ......................................................................... 349
Zastosowania komponentw InternetExpress............................................................... 354
Komponent TWebConnection ...................................................................................... 357
Pula obiektw................................................................................................................ 358
Poczenia oparte na gniazdach (TCP/IP)..................................................................... 360
Porednik obiektw ....................................................................................................... 363
Instalacja........................................................................................................................ 364
Podsumowanie .................................................................................................................... 365

Rozdzia 7. Aplikacje rozproszone w CORBA ......................................................367


Wprowadzenie do CORBA................................................................................................. 367
Jak dziaa CORBA? ............................................................................................................ 368
Wywoania statyczne i dynamiczne .............................................................................. 369
Na kade danie........................................................................................................... 369

!


   
   
Pasko lub hierarchicznie .............................................................................................. 369
Klient, serwer kto jest kim? ..................................................................................... 370
Object Request Broker .................................................................................................. 370
Podstawowy adapter obiektu......................................................................................... 370
Przenony adapter obiektu ............................................................................................ 370
CORBA kontra COM.................................................................................................... 370
Komponenty VisiBrokera ................................................................................................... 371
Smart agent.................................................................................................................... 371
Demon aktywacji obiektu OAD.................................................................................... 371
Konsola.......................................................................................................................... 372
Jzyk definicji interfejsu IDL ............................................................................................. 372
Sowo kluczowe interface ............................................................................................. 373
Sowo kluczowe attribute.............................................................................................. 373
Metody .......................................................................................................................... 373
Definicje typw ............................................................................................................. 374
Wyjtki .......................................................................................................................... 374
Dziedziczenie ................................................................................................................ 375
Moduy .......................................................................................................................... 375
Co nowego w C++Builderze 5?.......................................................................................... 375
Obsuga CORBA w C++Builderze..................................................................................... 376
Opcje rodowiskowe ..................................................................................................... 377
Opcje programu uruchomieniowego............................................................................. 377
Opcje projektu ............................................................................................................... 378
Kreator serwera CORBA .............................................................................................. 379
Kreator klienta CORBA ................................................................................................ 380
Kreator pliku IDL.......................................................................................................... 380
Kreator implementacji obiektu CORBA....................................................................... 381
Okno aktualizacji projektu ............................................................................................ 381
Kreator uycia obiektu CORBA ................................................................................... 382
Rnice pomidzy wersj czwart a pit C++Buildera .............................................. 383
Modele implementacyjne.................................................................................................... 384
Dziedziczenie proste ..................................................................................................... 385
Dziedziczenie z implementacj wirtualn..................................................................... 385
Model z delegacj (zwizek)......................................................................................... 386
CORBA dla zamonych inaczej...................................................................................... 386
Podsumowanie .................................................................................................................... 386

Rozdzia 8. Integracja aplikacji z pakietem Microsoft Office ..............................387


Integracja aplikacji z Microsoft Office wprowadzenie ................................................. 387
Jak integrowa?................................................................................................................... 388
Obiekt TOleContainer ................................................................................................... 388
Automatyzacja OLE...................................................................................................... 390
Obiekty automatyzacji i obiekty typu Variant .............................................................. 392
Automatyzacja w ochronie przed wirusami makr......................................................... 394
Jzyk Word Basic.......................................................................................................... 394

 


"

Integracja aplikacji z programem Word ............................................................................. 394


Kolekcje ........................................................................................................................ 395
Obiekt aplikacji (Application Object)........................................................................... 395
Praca z dokumentami .................................................................................................... 396
Pobieranie tekstu z dokumentu Worda ......................................................................... 399
Umieszczanie obiektw w dokumentach Worda .......................................................... 402
Integracja z programem Excel ............................................................................................ 405
Obiekt aplikacji (Application Object)........................................................................... 405
Praca ze skoroszytami ................................................................................................... 405
Modyfikacja komrek arkuszy Excela.......................................................................... 408
Odczytywanie komrek arkuszy Excela ....................................................................... 410
Komponenty palety Servers C++Buildera 5....................................................................... 410
Komponenty WordApplication i WordDocument........................................................ 411
Skorowidz wersja druga........................................................................................... 411
Biblioteka ATL i komponenty OleServer wnioski .................................................. 416
Co dalej? ............................................................................................................................. 416
Word.............................................................................................................................. 416
Excel.............................................................................................................................. 417
Pozostae aplikacje pakietu Office ................................................................................ 417
Podsumowanie .................................................................................................................... 419

Rozdzia 9. Zastosowania technologii ActiveX ......................................................421


Podstawy aktywnych obiektw serwera ............................................................................. 421
Tworzenie obiektw Request i Response za pomoc kreatora
Active Server Object Wizard ........................................................................................ 422
Kolejne wbudowane obiekty ASP: Session, Server i Application ............................... 429
Obiekty ASP i obsuga WebBrokera............................................................................. 430
Aktualizacje aktywnych obiektw serwera................................................................... 431
Diagnostyka aktywnych obiektw serwera................................................................... 432
Aktywne formularze wprowadzenie.............................................................................. 433
Tworzenie aktywnego formularza ...................................................................................... 433
Instalacja aktywnego formularza w celu wywietlenia w oknie przegldarki
Internet Explorer ................................................................................................................. 435
Opcje instalacji aktywnego formularza......................................................................... 436
Nawizywanie poczenia z aktywnym formularzem .................................................. 438
Aktywne formularze reprezentujce dane .......................................................................... 440
Pliki CAB i pakiety ....................................................................................................... 443
Aktualizacje aktywnego formularza ............................................................................. 443
Katalogi OCCACHE i Downloaded Program Files...................................................... 444
Aktywny formularz jako klient architektury MIDAS ........................................................ 445
Aktywne formularze w Delphi ........................................................................................... 447
Tworzenie szablonw komponentw za pomoc aktywnych formularzy.......................... 448

#


   
   
Programowanie powoki systemowej (shell)...................................................................... 450
Powoka podstawy ................................................................................................... 450
Odczytywanie zawartoci folderu ................................................................................. 453
Przekazywanie obiektw powoki................................................................................. 455
Podsumowanie .................................................................................................................... 460

Rozdzia 10. Prezentacja danych w C++Builderze................................................461


Prezentacja raportw........................................................................................................... 461
Na czym polega warto raportu? ................................................................................. 461
Tworzenie raportw z uyciem komponentw QuickReport ....................................... 462
Jak dziaa przegldarka raportw? ................................................................................ 463
Podsumowanie .............................................................................................................. 472
Drukowanie tekstu i grafiki ................................................................................................ 472
Drukowanie tekstu......................................................................................................... 472
Drukowanie grafiki ....................................................................................................... 480
Zaawansowane techniki drukowania .................................................................................. 485
Okrelenie rozdzielczoci drukarki ............................................................................... 485
Okrelenie rozmiarw pola wydruku ............................................................................ 485
Okrelenie fizycznych rozmiarw strony ..................................................................... 486
Okrelenie moliwoci graficznych drukarki ............................................................... 486
Obracanie czcionki wydruku......................................................................................... 487
Manipulowanie ustawieniami drukarki......................................................................... 488
Odczytanie nazwy drukarki domylnej......................................................................... 489
Wybranie drukarki domylnej....................................................................................... 490
Inicjalizacja obiektu Printer()........................................................................................ 493
Dostp do struktury DEVMODE za pomoc klasy TPrinter........................................ 493
Wykorzystanie struktury PRINTER_INFO_2 .............................................................. 494
Pozostae funkcje zwizane z podawaniem papieru ..................................................... 499
Obsuga zada wydruku ................................................................................................ 506
Przechwycenie klawisza PrintScreen............................................................................ 508
Drukowanie formularza ................................................................................................ 510
Utworzenie podgldu wydruku ..................................................................................... 510
Konwersje wsprzdnych zwizane z drukowaniem .................................................. 510
Kilka dodatkowych wskazwek.................................................................................... 512
Komponent TChart i tworzenie wykresw......................................................................... 513
Pierwsze kroki ............................................................................................................... 514
Modyfikowanie postaci wykresu w trakcie dziaania programu .................................. 515
Wymiana danych z wykresem ...................................................................................... 516
Dynamiczne tworzenie wykresw ................................................................................ 518
Drukowanie wykresw.................................................................................................. 518
Komponent TeeChart Pro i jego moliwoci................................................................ 520
Podsumowanie .................................................................................................................... 520

 


Rozdzia 11. Dystrybucja oprogramowania...........................................................523


Wersje midzynarodowe aplikacji i lokalizacja ................................................................. 523
Omwienie problemu tworzenia wersji midzynarodowych ....................................... 523
Aplikacja Localize......................................................................................................... 524
Warto zapamita.......................................................................................................... 529
Resource DLL Wizard ........................................................................................................ 530
Zasada dziaania ............................................................................................................ 530
Tworzenie biblioteki zasobw DLL.............................................................................. 531
Testowanie .................................................................................................................... 533
Inne doczane pliki i programy ......................................................................................... 534
Pliki aplikacji................................................................................................................. 534
Etapy dystrybucji........................................................................................................... 537
Ochrona praw autorskich i licencjonowanie oprogramowania .......................................... 537
Ochrona praw autorskich .............................................................................................. 538
Umowa licencyjna......................................................................................................... 539
Zabezpieczanie oprogramowania ....................................................................................... 540
Zabezpieczanie aplikacji ............................................................................................... 540
Zabezpieczanie aplikacji z uyciem komponentw niezalenych firm........................ 541
Zabezpieczanie aplikacji za pomoc komponentw innego typu................................. 542
Zabezpieczanie oprogramowania uwagi kocowe .................................................. 543
Shareware............................................................................................................................ 543
Zabezpieczanie oprogramowania shareware ................................................................ 544
Realizacja zabezpiecze typu shareware ...................................................................... 546
Metody zabezpiecze shareware w skrcie .................................................................. 546
Dystrybucja i marketing za porednictwem Internetu ........................................................ 547
Witryny WWW ............................................................................................................. 547
Pomoc techniczna.......................................................................................................... 547
Reklama......................................................................................................................... 548
Darmowe banery reklamowe ........................................................................................ 549
Akceptowanie kart kredytowych i dostarczanie kodw odblokowujcych.................. 550
Wskazwki i porady dotyczce marketingu w Internecie ............................................ 551
Podsumowanie .................................................................................................................... 552

Rozdzia 12. Sztuczki, uwagi i porady ....................................................................553


Symulowanie klawisza tabulacji klawiszem Enter............................................................. 553
Rozwizanie problemu.................................................................................................. 554
Objanienie kodu........................................................................................................... 554
Kilka puapek ................................................................................................................ 557
Symulowanie klawisza tabulacji podsumowanie..................................................... 558
Ustalanie wersji systemu operacyjnego.............................................................................. 558
Rozwizanie problemu.................................................................................................. 558
Objanienie kodu........................................................................................................... 558
Ustalanie wersji systemu operacyjnego podsumowanie.......................................... 560

$


   
   
Programowanie z wykorzystaniem liczb zmiennopozycyjnych......................................... 561
Wiadomoci oglne....................................................................................................... 561
Praca na liczbach........................................................................................................... 562
Dodawanie i odejmowanie............................................................................................ 563
Rozwinite cigi przeksztace ..................................................................................... 566
Porwnywanie danych .................................................................................................. 567
Liczby zmiennopozycyjne uwaga kocowa ............................................................ 567
Tworzenie ekranu tytuowego ............................................................................................ 567
Funkcja WinMain() ....................................................................................................... 568
Tworzenie ekranu tytuowego....................................................................................... 569
Zapobieganie uruchamianiu wicej ni jednego egzemplarza aplikacji ............................ 571
Rozwizanie problemu.................................................................................................. 571
Objanienie kodu........................................................................................................... 572
Podsumowanie .............................................................................................................. 576
Praca w trybie przecignij i upu................................................................................... 576
Rozwizanie problemu.................................................................................................. 576
Objanienie kodu........................................................................................................... 576
Jak to dziaa? ................................................................................................................. 579
Przecignij i upu podsumowanie.................................................................... 580
Wykonanie zrzutu ekranowego .......................................................................................... 581
W jaki sposb Windows radzi sobie z oknami? ........................................................... 581
Rozwizanie problemu.................................................................................................. 581
Wykonywanie zrzutw ekranowych podsumowanie............................................... 585
Wykorzystanie komponentu TJoyStick .............................................................................. 586
Tworzenie aplikacji podobnej do monitora systemu Windows.......................................... 596
Zasoby systemu Windows............................................................................................. 596
Rozwizanie problemu.................................................................................................. 598
Monitor systemu podsumowanie ............................................................................. 604
Aplikacja Soundex .............................................................................................................. 604
Implementacja ............................................................................................................... 605
Komponenty klasy TTreeView........................................................................................... 611
Podstawy ....................................................................................................................... 612
Dodawanie wzw ....................................................................................................... 612
Piktogramy wzw....................................................................................................... 615
Nawigacja w widoku hierarchicznym........................................................................... 616
Dostp do wzw ......................................................................................................... 617
Wyszukiwanie wzw.................................................................................................. 618
Wywietlanie liczby wzw podrzdnych................................................................... 620
Przemieszczanie wzw w hierarchii .......................................................................... 621
Przeciganie i opuszczanie wzw .............................................................................. 622
Modyfikacje wzw ..................................................................................................... 624
Usuwanie wza............................................................................................................. 626
Wycofywanie i zatwierdzanie operacji usuwania......................................................... 627
Zapisanie zawartoci drzewa w pliku ........................................................................... 630
Komponenty zestawu TTree podsumowanie........................................................... 631

 


%

Narzdzie do pozyskiwania ikon ........................................................................................ 631


Aplikacja naladujca dziaanie Eksploratora Windows.................................................... 639
Funkcje i interfejsy powoki Windows ......................................................................... 639
Implementacja ............................................................................................................... 640
WinExplorer podsumowanie.................................................................................... 645
Usugi Windows NT ........................................................................................................... 646
Program SendMsg ......................................................................................................... 647
Usuga Stickums............................................................................................................ 649
Program Stickem ........................................................................................................... 652
Usugi NT podsumowanie........................................................................................ 653
Kryptografia........................................................................................................................ 653
Implementacja ............................................................................................................... 654
Szyfrowanie wiadomoci .............................................................................................. 657
Deszyfrowanie wiadomoci .......................................................................................... 661
Zegar soneczny .................................................................................................................. 664
Specjalny dodatek dla niedowiarkw............................................................................ 669
Podsumowanie .................................................................................................................... 670

Rozdzia 13. Zastosowanie praktyczne aplikacja World Wave Statistics ......671


Program World Wave Statistics.......................................................................................... 671
Analiza kodu rdowego ................................................................................................... 672
Plik nagwkowy math.h............................................................................................... 673
Plik nagwkowy mapunit.h.......................................................................................... 673
Plik nagwkowy wavedata.h........................................................................................ 673
Plik rdowy about.cpp................................................................................................ 674
Analiza kodu moduu TMainUnit....................................................................................... 675
Ulepszenia........................................................................................................................... 679
Podsumowanie .................................................................................................................... 681

Dodatek A Spis treci tomu I...................................................................................683


Dodatek B Skorowidz tomu I...................................................................................695
Skorowidz..................................................................................................................743

Integracja C++Buildera z pakietem Microsoft Office daje moliwo konstruowania rnorodnych przydatnych aplikacji od prostych programw uytkowych pomocnych
w wypenianiu codziennych obowizkw biurowych po rozbudowane zestawy oprogramowania wykorzystujce pakiet Microsoft Office jako kolekcj przydatnych komponentw edycyjnych i kalkulacyjnych. W rozdziale zostan przedstawione przesanki integrowania tworzonych aplikacji z pakietem Office i sposoby realizacji tego zadania.

Jedn z korzyci stosowania pakietu biurowego jest moliwo zaoszczdzenia czasu


i wysiku programisty. Wielu z nas uszczliwiby nawet znikomy uamek czasu zaoszczdzonego dziki wykorzystaniu operacji wycinania i wklejania.
Microsoft Office umoliwia dalsze uproszczenie wielu czynnoci dziki wykorzystaniu
wbudowanego jzyka programowania Visual Basic for Applications tworzenie
skrtw, automatyzacj codziennych czynnoci. Dzisiejsze wytnij i wklej moe by jutro
automatycznym wymienianiem caych akapitw.
Poza moliwoci dostosowania pakietu Microsoft Office do wasnych potrzeb, bardzo interesujco zapowiada si fakt, e Office jest take serwerem automatyzacji OLE. Uprzejmi
panowie z Microsoftu pozostawili nam do dyspozycji wszystkie haki i furtki, pozwalajc nam kontrolowa pakiet Office i wykorzystywa go we wasnych programach.
Oznacza to, e moemy w prosty sposb zapewni naszemu programowi wydajno
i funkcjonalno procesora tekstu. Uywamy po prostu programw ju zainstalowanych
przez uytkownika. Moemy uruchamia jawnie pakiet Office lub przej nad nim
kontrol i wykorzystywa go w tle. Jeli kiedykolwiek marzye o otrzymywaniu ze
swoich wasnych programw raportw w standardowym formacie, teraz moesz to
osign. Chocia Word nie przewysza komponentu  w dziedzinie atwoci
programowania, moesz np. przesa dokument w formacie Worda poczt elektroniczn,
majc pewno, e odbiorca za pomoc Worda go odczyta.




 

  
  
Integracja wasnych aplikacji z pakietem Microsoft Office daje nastpujce korzyci:
1. Dostp do uznanych programw i interfejsw rozszerzajcych moliwoci naszych
wasnych aplikacji.
Jeli chcesz udostpni uytkownikom arkusz kalkulacyjny lub edytor tekstw
jako cz swojego programu, nie musisz ju sam tworzy lub zdobywa
odpowiednich komponentw. Uytkownicy Twojego programu doceni wygod
tego rozwizania, pracujc z dobrze znanymi sobie aplikacjami.
2. Dostp do popularnych formatw dokumentw.
Nie zajmuj si ju formatami plikw dokumentw. Zamiast szuka niezbdnych
informacji dotyczcych sposobu czytania i zapisywania powszechnie stosowanych
plikw, zrb uytek z ju istniejcego kodu, ktry to potrafi. Zastosuj go
w swojej aplikacji.
3. Automatyzacja zada.
Jeli kiedykolwiek musiae wykona t sam operacj na wielu dokumentach, wiesz,
jak wiele wysiku trzeba woy w wykonanie zadania, otwarcie nastpnego
pliku, wykonanie zadania, otwarcie nastpnego pliku... Dziki automatyzacji
moemy przygotowa dan operacj, wybra pliki do przetwarzania
i uruchomi cao.

Kiedy ju wiemy, e moemy integrowa wasne aplikacje z Microsoft Office, musimy


odpowiedzie sobie na pytanie: jak to zrobi? Na szczcie Microsoft Office udostpnia
kilka interfejsw, zarwno w postaci serwerw automatyzacji OLE, jak i obiektw COM.
C++Builder oferuje dwie moliwoci przejcia tych usug wykorzystanie komponentu

  lub obiektw automatyzacji.
Wybr jednej z tych moliwoci uzaleniony jest od planowanego zakresu wykorzystania pakietu Office. Komponent 
  jest znakomitym wyborem, jeli zamierzasz osadzi jedn z aplikacji Office w swoim programie w taki sposb, aby pojawiaa si jako jego cz. Z drugiej strony, jeeli potrzebujesz wikszej kontroli nad
dziaaniem takiej hybrydowej aplikacji, uyj
, aby pozyska obiekty automatyzacji zaimplementowane w ramach pakietu Office.

 
  
Wykorzystanie obiektu 
  to najatwiejszy sposb integracji pakietu Office
z utworzon aplikacj. Utwrz now aplikacj i umie w niej (na rodku formularza
gwnego) egzemplarz komponentu 
  (zakadka System) . Rozszerz go tak,
aby pozosta okoo 50-punktowy margines z wszystkich czterech stron elementu.
Kliknij teraz dwukrotnie obiekt
 . Zostanie otwarte okno dialogowe Wstaw
obiekt, ktre powinno wyglda tak, jak na rysunku 8.1.

    


 !  !

 "  #

$



Okno dialogowe
Wstaw obiekt
C++Buildera

Wybierz pozycj Dokument programu Microsoft Word i kliknij przycisk OK.


Przygotowania s zakoczone skompiluj i uruchom program. Powiniene zobaczy
formularz z pustym panelem na rodku. Kliknij dwukrotnie panel po chwili okno
ulegnie zmianie. Menu i pozostae elementy Worda pojawi si w grnej czci formularza, a panel zostanie zastpiony dokumentem programu Word. Kiedy zakoczysz eksperymenty, zamknij program i wr do C++Buildera.
Prawym przyciskiem myszy kliknij obiekt
  i wybierz z menu polecenie
Delete Object (usu obiekt). Spowoduje to odczenie Twojej aplikacji od programu
Word. Poniej obiektu
  umie trzy przyciski nazwane Button_Word,
Button_Excel oraz Button_PPoint i etykietowane, odpowiednio: Word, Excel i PowerPoint. Dodaj kod poniszego wydruku do metod
  przyciskw. Przykadowy
projekt zawierajcy poniszy kod znajdziesz na pycie CD-ROM doczonej do ksiki,
w katalogu TOleContainer.
 

Program Word-Excel-PowerPoint

 
        !" #$ %
&
  '() !"   *+ ,%  '()+. ! $/0%1

23 
     23   !" #$ %
&
  '() !"  23 */,%  '()+. ! $/0%1

40 4 
     44   !" #$ %
&
  '() !"  40  */0,%  '()+. ! $/0%1

$%


 

  
  
Kiedy ju wprowadzisz powyszy kod, skompiluj i uruchom program. Tym razem podwjne kliknicie panelu wygeneruje wyjtek
     
 
 (niedozwolona operacja na pustym panelu). Kliknij przycisk OK, aby wznowi prac.
Zamiast klika w obszarze panelu, sprbuj teraz nacisn jeden z trzech przyciskw
umieszczonych pod nim. Po klikniciu przycisku Excel lub Word panel zmieni si
w odpowiedni dokument, a formularz otrzyma pasek narzdziowy odpowiedniej aplikacji (patrz rysunek 8.2).




Arkusz Excela
w programie
OleContainer

Kliknicie przycisku PowerPoint zmienia panel w pusty slajd, ale na formularzu nie
pojawiaj si paski narzdzi ani menu. Dlaczego? Ot PowerPoint zosta zaimplementowany inaczej ni Word i Excel.

    


Zastosowanie obiektw automatyzacji jest metod bardziej wszechstronn ni integracja z wykorzystaniem egzemplarza klasy 
 . Metoda ta umoliwia duo
lepsz kontrol nad kadym obiektem i jego waciwociami. Jedyn jej wad jest to, e
wraz ze wzrostem moliwoci sterowania obiektami zwiksza si zoono ich uytkowania i programowania.
Kady obiekt automatyzacji posiada pewn liczb waciwoci i metod. Kiedy tworzysz
obiekt automatyzacji, uzyskujesz dostp do jego waciwoci i metod, podobnie jak uzyskujesz dostp do waciwoci i metod obiektu z chwil otrzymania wskanika do niego.
C++Builder oferuje dwa podstawowe sposoby stosowania automatyzacji: wykorzystanie bibliotek typw (Type Library) oraz obiektw automatyzacji OLE. Biblioteki typw
to pliki bibliotek zawierajce opis interfejsw udostpnianych przez aplikacj i wszelkie
typy, struktury i klasy umoliwiajce ich eksploatacj. Zalet wykorzystania bibliotek
typw jest moliwo kontroli typw, wad konieczno ich utworzenia za pomoc
polecenia menu Import Type Library, lub te zdobycia w inny sposb. Ponadto ich zastosowanie oznacza wyduenie czasu kompilacji projektu.

    


 !  !

 "  #

$&

Wykorzystanie obiektw automatyzacji OLE wymaga znajomoci nazw przernych


interfejsw oraz udostpnianych przez nie waciwoci i metod. Stosowanie obiektw
automatyzacji OLE uniemoliwia kontrol typw, poza tym wymusza na programicie
konieczno posiadania jakiego rodzaju dokumentacji na temat automatyzowanej aplikacji. Jednake ich stosowanie bardzo przypiesza kompilacj obiekty te nie uywaj dodatkowego kodu ani plikw bibliotecznych wymaganych w przypadku bibliotek typw.
Dla uproszczenia, w rozdziale bdziemy uywa gwnie obiektw automatyzacji OLE.
Zwrcimy te uwag na udogodnienia oferowane przez C++Buildera w przypadku
wykorzystania bibliotek typw. Bdziesz wic potrzebowa dobrej dokumentacji. Na
szczcie pakiet Office zawiera wasn, wbudowan dokumentacj.
Uruchom program Word i wywoaj edytor Visual Basica (nacinij Alt+F11 lub wybierz
z menu pozycj Tools/Macro/Visual Basic Editor (odpowiednio: Narzdzia/Makro/Edytor
VisualBasic w wersji polskiej pakietu Office). Zostanie wywietlony edytor Visual Basica, zawierajcy pliki pomocy interfejsu programu Word dla Visual Basica o ile je
zainstalowae. Jeli nie zrb to teraz. Wpisz w polu index (indeks) sowo  
  i zlokalizuj opis obiektu    programu Word. Widok ekranu powinien by
zbliony do tego z rysunku 8.3.



Okno pomocy edytora


Visual Basic for
Applications

Moesz uywa tej metody w celu uzyskania niezbdnych informacji o waciwociach,


metodach i wyjtkach interesujcych Ci obiektw. Technika ta dziaa ze wszystkimi
aplikacjami pakietu Microsoft Office, wic jeli szukasz informacji o obiektach pakietu
Office, znajdziesz je wanie tu.

$'


 

  
  

       


Wykorzystanie obiektw klasy  C++Buildera bardzo uatwia stosowanie obiektw
automatyzacji. Obiekty  nie tylko mog zawiera obiekty automatyzacji, ale
rwnie zawieraj pewn liczb procedur uatwiajcych ich wykorzystanie.
Najbardziej uytecznymi w pozyskiwaniu i manipulowaniu obiektami automatyzacji
metodami s:
n 

n !"

n
# 
n
$ 
n
$ !
n
$ %

 wraz z !"
 su, odpowiednio: do stworzenia i pobrania
aktywnego obiektu automatyzacji. Dziaanie pozostaych funkcji jest zgodne z ich nazwami. Warto podkreli, e funkcje
#  ,
$  ,
$ %
oraz
$ ! s w zasadzie otoczk (ang. wrapper) dla metody & .

Metoda & uywana jest przez C++Builder do uruchomienia procedury lub funkcji
lub do pozyskania lub ustawienia wartoci waciwoci. W celu uzyskania dostpu do
danej funkcji obiektu automatyzacji odwouje si ona do czterech klas:
n # 
n $ 
n $ !
n $ %

Klasa #  uywana jest do okrelenia funkcji, $ ! suy do pozyskania wartoci waciwoci itd. Obiekty tych klas powinny by powoane przed ich uyciem w & i musz zosta odwieone za pomoc ich metod '( przed ponownym uyciem. Przyjrzyjmy si temu mechanizmowi, zanim przejdziemy do bardziej
szczegowej analizy kilku aplikacji.
Stwrz now aplikacj, umie na formularzu przycisk, nazwij go ) *+, 
i opatrz etykiet Uruchom Worda. Uzupenij kodem z wydruku 8.2 metod
 
przycisku. Wydruk ten jest dostpny na doczonej do ksiki pycie CD-ROM projekt przykadu automation_objects.bpr znajduje si w folderze AutomationObj.
 


Uruchomienie programu Word


   5 6 /   !" #$ %
&
. 0 . 0  -

    


 !  !

 "  #

$

. 0 /  . 0  70 8.  !"  0 *  %0  80 *4   9  %0  *4    5%0 *4   $ .  !, . % %1

Ten sam fragment kodu, ale z wykorzystaniem metody & , zawarty jest na wydruku
8.3. Stwrz nowy przycisk o nazwie ) *+, &, opatrz go etykiet Uruchom Worda (Exec) i uzupenij jego metod
  kodem zamieszczonym na wydruku 8.3.
 


Wywoanie programu Word z u%yciem metody Exec()


   5 6 / 23   !" #$ %
&
. 0 . 0  . 0 /  . 0  7  +  + %-((+  " " + 
  5+  5%-((+  " " 5
4   $.  !   .  !%-((+  "0:; 0; .  !  
0 8.  !"  0 *  %0  80 *23 + %0  *23 5+ %.  !   << 0 *23 .  !   %1

Rysunek 8.4 przedstawia program LaunchWord w czasie dziaania.





Program
LaunchWord
w czasie dziaania

Pozostao nam ju tylko sprawdzi, czy plik nagwkowy utilcls.h jest wczony do
programu. Uywanie obiektw zmiennego typu w automatyzacji powoduje powoanie
egzemplarza klasy  '(, zdefiniowanej wanie w pliku utilcls.h. Dopisujc wic
w jednym z plikw nagwkowych lini
=  <  */)

$(


 

  
  
unikniesz ewentualnych problemw. Skompiluj i uruchom program. Kiedy pojawi si
formularz, kliknij przycisk Uruchom Worda (Exec). Spowoduje to uruchomienie nowej kopii programu Word (niezalenie od tego, czy jest ju uruchomiony jaki egzemplarz programu Word) z pustym dokumentem, czy te nie.

        


Automatyzacja ma wielk zalet udostpnia programicie uniwersalne mechanizmy,
a uytkownikowi daje moliwo nieinteraktywnego i masowego wykonywania pospolitych zada. Ujemn cech automatyzacji jest potencjalne zagroenie wirusami
otwierajc dokument programu Office zawierajcy wirusa makrodefinicji, aplikacja
zakada, e wiesz o jego istnieniu i nie broni si przed otwarciem dokumentu.
Jeeli zakadasz wykorzystanie automatyzacji w dokumentach powszechnie dostpnych,
infekcja dokumentu wirusem makrodefinicji stanowi realne zagroenie. Zadbaj o aktualizacj programu antywirusowego. Aplikacje pakietu Office dopuszczaj otwarcie
zainfekowanego dokumentu, ale dobry program antywirusowy powinien uniemoliwi
uycie takiego pliku.

 ! 


Wydany przez Microsoft program Word 97 udostpnia pewne udogodnienie umoliwiajce tworzenie maych programw rozszerzajcych funkcjonalno aplikacji z wykorzystaniem nowego jzyka Word Basica. Mimo e pniej, w edycji 98 programu
Word, zastpiono go jzykiem Visual Basic for Applications, Microsoft pozostawi
w kolejnych wersjach programu Word dziaajcy interfejs jzyka Word Basic.
Interfejs ten, dostpny za porednictwem obiektu automatyzacji  -(, nie oferuje
takiego zakresu funkcji jak VBA, jednak w pewnych sytuacjach doskonale si sprawdza. Powiniene rozway jego wykorzystanie, jeli nie masz pewnoci, ktrej wersji
pakietu Office bd uywali odbiorcy tworzonego przez Ciebie oprogramowania.
Jeli przypuszczasz, e moe to by Office 97, uyj (ze wzgldu na kompatybilno) jzyka
Word Basic zamiast VBA. Dziki temu zyskasz pewno, e Twojego oprogramowania
bd mogli uywa zarwno uytkownicy wczeniejszych, jak i nowszych wersji
pakietu Office.

Microsoft Office to duy i zoony pakiet oprogramowania, dajcy programistom dostp


do niektrych swoich wewntrznych interfejsw. Czytajc ten podrozdzia, dowiesz si,
w jaki sposb mona zatrudni te interfejsy do wykonywania prostych zada, takich jak
wczytywanie, zapisywanie i tworzenie nowych dokumentw programu Word.

    


 !  !

 "  #

$

" 
Zgodnie z nazw, kolekcja (ang. collection) uywana jest w programie Word do przechowywania grup obiektw. Kada kolekcja posiada dwa kluczowe elementy: waciwo 
 oraz metod .. Waciwo  informuje, ile obiektw przechowywanych
jest w kolekcji, a metoda . pozwala pobra z kolekcji referencj do danego elementu,
przez okrelenie jego numeru lub nazwy (jeli obiekt takow posiada). Niektre kolekcje posiadaj te inne metody i waciwoci zwikszajce ich moliwoci. Znakomitym przykadem jest kolekcja / (, ktra udostpnia metod  tworzc nowy dokument.

   #   $


Obiekt aplikacji jest rdzeniem programu Microsoft Word i podstawowym obiektem
programw chccych korzysta z funkcji Microsoft Word . Po stworzeniu lub pozyskaniu obiektu aplikacji moemy uzyska referencje do poszczeglnych kolekcji lub waciwoci wymaganych podczas wykonywania planowanych zada.
S dwa sposoby uzyskania obiektu aplikacji programu Word: stworzenie nowego obiektu
lub pozyskanie referencji do ju istniejcego egzemplarza. Obiekty typu 
udostpniaj dwie metody zwracajce obiekt aplikacji: 
 i !"

 . 
 tworzy nowy egzemplarz obiektu automatyzacji, natomiast
metoda !"
 pozwala uzyska referencj do jednego z ju istniejcych
obiektw automatyzacji. Obie metody w przypadku wystpienia bdu generuj wyjtek

%( .
Aby otrzyma obiekt automatyzacji programu Word, zastosuj identyfikator  - 
 . Przy pierwszym odwoaniu do obiektu aplikacji czsto wskazane jest wykorzystanie (jeli to moliwe) istniejcego egzemplarza obiektu. Pozwala to unikn uruchamiania kilku kopii tej samej aplikacji i moe przyspieszy dziaanie Twojego program,
poniewa nie bdzie on musia czeka na zaadowanie czci pakietu Office.
Stwrz now aplikacj i dodaj do niej przycisk ) *+, , z etykiet Uruchom
Worda. Uzupenij metod
  przycisku kodem zamieszczonym na wydruku 8.4.
 


Program Launch Word


   '6 /   !" #$ %
&

&
 0 8. 95  !"  0 *  %1
  / >%
&
4 ?!
   "@ 77

! 
 "  7  
 0 : A*BC 0
D0 ! *

&
 0 8.  !"  0 *  %1
  / >%

$)


 

  
  
&
B C0
D! 
 "  7  
5  ()E73 ! 
 "   @7 ,:@,EF
EGB2HHH%1
1
 0 *4   $ .  !, . % %1

Kod rdowy tego programu zawarty jest w projekcie example3.bpr, umieszczonym


w folderze +,  doczonej do ksiki pyty CD_ROM.
Dodaj te do klasy definiujcej formularz zmienn:
.  0 -

Skompiluj i uruchom program, a kiedy pojawi si jego formularz gwny, kliknij przycisk Uruchom Worda. Jeli w tle uruchomiony jest program Word, nic si nie wydarzy
(nie dziaamy jeszcze w aden sposb na obiekcie aplikacji). Jeli jednak Word nie jest
uruchomiony, w momencie wygenerowania wyjtku C++Builder zatrzyma program
i poinformuje nas o tym. Zdarzenie to nie wystpi w przypadku uruchamianiu programu
spoza rodowiska uruchomieniowego C++Buildera.

%     
Po uruchomieniu kopii programu Word warto zrobi z jego pomoc co poytecznego.
Zobaczmy wic, w jaki sposb przebiega praca z dokumentami programu Word.
Po uzyskaniu interfejsu do aplikacji Worda mamy dostp do jego kolekcji dokumentw.
Jest ona obiektem rzdzcym si wasnymi prawami i zawierajcym waciwoci i metody pozwalajce tworzy, otwiera i zapisywa dokumenty, przeglda zawarto
kolekcji itp.
Obiekt aplikacji udostpnia kolekcj dokumentw w nastpujcy sposb:
  8 0 *4   9 + %-

Za chwil dodamy powysz lini do naszej aplikacji.

 
  
W celu dodania nowego dokumentu do kolekcji stosujemy metod  . Metoda ta
przyjmuje kilka opcjonalnych parametrw pozwalajcych lepiej kontrolowa jej dziaanie.
Do utworzenia zwykego pustego dokumentu wystarczy sama metoda  . Tworzenie
nowego dokumentu na podstawie szablonu wymaga przekazania nazwy tego szablonu.
Dodaj nowy przycisk do aplikacji i nazwij go ) * / . Opatrz go etykiet Nowy Dokument i uzupenij jego metod
  kodem zamieszczonym na
wydruku 8.5.

    


 !  !

 "  #

$*

 


Tworzenie nowego dokumentu


   ' +   !" #$ %
&
. /  7    8 0 *4   9 + %/  8  *   5%  8  *4   9 %$/0E7 5 $ 7%0 I  I ?0%%1

Poniewa wprowadzilimy now zmienn, dodaj do definicji formularza nastpujc lini:


.   -

Skompiluj i uruchom aplikacj. Na ekranie powinno pojawi si okno przedstawione na


rysunku 8.5. Kliknij przycisk Nowy Dokument zostanie wygenerowany wyjtek z komunikatem  ( 0    (zmienna nie wskazuje
obiektu automatyzacji). Przed przystpieniem do jakichkolwiek dziaa na obiekcie
aplikacji Word musimy sprawdzi, czy uzyskalimy do niego referencj. Pozwl aplikacji kontynuowa, a nastpnie kliknij przycisk Uruchom Worda. Dopiero wtedy kliknij
po raz drugi przycisk Nowy dokument. Nowy dokument zosta dodany do aplikacji
Word, a Ty zostae powiadomiony, ile dokumentw aktualnie jest otwartych to czsto bardzo przydatna informacja.



Aktualny wygl,d
programu Launch
Word

  
Zapisywanie dokumentw jest kolejn czsto wykonywan operacj. Aby zapisa dokument, mona wykorzysta jedn z metod zapisu lub metod %"( dokumentu.

$


 

  
  
Dokument mona zapisa na trzy sposoby: zapisa pojedynczy dokument, zapisa wszystkie
otwarte dokumenty lub zapisa wersj dokumentu. To, ktry sposb zostanie zastosowany, zaley od obiektu bdcego wacicielem metody. Obiekt /  lub ( 
zapisuje kopi samego siebie, natomiast obiekt / ( zapisuje ca kolekcj otwartych dokumentw.
Zademonstrujemy teraz dziaanie funkcji zapisu. Dodajmy do naszego formularza nowy
przycisk ) *%" etykietowany napisem Zapisz i wypenijmy poniszym kodem (wydruk 8.6) jego metod
 .

 


Zapisywanie dokumentu
   'J $  !" #$ %
&
. /  /  8 0 *4   9 5  + %/  *4    $%1

Skompiluj i uruchom aplikacj, po czym wykonaj cykl uruchamiania programu Word


i tworzenia nowego dokumentu. Kliknij przycisk Zapisz. Word powinien wywietli
okno dialogowe Save As1, poniewa nie zostaa dotychczas okrelona nazwa dokumentu.
Zamknij aplikacj i powr do C++Buildera.
Dodaj kolejny przycisk, ) *%"(, z etykiet Zapisz jako i umie poniszy kod wewntrz metody
  przycisku.
 

Zapisywanie dokumentu pod okre.lon, nazw,
   'J $5  !" #$ %
&
. /  /  8 0 *4   9 5  + %/  *4    $5, KK
  "* %1

Skompiluj i uruchom aplikacj. Tym razem po uruchomieniu programu Word i utworzeniu nowego dokumentu kliknicie przycisku Zapisz jako spowoduje zapisanie dokumentu pod nazw zdefiniowan w wywoaniu metody %"(.
Metoda %"( przyjmuje wicej parametrw, wic jeli chcesz jej uywa w penej postaci, rozwa bezporednie zastosowanie metody & (
$  jest otoczk
dla metody & ).

 
  
Poniewa umiemy ju tworzy i zapisywa dokumenty programu Word, moe przyda
si nam moliwo pniejszego ich otwierania. Suy do tego metoda
 kolekcji  
(.
1

Zapisz jako... w polskiej wersji MS Office przyp. tum.

    


 !  !

 "  #

$$

Jeli znamy nazw dokumentu, moemy j przekaza do metody


. Dodaj do formularza przycisk ) *
 i opatrz go etykiet Otwrz dokument. Sprbujemy
z jego pomoc otworzy wczeniej zapisany dokument.
Wypenij metod
  nowego przycisku kodem prezentowanym na wydruku 8.8.
Nastpnie skompiluj i uruchom aplikacj. Po uruchomieniu programu Word kliknij
przycisk Otwrz dokument. Word zaaduje uprzednio zapisany dokument.
 

Otwieranie dokumentu
   'J   !" #$ %
&
. /    8 0 *4   9 + %/  8  *   , KK
  "* %1

%     


Umiemy ju wykonywa podstawowe operacje na dokumentach programu Word
tworzy je, zapisywa i odczytywa. Teraz zajmiemy si czym bardziej uytecznym
nauczymy si wydobywa informacje z dokumentu programu Word. Stworzymy
aplikacj, ktra otworzy dokument, wydobdzie z niego list sw i umieci j (posortowan) w nowym dokumencie.
Do utworzenia listy sw potrzebne s dwa elementy: obiekt ' (zakres) i kolekcja
, (. Obiekt ' okrela, ktra cz dokumentu jest aktualnie uywana (w naszym
przypadku cay dokument). Ustawienie go pozwoli nam uzyska kolekcj sw zawartych w kolekcji , (.
Obiekt ' ustawia pozycj znaku pocztkowego i kocowego pokrywanego przez siebie tekstu. Jeeli nie okrelisz jawnie pocztku i koca zakresu, obejmie on cay dokument. Aby oznaczy wybran cz dokumentu, zdefiniuj samodzielnie punkty pocztkowy i kocowy (np. 20 znakw od pocztku dokumentu) lub wykorzystaj fakt definiowania
obiektu ' w innych obiektach skadowych dokumentu. Wydruk 8.9 prezentuje kilka
fragmentw kodu s to przykady rnych sposobw wybierania zakresu.
 


Zaznaczanie zakresu, zaznaczanie akapitu


4! 
! H7!""@  : 
  78  *   H7%L07A  0
MM

  78  *   H7, . %N, . %MM%O

 7  
  8  *4   9 4 7 /%  8  *   G, . %P% 78  *4   9 H7%  78  *   H7, 7*4   9 $ %,
 7*4   9 2%%-

(%%


 

  
  
Po okreleniu zakresu we wntrzu dokumentu naley uzyska referencj do kolekcji
, (. Dokonamy tego, odczytujc warto waciwoci , ( z zakresu objtego aktualnie aktywnym obiektem '.
Bezporednio po zdobyciu referencji do kolekcji , ( moemy uzyska list sw zawartych w dokumencie. W tym celu utworzymy program pobierajcy aktualnie otwarty
dokument programu Word. Stwrz now aplikacj zawierajc komponent () &
(pozostaw niezmienion nazw komponentu) i przycisk o nazwie ) * , (,
opatrzony etykiet Wczytaj sowa. Wypenij metod
  przycisku kodem prezentowanym na wydruku 8.10.
Przykad ten znajduje si w projekcie example4.bpr, umieszczonym w folderze LoadWords na doczonej do ksiki pycie CD-ROM.

 


Program Wczytaj sowa


   '6   !" #$ %
&
.  0 .   .  0 70  7 3
&
 0 8. 95  !"  0 *  %1
  / >%
&
((  "  /  Q
R
,0 ;0 "@  
$/0E7 S  / 7    ?!"0 
:0 %  1
((S
 7 7  
  8 0 *4   9 5  + %((4!  0
 /:?0
 !"" ;  : 
 0 8  *4   9  %((G:?00 T
0  8 0 *4   9 %((4
 ;0
   6 3'
  38N- 3<0  - 3II%
&
6 3'()G()5  0 *   G, . % 3%%1
1

Skompiluj i uruchom aplikacj, nastpnie uruchom program Word. Dopisz kilka przypadkowych sw do nowego dokumentu i kliknij przycisk Wczytaj sowa w swojej aplikacji. Lista powinna wypeni si wprowadzonymi przez Ciebie sowami.

    


 !  !

 "  #

(%&

Zauwa, e oprcz sw pobrae rwnie znaki interpunkcyjne (jeeli je wprowadzie)


oraz pewne znaki sterujce. Word zazwyczaj traktuje je tak jak zwyke sowa, co moe
uatwi lub utrudni wykonanie zadania w zalenoci od jego rodzaju.
Jeli sprbujesz wprowadza wiksze dokumenty, zauwaysz, e pobranie wszystkich
sw jest procesem dugotrwaym. To niekorzystna cecha tej metody. Jeeli bowiem
pobieramy z dokumentu kolejno pojedyncze sowa, skolekcjonowanie wszystkich potrwa dusz chwil.
Na szczcie Word udostpnia pewne usprawnienia eliminujce konieczno przegldania caego dokumentu sowo po sowie w poszukiwaniu akapitu czy innego znacznika.
Za pomoc obiektu %   moemy uzyska dostp do caego tekstu dokumentu
jednoczenie jako pojedynczego elementu i skopiowanie tego tekstu do standardowych
komponentw C++Buildera, takich jak np. + (patrz rysunek 8.6).



Kontrolka RichEdit1
wy.wietla zawarto.
tego rozdziau

Wr do aplikacji, dodaj do formularza nowy przycisk o nazwie ) *#( 


z etykiet Szybkie Wczytanie. Dodaj te obiekt +. Umie kod z wydruku
8.11 w metodzie
  przycisku. Po uruchomieniu programu kliknij przycisk Szybkie
Wczytanie po chwili zobaczysz zawarto swojego dokumentu w oknie kontrolki 
+. Po skopiowaniu tekstu do standardowych kontrolek C++Buildera wydzielenie
z niego poszczeglnych sw bdzie znacznie szybsze i atwiejsze ni pobieranie z dokumentu kadego sowa z osobna.
 

Program Szybkie Wczytanie


   '6  !" #$ %
&
.   .  0 .  0 .    
&
 0 8. 95  !"  0 *  %1
  / >%
&
((  "  /  U0 ;0   
R
  A

(%'


 

  
  
$/0E7 S  / 7    ?!"0 
:0 %  1
((4! 
  0  7  
  8 0 *4   9 5  + %((O

 : 
  *4    $ %   8 0 *4   9 $  %H /2 '() %H /2 '()38   *4   9 3%1

&  '    


Potrafimy ju wykonywa podstawowe operacje pobierania tekstu dokumentu. Naszym
kolejnym zadaniem bdzie umieszczanie tekstu w dokumencie programu Word. Dysponujc list sw, nasz kolejny program utworzy nowy dokument i umieci w nim sowa
z listy, w porzdku alfabetycznym. Dokonamy tego z pomoc naszego dobrego znajomego obiektu '.

        


Istniej dwie podstawowe metody wstawiania tekstu do dokumentu: .()0  oraz
.(0. Wstawiaj one tekst, odpowiednio: na pocztek i na koniec zakresu '.
Rozszerzaj te zakres tak, aby pokrywa rwnie nowo wstawiony tekst. Musisz wic
podj decyzj o miejscu wstawiania nowych wierszy i wywoa odpowiedni metod.

        


Mona rwnie wstawia do dokumentu elementy takie jak nowe akapity, podziay
stron i inne informacje formatujce. Osobne metody umoliwiaj dodawanie tabel, rysunkw itp. Przeledmy proces dodawania tabelki do dokumentu.
Jak wspomniaem, w procesie wprowadzania tekstu wykorzystywane s obiekty zakresu
dodawanie pozostaych obiektw przebiega w podobny sposb. Rnica polega na
tym, e zamiast obiektu ' uyjemy kolekcji, do ktrej nowy obiekt miaby nalee,
a wywoanie metody  zastpi nowym elementem aktywny zakres, o ile ten nie zostanie odpowiednio zamknity. Zamknicie zakresu polega na zrwnaniu punktu startowego z kocowym punktem zakresu, co chroni przed moliwoci utraty treci dokumentu
podczas wstawiania nowych obiektw.
Kod tworzcy tabelk na kocu dokumentu zamieszczony jest na wydruku 8.12.
 


Tworzenie tabelki
7 08V7 8M((4! 

 

    


 !  !

 "  #

(%

  8 0 *4   9 5  + %  78  *   H7%((O "
 
  7*4    , . %N%((0!A
 !8  7*4   9 !% !8 !*   5,  7, . % 0,
. % %-

Powyszy kod pobiera aktualny zakres aktywnego dokumentu i zamyka go tak, e punkt
wstawienia nowych obiektw znajduje si na jego kocu. Pominicie zera lub zastpienie go jedynk zmieni punkt wstawienia na punkt pocztkowy zakresu. Nowy obiekt
  dodawany jest do kolekcji  (. Zakres jest uywany jako parametr funkcji .
Pokazujemy w ten sposb metodzie  dane miejsce wstawienia tabelki nie dodajemy jej bezporednio do zakresu.

   
Wczeniej wspomniaem, e napiszemy program wstawiajcy do nowego dokumentu sowa
zawarte w innym dokumencie. Programem tym bdzie program Skorowidz (Vocabulary)
(patrz rysunek 8.7). Moesz go znale na pycie CD-ROM doczonej do tej ksiki, w folderze VocabA. Projekt zawierajcy przykad jest opatrzony nazw vocab_proj.bpr.



Program Skorowidz

Program ten aduje dokument Worda, pobiera ca jego zawarto do obiektu klasy
(%' i wydziela z niej sowa, szukajc spacji i innych znakw podziau. Po odnalezieniu sowa umieszcza go w posortowanej licie sw. Z listy tej automatycznie eliminowane
s duplikaty. Nastpnie budowana jest tabelka ta cz programu najbardziej nas interesuje (patrz wydruk 8.13).
 


Wstawianie sw do tabelki
  . ! H   6  .  ,6 3#!%
&
.  !. /  7-

(%(


 

  
  
. / !.   .  .   77 8W7 08 !()G()I U'% 70 7/  7/  04   G 5 G 5 %-((4   23
((S0
 ! 
/  78 *   H7%((4! 
 "A!

 
 !8/  7*4   9 !%((S0?
0@!A
0  "@ @7:?0 :0
/ !8 !*   5,/  7, . %  0I'%,
 . % %  8/ !*   , . %', . %'% 8/ !*   , . %', . % %  *4    E 7, %(( :!
  78  *4   9 H7%  7*23 G 5 <<$:0
XI+ 7'() BIX%/  8'/  08P((0:0
  >
  0 8N-0 <!()G()-0 II%
&
  8/ !*   , . %/  0,
 . %/  %  78  *4   9 H7%G 5 * 5 7 %  7*23 G 5 <<!()G()$ 7Y0 Z%/  II  /  ) %
&
/  0II/  8'1
1
1

Ponadto program formatuje tabelk w taki sposb, e nagwek kolumny zawiera


nazw przetwarzanego pliku dokumentu. Dokonywane jest to za porednictwem kolekcji
 ( (komrki), bdcej skadow tabelki. Do danej komrki tabeli mona si odwoa,
okrelajc numer wiersza i kolmny komrki (wiersze i kolumny tabeli s numerowane od 1).

    


 !  !

 "  #

(%

Obiekt  posiada metod 1', suc do scalania podanego zakresu komrek.


W programie scalimy pierwsze cztery komrki, aby uzyska nagwek tabeli.
Kada komrka posiada wasny zakres. Moe on by uywany tak jak kady inny
obiekt zakresu. Moesz na przykad bez problemu stworzy rekursywnie tabelk zawierajc w lewej grnej komrce tabelk itd. Kopoty z tak konfiguracj zaczynaj si
dopiero w momencie wstawiania tekstu do komrki potrzebujemy wtedy referencji
do obiektu  ( i jego zakresu. Jest to bardziej uciliwe ni problematyczne, ale mona na tym utkn.

Teraz zajmiemy si inn aplikacj pakietu Microsoft Office programem Excel. Podobnie jak Word, Excel udostpnia wikszo swoich mechanizmw przetwarzajcych
jako obiekty automatyzacji. I, podobnie jak Word, uywa kolekcji do przechowywania
elementw dokumentu.
Z dowiadczenia w pracy z Wordem i Excelem wiesz, e to bardzo rne w uytkowaniu
programy s take zupenie inne w programowaniu. Na szczcie wiele mechanizmw
programowania w Wordzie dziaa take z Excelem. Nawet jeli pewien mechanizm nie
ma swojego odpowiednika w Excelu, opanowanie jego obsugi nie jest trudne.

   #   $


Pozyskanie obiektu aplikacji Excela przebiega w taki sam sposb jak w przypadku
obiektu aplikacji Worda. Jedyn rnic jest nazwa danego obiektu automatyzacji.
Aby programowa z wykorzystaniem Excela, musimy uzyska dostp do obiektu
& -  :
.  3 8.  !"  3 *  %-

%     
W Wordzie bazow kolekcj obiektw jest dokument, zawierajcy cay tekst, tabelki,
rysunki itp. W Excelu dokumenty traktowane s inaczej uywa si pojcia skoroszytu (ang. Workbook), ktry moe zawiera arkusze (ang. Worksheets). Arkusze przechowuj tekst, formuy i inne elementy Excela.
Istniej dwa sposoby dostpu do skoroszytw: pobranie z aplikacji kolekcji ,  (
lub odczytanie wartoci waciwoci ",  . Kolekcja ,  ( daje dostp
do wszystkich funkcji skoroszytw (dodawanie, otwieranie, zamykanie itd.), natomiast
",   umoliwia kontrol jedynie aktywnego skoroszytu.

   


Nowy skoroszyt tworzymy metod  kolekcji ,  ( (skoroszyty). Moesz skorzysta z domylnego szablonu skoroszytu lub te, planujc nietypowe zadanie, przekaza do metody  nazw szablonu, na podstawie ktrego bdziesz pracowa. Excel

(%)


 

  
  
przypisuje kademu nowemu skoroszytowi nazw (Book1, Book2 Zeszyt1, Zeszyt2
w polskiej wersji MS Office), wykorzystywan np. przy pniejszym zapisie skoroszytu
do pliku.
Nowy skoroszyt bdzie utworzony z kilkoma czystymi arkuszami, w zalenoci od wartoci
waciwoci %+(.2,   obiektu aplikacji (patrz wydruk 8.14). Kod rdowy
przykadu znajdziesz w folderze GetExcel na doczonej do ksiki pycie CD-ROM,
w projekcie o nazwie GetExcel_Project.bpr.

 


Tworzenie nowego skoroszytu


   923 B0 !  !" #$ %
&
. 0 !.  0 !((4!   "  
?0
0 !8 3 *4   9  !%((S0  
!  
'
 3 *4   $ $/GB0 !, . %'%((S0
  

 0 !80 !*   5%1

  
Skoroszyt mona zapisa na kilka sposobw; najczstszym sposobem jest wykorzystanie
metod %" i %"(. Metody te s bardzo podobne do swoich odpowiednikw w Wordzie, jednak istnieje midzy nimi subtelna rnica. Poniewa skoroszyty Excela tworzone s wraz z nazwami, mog by zapisane bez pytania uytkownika o nazw pliku.
Metoda %" nie pyta wic o nazw pliku, lecz wykorzystuje ju przypisan nazw.
Dziaanie funkcji %" demonstruje kod z wydruku 8.15.
 


Zapisywanie aktywnego skoroszytu


   923 $  !" #$ %
&
.  0 !8 3 *4   9 5   !% 0 !*4    $%1

Funkcja %"( dziaa podobnie do %". W rzeczywistoci funkcja %"( wywoana bez
okrelania dodatkowych parametrw dziaa dokadnie tak samo jak %". Jednake moesz poda parametry okrelajce, w jakim pliku zapisany bdzie dokument. W swej
najprostszej postaci metoda %"( umoliwia zapisanie skoroszytu pod okrelon nazw, zamiast pod nazw domyln dokumentu. Spjrz na wydruk 8.16.

    


 !  !

 "  #

(%*

 


Metoda SaveAs skoroszytu


   923 $5  !" #$ %
&
4   $5 $5%.  0 !8 3 *4   9 5   !% 0 !*23 $5<<KK" *3%1

 
  
Umiejtno tworzenia i zapisywania dokumentw nie wystarczy trzeba rwnie
umie otworzy skoroszyt i odzyska wyniki wczeniejszej pracy. Ta operacja rwnie
podobna jest do znanej nam z Worda korzystamy z metody
 kolekcji ,  (.
Jeeli znamy nazw dokumentu, jego otwarcie sprowadza si do przekazania tej nazwy
do metody (patrz wydruk 8.17).
 


Otwieranie skoroszytu
   923   !" #$ %
&
. 0 !8 3 *4   9 0 !%4    %  + 7'()23  %%
&
0 !*23 <<+ 7'() B%1
1

Podobnie jak w Wordzie, metoda


 moe suy jako narzdzie importu, poniewa
odczyta kady plik obsugiwany przez program Excel. Jeli planujesz prac z du liczb
plikw tekstowych, rozwa wykorzystanie metody
&. Metoda ta aduje zawarto
pliku tekstowego do arkusza i prbuje podzieli tekst na gotowe do uycia komrki. Bardzo podobna do zwykej metody
, metoda
& suy do importu plikw tekstowych i w zwizku z tym przyjmuje kilka dodatkowych parametrw. Po dodatkowe informacje odsyam do plikw pomocy.

   
  
Obiekt aplikacji sprawdza, ktry ze skoroszytw jest aktualnie uywany przez program
Excel i udostpnia go jako waciwo ",  . Po uzyskaniu obiektu skoroszytu powiniene wybra jeden z przechowywanych w nim arkuszy (kolekcja , (+()
lub pobra arkusz aktywny (waciwo "%+). Jeli arkusz, ktry zamierzasz
uywa, nie jest w danej chwili aktywny, musisz wywoa jego metod ",
aby uaktywni go przed rozpoczciem pracy.

(%


 

  
  
Teraz moemy przystpi do wydobywania informacji z Excela. W tym celu uyjemy
obiektu '. Jest on bardzo uniwersalny i moe zosta wykorzystany do reprezentacji
zbiorw komrek, obejmujcych zarwno cay skoroszyt, jak i pojedyncz komrk.
Wydruk 8.18 zawiera przykad wykorzystania obiektu '.
Naley zwrci uwag na konwencj, zgodnie z ktr Microsoft nazwa rne waciwoci
i obiekty. Wiele referencji do obiektw uzyskuje si, pobierajc warto waciwoci o tej
samej nazwie. Przykadowo, referencja do obiektu ' uzyskiwana jest w wyniku
odczytania waciwoci '. Konstruujc aplikacje zintegrowane z pakietem Office,
powiniene mie wiadomo, jakiego rodzaju obiektem aktualnie operujesz.

 

Wa.ciwo. Range
((4! 
   "A?  

  78 0 /*4   9 H7%((4! 
   "A? 5'2[
  78 0 /*4   9 H7, . %5'2[%((4! 
   "A" 
"? 
  78 0 /*4   9 H7, . %W%-

( )   ' *


Kady obiekt zakresu ma waciwoci umoliwiajce wprowadzanie danych i formu do
Excela. S to waciwoci   i #  . Waciwoci te mog modyfikowa stan
wielu komrek rwnoczenie, a korzystanie z nich przebiega w podobny sposb. Przeanalizuj obsug zdarzenia
  na wydruku 8.19 pochodzcym z programu Excel
Zaczynamy (patrz rysunek 8.8).


Program Excel
Zaczynamy

    


 !  !

 "  #

(%$

 


Ustawianie zawarto.ci komrek


   923  !  !" #$ %
&
.  0 !.  0 /.   74   9H7 H7%4   $$. .%4   $$   %4   99. .%4   99   % 0 !8 3 *4   9 5   !% 0 /8 0 !*4   9 5  $/%H7* 5 7 %$.* 5 7 %  78 0 /*23 H7<<5'%  7*23 $.<<E?" 
%H7* 5 7 %  78 0 /*23 H7<<'V%  7*23 $ <<8  %%H7* 5 7 %$ * 5 7 %  78 0 /*23 H7<<5P%  7*23 $ <<8 !'!V%%$/0E7   7*4   9 .%%$/0E7   7*4   9  %%1

Gwn rnic pomidzy obiema omawianymi waciwociami jest format wartoci


przypisywanych komrkom. Waciwo   przyjmuje bezporednio przypisan
warto, natomiast warto przekazywana do waciwoci #   musi by sformatowana zgodnie z zasadami formatowania formu w Excelu.
S te inne sposoby wprowadzania danych do arkuszy, takie jak wykorzystanie waciwoci
&, bardzo zblionej do waciwoci  , z tym e przypisywana lub odczytywana
warto zawsze traktowana jest jak cig znakw (nie jak liczba). W wikszoci przypadkw wystarczajce jest wykorzystanie waciwoci  , dobrze jest jednak wyrobi sobie nawyk stosowania waciwoci & w przypadku ustawiania wartoci, ktra
ma by traktowana wycznie jako tekst. Wpisanie do komrki cigu 3456 za porednictwem   spowoduje przypisanie jej liczby 12345, niezalenie od tego, czy chciae
wprowadzi liczb, czy cig znakw.
Kady obiekt ' posiada waciwoci i metody suce do zmiany wygldu pokrywanych przez niego komrek. Moe to by proste jak w przypadku zmiany kroju czcionki
komrek, lub skomplikowane np. gdy rysujemy ramki wok blokw komrek.
Na przykad, waciwo #  obiektu ' zwraca obiekt # , ktry z kolei posiada
waciwoci takie jak kolor ( ), styl () , . , %+  itd.) oraz rozmiar.

(&%


 

  
  
A oto inne waciwoci przydatne w procesie formatowania komrek: kolekcja ) (
(brzegi), waciwoci 7'+ (wysoko), ,+ (szeroko) i kolekcja .  (wntrze) Waciwoci te okrelaj styl ramek otaczajcych komrki, wielko komrek, ich
kolor i wzr wypenienia.

  ' *


Rzumy okiem na ostatni lini kodu z wydruku 8.19. Ta linia nie wprowadza adnych
informacji do komrki Excela, uywajc do odczytania zawartoci komrki nastpujcego zapisu:
$/0E7   7*4   9 .%%-

zamiast
$ !.
Metoda ta dziaa nie tylko w odniesieniu do wartoci komrki, ale take jej formuy,
wic moesz z jej pomoc pozyskiwa informacje o sposobie obliczania komrki.

Poza moliwociami zastosowania technologii OleAutomation, z ktrej korzystalimy


dotychczas, C++Builder umoliwia rwnie wykorzystanie w pracy nad projektem
biblioteki ATL (ActiveX Template Library) i udostpnia jej mechanizmy za porednictwem komponentu
%" i jego pochodnych. Na zakadce Servers palety komponentw C++Buildera umieszczonych jest wiele komponentw umoliwiajcych poczenie z Wordem i Excelem (patrz rysunek 8.9).



Zakadka Servers
palety komponentw
C++Buildera

Komponenty te umoliwiaj zintegrowanie tworzonych programw z pakietem Office


i tym samym np. kontrolowanie Worda przez proste doczenie ich do aplikacji i wypenienie szkieletu ich kodu. Poznamy te moliwoci, modyfikujc nasz program Skorowidz w taki sposb, aby korzysta z komponentw
%".
Zanim zaczniemy prac nad nowym programem, przetestujmy kilka komponentw grupy
Server. Wcz opcj uzupeniania kodu w opcjach edytora (menu Tools/Editor Options,
opcja Code Completion) i stwrz now aplikacj. Nastpnie przecignij komponenty
,    i , /  na formularz gwny. Utwrz te przycisk, a potem dwukrotnie kliknij go myszk, aby edytowa kod przycisku.
Po wywietleniu okienka edytora kodu wprowad do niego nastpujcy tekst i zaczekaj
na uaktywnienie funkcji uzupeniania kodu:
 5  ()

Po chwili zostanie wywietlona lista dostpnych metod i waciwoci (patrz rysunek 8.10).

    


 !  !

 "  #

(&&




Wa.ciwo.ci i metody
komponentu
WordApplication

Przewijajc zawarto listy wywietlonej przez C++Buildera, zauwaysz, e wiele funkcji


i waciwoci uywanych przez nas wczeniej w ramach OleAutomation wci jest dostpnych. Bdzie to dziaao oczywicie na nasz korzy, ale pamitajmy dziaanie
niektrych funkcji i waciwoci nie jest identyczne. Maj one zmienione nazwy, niektre z nich otrzymay te dodatkowe parametry (inne za zostay pozbawione niektrych parametrw).

"        +  


Komponent ,    zawiera rdze aplikacji Worda, podobnie jak obiekt aplikacji uywany przez nas wczeniej w rozdziale. Komponent ,    oferuje
cilejsz integracj z Wordem, jednak kosztem zwikszonej zoonoci aplikacji. Twoje
programy zyskaj atwiejszy dostp do wielu nowych moliwoci Worda i bd dokadniej sprawdzane podczas kompilacji (mechanizmy OleAutomation sprawdzay wywoania i parametry tylko w czasie dziaania programu).
Niestety, Twoje programy bd rwnie wiksze i bd si duej kompilowa ni aplikacje tworzone z wykorzystaniem OleAutomation. Ich dziaanie bdzie cile zalene
od jakoci napisanego kodu (oraz od kodu komponentw C++Buildera), w mniejszym
za stopniu od aplikacji, z ktr bdziesz integrowa swj program. Komponent ,  
  jest odpowiednikiem obiektu    Worda. Analogicznie, komponent
, /  reprezentuje wersj ATL obiektu   Worda. Przedstawione powyej zastrzeenia odnosz si wic rwnie do niego.
Majc to na uwadze, przejdmy do gwnego tematu podrozdziau programowania
nowej wersji Skorowidza.

,  - .
Bardziej zasadna od przepisywania caego kodu programu Skorowidz byaby aktualizacja
tych jego czci, ktre dotycz wsppracy z programem Microsoft Word. Zaczniemy od
kodu uruchamiajcego Worda, a nastpnie przyjrzymy si metodom wydobywania tekstu
z dokumentw, tworzenia nowych dokumentw oraz wprowadzania do nich tekstu.

(&'


 

  
  
Projekt zawierajcy omawiany przykad (vocab_proj.bpr) znajduje si w folderze VocabB
na pycie CD-ROM doczonej do ksiki.


Pierwszym zadaniem bdzie nawizanie poczenia z Wordem i przejcie nad nim kontroli. Wczeniej naleao sprawdzi, czy istnieje uruchomiony egzemplarz programu
Word, a jeli nie uruchomi go. Tym razem, dziki wykorzystaniu metody  ,
moemy zaoszczdzi kilka linii kodu. Na wydruku 8.20 zamieszczony jest kod uruchamiajcy i wywietlajcy interfejs programu Word.
 


Uruchamianie programu Word


#

E4    4
7" 7  %

#
  . ! 4     %
&

&
 5  '()  %1
  / >%
&
$/0E7 B C  / D %1
 5  '().  !8 1

Jak wida, kod jest podobny do tego z pierwotnego programu Skorowidz, z tym e jest
nieco prostszy i przejrzystszy. Gdyby omin fragment kodu zwizany z obsug wyjtku
(nie zalecam), cay kod zmieciby si w dwch linijkach.
Wspominaem ju, e kontrola nad programem Word uzyskiwana jest za porednictwem metody  . To jedna z podstawowych metod dostpnych w klasach
pochodnych klasy
%". Wyszukuje ona kopi odpowiedniego serwera automatyzacji OLE i uzyskuje dostp do istniejcego serwera lub w razie niepowodzenia tworzy jego now instancj.
Pojawienie si okna programu byo spowodowane przypisaniem odpowiedniej wartoci
do waciwoci ( . Jak wida w tym przykadzie, w przeciwiestwie do mechanizmw OleAutomation, waciwoci obiektw klasy
%" s dostpne bez porednictwa metod w rodzaju
$ % .

       


Po udanym uruchomieniu naszego interfejsu do Worda musimy nauczy si otwiera
dokumenty i wydobywa z nich tekst. Bdziemy wic musieli uy komponentu , 
   do otwarcia dokumentu i podczy do niego komponent , / 
tak, aby uzyska dostp do zawartoci zaadowanego dokumentu.

    


 !  !

 "  #

(&

Otwieranie dokumentu w Wordzie sprowadza si do uycia metody


 kolekcji / 
( (nie ulega to zmianie po przejciu z
   na
%").
 


Nowa wersja kodu niezb;dnego do otwarcia dokumentu i wydobycia jego zawarto.ci


#

  A! ":0

#
  . ! . !  !" #$ %
&
.  B0 / #  H74   74    %  + 7'()23  %%
&
 B8+ 7'() B((E 
0A U0?
 
 + '()   5  '()+ ()  B%% + '()$  %((4! 
 :0

  78 + '()H7 2 4 ,2 4 %  8  7()73 %((4

:D    :?0
((4
; 
 
:   ,0 :@
"@  0   ((  0"@ "@
6 3 ()$ 86 3 ().  !86 3 () %   6    ,6 3 %((SR   >
H+   6  6 3 %(( ;0   A
6 3 ().  !8 ((0
 0 
 + '()   5  '()+ ()5 %%((4
 
  0 
07
H   6  6 3 %1
1

Na pierwszy rzut oka stwierdzimy podobiestwo powyszego kodu do tego w oryginalnej wersji programu Skorowidz. Gwn zmian jest to, e nie wykonujemy ju tak
wielu czynnoci porednich. Zamiast kilku obiektw
 przechowujcych rne zmienne tymczasowe, uywamy tylko trzech zmiennych.

(&(


 

  
  
Bardziej przejrzysty jest rwnie kod sucy do pobierania tekstu z dokumentu. Wikszo powyszego wydruku zajmuje kod sucy do manipulowania list sw, natomiast
poprzednio wikszo kodu obsugiwaa sterowanie Wordem.
Operacja adowania dokumentu jest teraz zawarta w pojedynczej linii kodu:
 + '()   5  '()+ ()  B%%-

Mimo e wywoanie to obejmuje w rzeczywistoci kilka linii kodu, jest ono do przejrzyste. Kolekcj / ( otrzymujemy bezporednio z komponentu ,   ,
a nastpnie uywamy metody
 kolekcji do otwarcia dokumentu. Po zaadowaniu
pliku przekazujemy rezultat wywoania do metody   , uzyskujc dostp do zawartoci dokumentu.
Moglibymy rozbi t lini na kilka etapw. Mechanizm uzupeniania kodu podpowiedziaby nam nazwy rnych struktur i typw przekazywanych pomidzy tymi wywoaniami. Nie
jest to tak proste, jak zastosowanie pozbawionego typw wywoania
   , ale
umoliwia uzyskanie szybszego, bezporedniego dostpu do metod i waciwoci.
Po otwarciu dokumentu zaznaczamy jego zawarto i kopiujemy j do bufora tekstowego.
Tak jak poprzednio, musimy wykorzysta obiekt ' do zaznaczenia interesujcego
nas obszaru.
  78 + '()H7 2 4 ,2 4 %-

Przekazanie w wywoaniu parametru  $ jest ekwiwalentem przekazania wartoci


2 . Powysze wywoanie zaznacza cay dokument.
Po wyznaczeniu zakresu uyjemy metody '*& do pobrania tekstu. Zauwa, e
uywamy tu nazwy rnicej si nieznacznie od nazw w Ole Automation, poniewa
mamy bezporedni dostp do waciwoci.
  8  7()73 %-

Powinnimy przyjrze si bliej metodzie '*& . Typ zwracanej przez ni wartoci


nie jest zwykym typem znakowym, lecz cigiem znakw rozszerzonych (ang. wide
char). Nie powinno to stanowi problemu, jednak jeli zauwaysz dziwn zawarto
cigw zwracanych przez '*& , sprawd zgodno typw, ktrymi operujesz,
z typem +*.
W naszym przykadzie nie zajmujemy si problemem konwersji tekstu rozszerzonego.
Po prostu przerzucamy go prosto do funkcji (0, ( ( , ktrej jeden
z parametrw powinien by typu (%'. C++Builder zajmuje si reszt.

       


Zaprezentowalimy ju prosty sposb otwierania dokumentu i wydobywania z niego
zawartoci. Tworzenie i wypenianie treci nowych dokumentw jest rwnie proste.
Wydruk 8.21 zawiera fragment kodu realizujcy powysze zadanie. Przed wywoaniem
funkcji  , (# ( , wstawiajcej otrzymane sowa do dokumentu, tworzony
jest nowy dokument.

    


 !  !

 "  #

(&

Kod tworzcy nowy dokument wyglda nastpujco:


 + '()   5  '()+ ()5 %%-

Ponownie uywamy komponentu ,    w celu uzyskania kolekcji / 


(, a nastpnie wywoujemy jedn z metod (w tym przypadku  ) kolekcji. Ten
fragment kodu w prosty sposb tworzy nowy dokument wedug szablonu domylnego
i zwraca uchwyt dokumentu.
Zamiast zachowa uchwyt dokumentu, od razu podczamy si do niego za porednictwem
serwera dokumentu , / . Po utworzeniu dokumentu wywoywana jest funkcja 
, (# ( , wstawiajca list sw do dokumentu (patrz wydruk 8.22).
 


Wstawianie tekstu do dokumentu Worda


#

   0
 /:?0
  0  

#
  . ! H   6  6 3#!%
&
70  + '()H7 2 4 ,2 4 %()G 5 $ 7$ $:0
X
I+ 7'() BIXKK%%  0 8N-0 <!()G()-0 II%
&
 + '()H7 2 4 ,2 4 %()G 5 $ 7$ !(
)G()$ 7Y0 ZIK%%1
1

Wstawianie tekstu do dokumentu poprzedzane jest wyznaczeniem zakresu (nie chcemy


niespodzianek ze znikajcym tekstem!). Tekst wstawiany jest na pocztek lub koniec
zakresu.
 + '()H7 2 4 ,2 4 %()G 5 $ 7$ !()G()
$ 7Y0 ZIK%%-

Jak widzisz, nie jest to a tak skomplikowane. Warto zaznaczy, e istnieje potrzeba
jawnego wprowadzania znaku nowej linii (8). Podczas pierwszego uruchomienia programu nie wprowadzalimy znakw nowej linii i program wywietla mieszanin sw.
Z pewnoci zauwaysz, e w tej wersji programu nie ma kodu wprowadzajcego sowa do
tabelki. Jest kilka przyczyn pominicia tego fragmentu, jedn z nich bya ch pokazania,
jak proste jest operowanie tekstem w ramach dokumentu po zaniechaniu uywania OleAutomation. Drug przyczyn jest fakt, e wstawianie tabelek do dokumentw z wykorzystaniem komponentu , /  nie jest ju tak przejrzyste i proste jak w OleAutomation.
Zestaw funkcji udostepniany przez komponent , /  nie jest cakowicie zgodny
z wywoaniami OleAutomation (pomogoby to w konwersji kodu programw). To
jeden z minusw stosowania biblioteki ATL jeeli jej twrcy z premedytacj blokuj
pewne moliwoci, sam nic na to nie poradzisz.

(&)


 

  
  

!       ,/-  


Kade narzdzie programistyczne daje okrelone korzyci, ale i powoduje niedogodnoci
zwizane z jego wykorzystaniem nie inaczej jest w przypadku ATL i komponentw

%". Z ich pomoc moesz bardziej cile integrowa wasne programy z innymi
aplikacjami, dziki czemu otrzymujesz niedostpne wczeniej moliwoci, a Twoje
programy dziaaj szybciej, omijajc kilka warstw dostpu do aplikacji.
Kosztem tych udogodnie jest wiksze obcienie C++Buildera w sensie duszego czasu
kompilacji i wikszych rozmiarw Twoich programw; czasami bardziej cisa integracja
oznacza mniejsz elastyczno programu. Podczas instalacji C++Buildera 5 zostaniesz
poproszony o okrelenie wersji pakietu Office, z ktr bd pracowa komponenty
%
" (Office 97 lub 2000). Moliwe, e uywany przez nas komponent , /  jest
zgodny z obiema wersjami MS Office, pewne jest natomiast, e mniej cise zwizki architektury
   dziaaj niezalenie od wybranej wersji.
Poznaj swoje narzdzia tak, eby wiedzie, ktre z nich najlepiej odpowiada Twoim
potrzebom. W niektrych sytuacjach zalecane jest wykorzystanie
  , ale
istniej zastosowania, w ktrych nic nie zastpi moliwoci biblioteki ATL.

Dotychczas poznalimy jedynie kilka sposobw korzystania z zaledwie dwch aplikacji


nalecych do pakietu Microsoft Office. Zostao jeszcze sporo do zrobienia.


Poniej przedstawione s przykadowe projekty wykorzystujce rne moliwoci programu Word:
n Meneder dokumentw

Program wyszukuje dokumenty programu Word i konstruuje dla kadego z nich


list sw. Usuwa z listy najpopularniejsze sowa (ktry, na, i, w, oraz itp.),
a pozostae wprowadza do bazy danych, aby pniej mona byo odnale
dokument na podstawie zawartych w nim sw. Moesz nawet rozbudowa ten
program tak, aby przeszukiwa rwnie foldery sieciowe i automatycznie
aktualizowa baz dokumentw po ich zmianie.
n Biblioteka raportw

Stwrz bibliotek procedur tworzcych raporty, wykorzystujc moliwoci


aplikacji Word. Zamiast QReport, moesz uy komponentu Word i tworzy
swoje raporty w rozpowszechnionym formacie. Wykorzystujc moliwoci
Worda, nie tylko zyskasz na atwoci wymiany plikw, ale bdziesz mg
przej kontrol nad formatowaniem wygldu dokumentu. Moesz nawet
wprowadzi opcj zapisu w pliku HTML mona dziki temu np.
aktualizowa strony WWW.

    


 !  !

 "  #

(&*

n Meneder korespondencj

Integracja z systemem poczty jest czst cech edytorw tekstu, ale edytory te
nie zawsze wsppracuj z wykorzystywanymi przez Ciebie rdami danych i nie
zawsze oferuj wszystkie podane moliwoci. Przejmujc kontrol nad Wordem,
moesz przeszukiwa kady dokument w poszukiwaniu pl do wypenienia.
Moesz przechowywa kopie korespondencji kadego adresata, a nawet prowadzi
audyt umoliwiajcy sprawdzenie, komu, gdzie i jakie dokumenty wysae.

*
Moesz rozszerzy wspprac wasnych aplikacji z Excelem, wprowadzajc do komrek wykresy, dane z bazy danych. Moesz uywa ich do prezentowania i pozyskiwania
informacji.
Przykadowe projekty:
n Analizator dziennika serwera WWW

Pobierz ze swojej strony pliki dziennika, a nastpnie wypenij nimi kolumny


arkusza, umoliwiajc analiz ruchu na Twojej stronie. Skoroszyt projektu
moe zawiera kilka arkuszy (jeden bdzie zawiera nieprzetworzone dane, drugi
informacje zbiorcze, a w pozostaych bd umieszczone wykresy i raporty).
n Kwestionariusz (ankieta)

Jeeli musisz pozyska od respondentw du ilo informacji, moesz rozway


stworzenie arkusza zawierajcego kwestionariusz (mona te wykorzysta do tego
celu zwyky dokument Worda). Napisz program importujcy i przetwarzajcy dane
pochodzce z kwestionariuszy otrzymanych od respondentw.
n Lista zada

Jeli odczujesz potrzeb zorganizowania swojej pracy w formie listy zada,


moesz j prowadzi z wykorzystaniem Excela. Kady wiersz arkusza odpowiada
jednemu zadaniu i zawiera jego status (zakoczony, w toku itp.) oraz wymagany
termin zakoczenia. Napisz program prowadzcy tak list i przypominajcy
okresowo o czekajcych zadaniach. Program ten mgby te drukowa list zada
w przejrzystym formacie.

%   0    ))


Oprcz najbardziej popularnych Worda i Excela w pakiecie Office zawarte s
rwnie inne programy uytkowe, a wiele spord nich mona kontrolowa z wykorzystaniem automatyzacji znanej z Worda i Excela.

  
Oprcz standardowego wykorzystania Outlooka jako programu pocztowego, moe on
take posuy jako harmonogram, lista zada, system przypominajcy jednym sowem asystent osobisty. Jego obiekt aplikacji dostpny jest jako  -  .

(&


 

  
  
W przeciwiestwie do Worda czy Excela, w Outlooku w celu pozyskania interfejsu obiektu
nie stosuje si zazwyczaj kolekcji obiektw, lecz wywouje metody generujce interfejsy.
Wydruk 8.23 zawiera kod tworzcy now wiadomo e-mail w programie Outlook:

 


Tworzenie nowej wiadomo.ci w programie Outlook


.  8.  !"  *  %.  78 *    G, . %N%((NUB00 ;D( 
 7*4    +  %-

!
Access moe si wydawa niezbyt szczliwym kandydatem do integracji. C++Builder
udostpnia lepsz obsug baz danych, a Access cho idealny jako narzdzie szybkiego tworzenia maych aplikacji bazodanowych nie jest szczeglnie niezawodny
czy skalowalny. Nie jest te najczciej uywan czci pakietu Office (poza wersjami
Professional i Small Business).
Pomimo tego C++Builder jest idealnym narzdziem do przenoszenia aplikacji z Accessa do innej bazy danych. Obiekt aplikacji programu Access udostpniany jest w odpowiedzi na danie referencji do obiektu ((-  . Oto kilka propozycji aplikacji zintegrowanych z programem Access:
n Aplikacja odwzorowujca baz danych

Poniewa Access moe by uytecznym narzdziem w fazie tworzenia prototypw


aplikacji, przydatn jest moliwo uzyskania szczegowego opisu wszystkich
tabel i kwerend. Access udostpnia t informacj, lecz aby j uzyska, trzeba
zaznacza i sprawdza kad tabelk z osobna. Proponowane narzdzie byoby
wygodniejsze, umoliwiajc zaadowanie bazy danych programu Access
i wygenerowanie raportu na podstawie zawartych w niej tabel i kwerend.
n Aplikacja marionetka

Jeeli uytkownicy s przyzwyczajeni do pracy z Accessem i nie chcesz tego


zmienia, alternatywnym rozwizaniem moe by stworzenie aplikacji
wykorzystujcej program Access jako interfejs uytkownika, a faktycznie
operujcej na danych w tle za pomoc C++Buildera.
n Narzdzie pozyskiwania danych

Access jest dobrym kandydatem na narzdzie suce do kolekcjonowania


danych lepszym nawet ni Excel, jeli dane, na ktrych operujesz, s zoone.
Z kolei C++Builder jest idealnym narzdziem do odpytywania bazy danych
programu Access i zestawiania danych z kilku kopii bazy.


Microsoft Project nie jest waciwie skadow pakietu Office, ale udostpnia takie same
moliwoci integracji. Tworzc egzemplarz obiektu aplikacji (  -  , uzyskujesz kolekcje projektw, zasobw, zada itd. Wszystkie one daj si poczy
z innymi aplikacjami za porednictwem C++Buildera.

    


 !  !

 "  #

(&$

Oto kilka sugestii dla twrcw aplikacji:


n Meneder zada zespou

Kady czonek zespou projektowego moe posiada program podpowiadajcy,


ktrym z zada powinien si aktualnie zajmowa. Program moe prowadzi audyt
zapamitywa w pliku dziennika dat i czas pracy poszczeglnych czonkw
nad okrelonymi zadaniami. Rozwizanie to posiada t zalet, e umoliwia
uzyskanie odpowiedzi na pytania, jakie zadanie jest aktualnie realizowane, kto je
realizuje oraz jakie zadania zagroone s opnieniami.
n Prezentacja postpu prac nad projektem w postaci animacji

Mona uy C++Buildera do pozyskiwania danych o projekcie i zapamitywania


ich w bazie danych wersji projektw. Pniej mona odtworzy proces realizacji
projektu, pobierajc dane z bazy.
n System billingowy

Jedn z funkcji projektw zarzdzanych za pomoc aplikacji Microsoft Project


jest ledzenie kosztw zuycia zasobw zwizanych z danym projektem. Dane
te mona poczy z systemem finansowo-ksigowym, generujcym faktury
i inne dokumenty.

"   
Aplikacje obsugujce automatyzacj OLE s coraz bardziej popularne. Metody uywane
w odniesieniu do pakietu Office s rwnie przydatne w integracji z innymi programami.
Oto niektre aplikacje umoliwiajce integracj z wykorzystaniem OLE:
n FrontPage (0  '-  ),
n Visio (( -  ),
n Internet Explorer (.& -  ),
n Adobe Photoshop ($+  (+ -  ),
n Fusion (0( -  ).

"   



Poznalimy jedynie dwa sposoby sprawowania kontroli nad programami Microsoft
Office z poziomu programu C++Builder. Rozwj pakietu C++Builder da nam midzy
innymi moliwo wykorzystania bibliotek typw. Wersja 5. programu udostpnia
wiele serwerw OLE w postaci komponentw, daje te moliwo tworzenia kolejnych
przez konstruowanie podklas klasy 
%".

W tym rozdziale przeanalizowalimy sposoby integrowania aplikacji tworzonych


w C++Builderze z programami pakietu Microsoft Office. Omwilimy gwne metody
sterowania pakietem Office z poziomu C++Buildera, a take wskazalimy kilka moliwych zastosowa takiej integracji.

('%


 

  
  
Mimo e skupilimy si na Wordzie i Excelu, techniki, jakie poznalimy, mog by
uywane w odniesieniu do wikszoci aplikacji pakietu Office, a take kilku innych
programw umoliwiajcych wykorzystanie dobrodziejstw automatyzacji. Poza metodami opisanymi w tym rozdziale, w celu uzyskania podobnych efektw mona rwnie
wykorzysta alternatywne mechanizmy automatyzacji.
Tworzenie i manipulowanie dokumentami jest uyteczne, ale przede wszystkim daje moliwo wprowadzania i pozyskiwania ich zawartoci, co czyni integracj potnym
narzdziem. Integracja aplikacji z programami pakietu Office wprowadza sporo
komplikacji, ale nie jest bardzo trudna. Temat jest obszerny, poniewa Office to bardzo
rozbudowana kolekcja zoonych programw. Umiejtno uruchomienia aplikacji
i wykonania za jej pomoc prostych zada mona naby szybko i atwo, ale pniej
trzeba jeszcze dugo uczy si sposobw realizacji konkretnych zada z wykorzystaniem programw pakietu Office. Nauka ta moe by rdem wielkiej satysfakcji.
Trzymaj wic pod rk pliki pomocy i miao eksperymentuj. Jeeli nie masz pewnoci
co do dziaania ktrego z polece, zastosuj je. Office szybko da Ci zna, jeli nie bdzie
mg zrealizowa wydawanych przez Ciebie polece.

You might also like