Ćwiczenia z c buildera

Download Ćwiczenia z C   Buildera

Post on 10-Jul-2015

543 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

MAREKBISZ MIROSAW CIELECKI

WICZENIA ZC++BUILDERA -.' Spis treci Wstp.......................................................................................................................................5 1. Podstawy programowania w Windows i C++ Builderze...............................................6 2.Biblioteka VCL - przegl/d najwa1niejszych komponentw........................................20 3.Programowanie obiektowe w C++ Builderze.................................................................41 4.Operacje wejcia-wyjcia...............................................................................................58 5.Grafika i multimedia w C++ Builderze..........................................................................66 6.Bazy danych w C++ Builderze.......................................................................................75 7.Pliki pomocy Windows, DDE, modu= LZExpand.........................................................101 WstpNiniejsza ksi/1ka ma za zadanie [email protected] czytelnikowi prostot dzisiejszego programowania w Windows. Narzdziem, ktre w niej zosta=o omwione jest pakiet firmy Borland - C++ Builder. W trakcie lektury czytelnik przejdzie kilka etapw - pocz/wszy od prostej aplikacji, skoAczywszy na zagadnieniach zwi/zanych z dyna- miczn/ wymian/ danych midzy procesami. Zgodnie z zasad/, i1 jeden przyk=ad jest wart wicej ni1 1000 s=w, ka1de z oma- wianych zagadnieA zrealizowane jest wed=ug schematu: wprowadzenie - kolejne za- dania wnioski i podsumowanie. Gotowe projekty zadaA znajdzie czytelnik na dys- kietce po brzegi wypchanej interesuj/cymi przyk=adami i do=/czonej do ksi/1ki. Pole- cam dok=adne przeledzenie wszystkich zadaA (w=asnorczne wpisywanie kodu Erd=owego [email protected] bardziej dowiadczonym wystarczy [email protected] mo1e sama jego analiza). Przed jednym chcia=bym przestrzec potencjalnego czytelnika, ktry [email protected] mo1eoczekuje, i1 zostanie poprowadzony od kliknicia do kliknicia - prost/ drog/ stan- dardowych aplikacji: nie jest to typowa ksi/1ka dla pocz/tkuj/cych. Nie bdziemy w niej [email protected] utartymi cie1kami. Od pocz/tkuj/cego czytelnika wymaga ona zwik-szonego wysi=ku. Nie ma tu konkretnych przepisw w rodzaju jak upiec ciasto mali- nowe", Za=o1eniem tej ksi/1ki jest wskazanie pewnych drg jako materia=u do w=a- snych eksperymentw. Czytelnikowi nie stawia si 1adnych wymagaA. Przyda=aby si jedynie podstawo- wa [email protected] jzyka C(C++), ale i to nie jest konieczne. Staram si poni1ej [email protected] konstrukcje jzyka, wiele mo1na rwnie1 [email protected] si z za=/czonych do ksi/1ki przyk=adw. Przyda si te1 [email protected] ([email protected] podstawowa) jzyka angiel- skiego, gdy1 dokumentacja on lin" dla C++ Buildera nie zosta=a na razie spolszczona. Chcia=bym w tym miejscu [email protected], 1e ksi/1ka ta w 1adnym wypadku nie obej- muje wszystkich zagadnieA zwi/zanych z programowaniem w C++ Builderze. Ma ona jedynie za zadanie [email protected] czytelnikowi =atwe i szybkie wejcie w bogaty wiat programowania w Windows. 1.PodstawyprogramowaniawWindowsiC++ Builderze wiczenie 1.1. Ilustracja sensu uywania procedur, inaczej: nis wilk razy kilka, ponieli i wilka..." Wprowadzenie:wszyscy,ktrzyzaczynaj/ [email protected], robi/ towprzestarza=ymstylui zak=adaj/, 1e wszystko [email protected] si musi w z gry okrelonym porz/dku.Program.sekwencyjnysk=adasi z nastpuj/cychposobieinstrukcjiwykonywanychw sztywnejkolejnoci. W poni1szychzadaniach udowodnimy,1e z odejciaodsekwencyjnego stylu programowania wyp=ywaj/ pewne wymierne korzyci. Zadanie1.1.1:pos=uguj/c si [email protected] programwywietlaj/cytrzyrazy okienko z napisem Witaj". Wykonanie: // utworzenie okna // wywietlenie napisu Witaj" // zamknicie okna // utworzenie okna // wywi et l eni e napi suWi t aj " //zamkni ci eokna //utworzenieokna // wywi et l eni enapi su Wi t aj "//zamkni ci eokna Podsumowanie: ju1 na pierwszy rzut oka [email protected], 1e co jest nie tak. Nasz program" wykona swoje - wypisze trzy razy na ekranie napis Witaj", ale brakuje temu wszystkiemu elegancji. [email protected] napisWitaj"najaki inny,[email protected] trzykrotnie! Poza tym nasz program sk=ada si z trzech identycznych czci. W ka1dej z nich moglibymy si [email protected] Wszystkie te wady programowania sekwencyjnego rozwi/zuje u1ycie procedur. Zadanie1.1.2:pos=uguj/c si [email protected] szkielet"programuwy-wietlaj/cego trzy razy okienko Witaj" przy u1yciu procedury wyswietl_okno. Wykonanie: // procedura wyswietl_okno //C // utworzenie okna // wywietlenie napisuWitaj" // zamknicie okna // ] // program g$wny // C // wyswietl__okno (pierwsze wywo$anieprocedury) // wyswietl_okno (drugie wywo$anie procedury) // wyswietl_okno (trzecie wywo$anie procedury) // ) Podsumowanie:dzisiajzmianas=owaWitaj"nainnewymagaingerencjitylkowjednym miejscuprogramu.Naszprzyk=adowyalgorytmjestprosty,alewyobraEmysobie,[email protected] du1y programzawieraj/cydziesi/tkitysicyliniikodu....Nastpna sprawa - gdyby si okaza=o, 1e w naszej procedurze trzeba co [email protected] (np. [email protected] pobranie odpowiedziodu1ytkownika)-wystarczydotegojednazmianawewn/trzprocedury,anie trzy kolejne identyczne, jak w przypadku zadania 1.1.1. Zadanie 1.1.3: [email protected] program wywietlaj/cy kolejno ,,Witaj", Witaj ponownie", Witaj raz jeszcze". Wykonanie: // procedura wyswietl_okno ($a(cuch_znakw tekst_do__wyswietlenia) // C // utworzenieokna // wywietlenie napisu tekst_do_wyswietlenia // zamknicieokna // } // program g$wny // t // wyswietl_okno(,.Witaj") (pierwsze wywo$anieprocedury) // wyswietl_okno(Witaj ponownie") (drugie wywo$anieprocedury) // wyswietl_okno(Witaj razjeszcze") (trzecie wywo$anieprocedury) // } Podsumowanie:[email protected], to1e pos=u1ylimysi procedur/, w niczymnieogranicza naszychmo1liwoci,Przyodpowiedniejjejmodyfikacji(dodalimyparametr tekst_do_wyswietlenia)mamywdalszymci/[email protected] innego tekstu. Na uwag zas=uguje fakt, 1e tekst dowyswietlenia jest jedynie identyfikatorem tekstu przesy=anego do procedury z programu g=wnego. Tak wicprzypierwszymwywo=aniunaszejproceduryzawartoci/ tekst_do_wyswietleniabdzie Witaj",wdrugim-Witajponownie"[email protected] za ka1dym razem inny tekst, [email protected] przecie1 nie zmieniamy jej kodu. Takiidentyfikator"[email protected] zmienn/. [email protected] typ danych, ktre ma [email protected] (dlatego w deklaracji procedury u1ylimy okrelenia (a)cuch_znakw). wiczenie 1.2. Funkcje - poszerzenie informacji z wiczenia 1.1 Wprowadzenie: funkcja jest odpowiednikiem procedury, ale zwraca [email protected] W C++ mamy do czynienia w=anie z funkcjami. Zadanie 1.2.1: [email protected] nasz program przyk=adowy z zadania 1.1.3, tak aby pobiera= ort od u1ytkownika odpowiedE na nasze pozdrowienie lub pytanie. Wykonanie: //$a(cuch__ znakw wyswietl^okno ($a(cuctwnakw tekst_do_wysw1etleni a) //{ //$a(cuctwnakw Odpowiedz // utworzenie okna //wywietlenie napisu tekst_do_wyswietlenia //pobranie odpowiedzi u1ytkownika i wstawienie jej podzmienn2// Odpowiedz // zamknicieokna // zwrotzmiennej Odpowiedz // } //program g$wny // { // $a(cuch_znakw warto3_zwrcona // warto3_zwrcona - wyswietl_okno(Witaj") (pierwsze wywo$anie // funkcji) // warto3_zwrcona=wyswietl_okno(warto3_zwrcona) (drugie wywo$anie // funkcji) // warto3_zwrcona= wyswietl_okno(warto"3_2wrcona) (trzecie wywo$anie // funkcji ) // } Podsumowanie: jak [email protected] program bawi si z u1ytkownikiem w papug": za ka1dym razem wywietla to, co zosta=o poprzednio wpisane. Warto [email protected], 1e w deklaracji naszej funkcji znajdujesi okrelenietypuzwracanychdanych.Takwic przypierwszymwywo=aniu funkcji z programu g=wnego zostanie zwrcony =aAcuch znakw i podstawiony pod zmienn/warto./_zwrcona.Zauwa1my,1e przynastpnymwywo=aniufunkcjijakoparametrdo wywietlenia przesy=anajest w=anie owa zmienna (czyli to.co wprowadzi= u1ytkownik). W drugim wywo=aniu funkcja wywietli [email protected] tej zmiennej it wiczenie 1.3. Zdarzenia i ich obsuga, czyli wszystko si% moe zdarzy'"Wprowadzenie:systemWindowszmieni= podejciedozasadsterowaniaprogramem. Dawniejwszystkoopiera=o si o wykonywaniejednejustalonejsekwencjioperacji.W Windowswszystkowi/1e si z odpowiadaniemnazdarzenia.Naprzyk=adgdyklikniemy mysz/ w odpowiednimmiejscu,rozwiniesi menu-oznaczato, 1e aplikacjaodpowiedzia=anazdarzenieonazwiemouseclick.ProgramowaniewWindowsjestzorientowaneprzez [email protected] przygotowaninawszystko,como1e [email protected] u1ytkownik.Wzadaniu poni1ejczekanaspierwszykontaktzIDE-czylirodowiskiemC++Buildcra,orazprosty program odpowiadaj/cy na kliknicie mysz/.Po uruchomieniu C++ Buildcra, widzimy przed sob/ co mniej wicej takiego: [email protected] A-B to trzon" pakietu. Znajduje si tutaj podrczne menu u1ytkownika, z lewej strony kilkaprzyciskwoperacyjnychoraz(rzeczwa1na)wczciB-zestawkomponentw,czyli klockw",[email protected] aplikacje.Komponentys/ specjalnie zaprojektowanymi obiektami jzyka C++ (lub Pascal). Zbudowane s/ tak, aby =atwe by=o ich wielokrotneu1ycie.Wdalszejczciksi/1ki komponentyzostan/ jeszczeomwione dok=adniej. [email protected]=u1/cedoedycjiw=aciwoci obiektw (komponentw), a tak1e przypisywania im okrelonych reakcji na zdarzenia.Naprzyk=adreakcjanaklikniciemysz/ nosinazw OnClick".Zestaw obs=ugiwanychprzezdanyobiektzdarzeA jestwidocznynakarcieEvents(zdarzenia) Inspektora Obiektw. Wczci D widzimy g=wne okno naszej przysz=ej aplikacji. Zadanie1.3.1:[email protected] programodpowiadaj/cynaklikniciemysz/ w dowolnymmiejscu formularza (czyli naszego okna g=wnego) wywietleniem okienka z wiadomoci/.Wykonanie: 1.WInspektorze Obiektw wybieramy kart Events (zdarzenia). 2.Dwukrotnieklikamywbia=e poleobokpozycjiOnClick.Pojawisi okno edycjikodu.Teraz midzy klamrami {" i }" oznaczaj/cymi cia=o funkcji wpiszemy kod odpowiedzi na zdarzenie mouseclick (rysunek 1.3) .3.Wpisujemy,M^^sageBox(0,"Hejtoja!","Uhaha",0);"(wporwnaniuzprzyk=adamiz poprzednich @wiczeA nie jest to mo1e zbyt jasne - ale taka jest cena przeniesienia teorii w praktyk).Jeszczejednauwaga-uwa1ajmynadu1e i ma=e litery.Je1eliwpiszemy messagebox\ C++ Builder nie rozpozna tego jako nazwy funkcji wywietlaj/cej okienko (MessageBox). 4.Pozostajenamskompilowa