Kurs Visual Basic Dla Początkujących

77
KURS VISUAL BASICA BY SLASH Wstęp Co powinieneś wiedzieć aby dobrze wystartować Lekcja 1 Funkcja wyświetlania komunikatów (MsgBox) Lekcja 2 CD. MsgBox, wprowadzenie do instrukcji IF i DIM Lekcja 3 Wszystko o DIM - i trochę o MsgBox-ie Lekcja 4 TextBox, Label i troszeczkę o konwersji danych Lekcja 5 Funkcja konwertująca stringi na liczby Lekcja 6 InputBox Lekcja 7 Instrukcja IF Lekcja 8 Operatory logiczne Lekcja 9 Funkcja Case Lekcja 10 Komentarze i pętla Do While Lekcja 11 Pętla Do Until, pętle odwrócone Lekcja 12 Pętla For Lekcja 13 Zmiana właściwości komponentów Lekcja 14 Opcje wyboru Lekcja 15 Opcje wyboru cd, Funkcja Global Lekcja 16 Dwie formy Lekcja 17 Okna dialogowe i kompilacja Lekcja 18 Wstęp do list wyboru i Combo Box-ów Lekcja 19 Tablice danych i ScrollBar-y Lekcja 20 Funkcje czasowe Lekcja 21 Funkcje matematyczne Lekcja 22 Funkcje łańcuchowe

description

Kurs Visual Basic Dla Początkujących

Transcript of Kurs Visual Basic Dla Początkujących

Visual Basic dla pocztkujcych

KURS

VISUAL BASICA

BY

SLASHWstp Co powiniene wiedzie aby dobrze wystartowa

Lekcja 1 Funkcja wywietlania komunikatw (MsgBox)

Lekcja 2 CD. MsgBox, wprowadzenie do instrukcji IF i DIM

Lekcja 3 Wszystko o DIM - i troch o MsgBox-ie

Lekcja 4 TextBox, Label i troszeczk o konwersji danych

Lekcja 5 Funkcja konwertujca stringi na liczby

Lekcja 6 InputBox

Lekcja 7 Instrukcja IF

Lekcja 8 Operatory logiczne

Lekcja 9 Funkcja Case

Lekcja 10 Komentarze i ptla Do While

Lekcja 11 Ptla Do Until, ptle odwrcone

Lekcja 12 Ptla For

Lekcja 13 Zmiana waciwoci komponentw

Lekcja 14 Opcje wyboru

Lekcja 15 Opcje wyboru cd, Funkcja Global

Lekcja 16 Dwie formy

Lekcja 17 Okna dialogowe i kompilacja

Lekcja 18 Wstp do list wyboru i Combo Box-w

Lekcja 19 Tablice danych i ScrollBar-y

Lekcja 20 Funkcje czasowe

Lekcja 21 Funkcje matematyczne

Lekcja 22 Funkcje acuchowe

Lekcja 23 Funkcje testujce dane i Funkcje konwersji danych

Lekcja 24Uruchamianie innych programw, starowanie listami napdw, katalogw i plikw

Lekcja 25Funkcja Open, Close, Write

Lekcja 26Funkcja Input i EOF

Lekcja 27Funkcje Kill, RmDir, MkDir, File

Lekcja 28Pole Obrazu

Lekcja 29Menu

Lekcja 30Pasek narzdzi

cigawka z paska narzdzi

Wstp

Witajcie wszyscy! Oto przed Wami kurs Visual Basica. Wiem, e czytanie kursw jest monotonne i niekiedy nudne. Miaem wanie takie wraenie uczc si VB z pewnej ksiki. Wprowadzia mnie zaledwie w podstawy. Dalsze funkcje musiaem poznawa sam. Niekiedy nad jedn funkcj spdziem 10 godzin ale zawsze dopiem swego. Kurs jest napisany z humorem, dziki czemu nauk tego jzyka bdziesz traktowa jak zabaw. No wic zaczynamy ? Chwila, chwila... A moe na pocztek co o tym jzyku...

Jzyk Basic zosta stworzony przez Johna G. Kemeny'ego i Thomasa E. Kurtza w 1963 roku w Darmouth College. Sta si on szybko popularny jako jzyk nauczania w uniwersytetach i szkoach. W latach 70-tych, zosta przystosowany do uycia na komputerach osobistych przez zaoyciela i prezesa firmy Microsoft - Billa Gates'a.Jzyk Basic przeszed wiele zmian, modyfikacji i udoskonale od pierwszych wersji do teraniejszego wygldu i sposobu programowania.W czasach, kiedy typowymi domowymi komputerami byy komputery 8-io bitowe, takie jak: Atari 800XL, Commodore C64 czy ZX Spectrum, jzyk Basic by podstawowym jzykiem programowania. By do prosty - sta si wic powszechnie wykorzystywany przez programistw. Wersje stosowane w rnych komputerach nieco si rniy. By to jednak typowy jzyk strukturalny z do ograniczon liczb rozkazw. Kady rozkaz wystpowa w osobnej linii programu, a kada linia zaczynaa si od numeru linii. By to jzyk wystarczajcy do pisania prostych aplikacji jak i do zaawansowanych programw i gier. Najprostszy program napisany w jzyku Basic wyglda tak:

10 PRINT "WITAJ"20 GOTO 10

Program ten rozkazem PRINT wywietla na ekranie tekst WITAJ, a rozkazem GOTO 10, powodowa powrt do linii nr 10 i zaptlenie programu.Wraz z rozwojem techniki komputery 8-io bitowe zostay stopniowo wyparte przez komputery 16-bitowe klasy IBM PC. W pierwszych modelach jzyk Basic zawarty zosta w ROM BIOS-ie. Jeeli system operacyjny nie zosta uruchomiony z dyskietki lub z dysku twardego to z ROM BIOS-u uruchamiany by interpreter jzyka Basic. Do szybko jednak zrezygnowano z umieszczania Basic w ROM BIOS.Wraz z rozwojem systemw operacyjnych, jzyk Basic powrci jako Microsoft QuickBasic i Qbasic, ktry sta si czci systemu operacyjnego MS-DOS. By to nadal typowy jzyk strukturalny z tekstowym rodowiskiem programistycznym. Nie zyska on jednak wielkiej popularnoci i szybko zosta wyparty przez bardziej rozbudowane jzyki, takie jak Pascal i C.

Przeomem stao si wprowadzenie jzyka Visual Basic. Jzyk ten wykorzystywa rodowisko Microsoft Windows. By to jzyk wizualny, gdzie cz programowania polegaa na graficznym uoeniu elementw aplikacji. Zamiast pisa bardzo rozbudowane aplikacje, w ktrych znaczna cz kodu wykorzystywana bya do utworzenia interface (wygldu) aplikacji, jzyk Visual Basic udostpnia rodowisko graficzne, w ktrym wygld aplikacji tworzyo si podobnie jak obrazy w programach graficznych. Naleao wybra odpowiedni element wygldu i narysowa go, wybierajc jego pooenie i rozmiar. Skrcio to znacznie czas tworzenia aplikacji, poniewa zamiast pisa rozbudowany kod wystarczyo "poskada" program z dostpnych elementw. Kolejne wersje Visual Basic wprowadziy wiele kolejnych udoskonale i uatwie, oraz moliwo tworzenia 16 i 32 bitowych aplikacji.Mimo e w peni graficzne rodowisko projektowania Visual Basica i jzyk programowania s odlege od wczesnych interpreterw Basica, elegancja i prostota jzyka oryginalnego Basica pozostay do dzi. atwo uycia i due moliwoci Visual Basica to podstawowe przyczyny, dla ktrych zosta on wybrany jzykiem programowania aplikacji systemu Windows, takich jak Excel. Ze wzgldu na rne wymagania programistw powstao kilka wersji jzyka Visual Basic. Wersja Learning Edition (LE) jest najubosz wersj z obszern pomoc, przeznaczon dla pocztkujcych programistw. Wersj podstawow staa si wersja Standart Edition (SE), a nieco rozbudowana wersja Proffessional Edition (PE) zawiera wicej kontrolek i moliwoci. Najbardziej rozbudowan wersj jest wersja Enterprise Edition (EE), ktra posiada bardzo duo rozszerze i moliwoci, w tym rwnie moliwo tworzenia aplikacji typu klient-server. Dostpna jest rwnie wersja Control Creation Edition (CCE), ktra uatwia tworzenie wasnych kontrolek Visual Basic.

EEPELECCE

Konfigurowalne rodowisko edycyjneWywietlajce si listy wartoci, waciwoci, obiektw i metod znacznie przyspieszajce i uatwiajce prac, zastosowane dziki technologii IntelliSense firmy Microsoft z funkcjami QuickInfo, DataTips, Complete Word oraz List Properties/Methods.++++

Visual Basic Applications Edition, wersja 5.0Moliwo wykorzystania znajomoci Visual Basic w aplikacjach posiadajcych Visual Basic for Applications, jak np. Microsoft Office 97.++++

Szablony projektw, przykadowe projekty i dokumentacja Books OnlineGotowe szablony i przykadowe projekty uatwiajce prac i zrozumienie Visual Basic oraz rozbudowana dokumentacja Books Online.+++

Dodatki (add-ins)Zbir dodatkowych narzdzi uatwiajcych tworzenie moduw klas, metod, zdarze, waciwoci, formantw ActiveX i stron Property Pages.++++

Wielokrotne projektyMoliwo edycji i analizy skadnikw i aplikacji w jednej instancji Visual Basic.++++

Dziedziczenie i dziedziczenie wizualneMoliwo dziedziczenia z innych moduw klas i czenia formantw ActiveX.++++

Tworzenie formantw ActiveXMoliwo tworzenia formantw ActiveX wykorzystywanych w produktach wspierajcych ActiveX, m.in. Visual Basic, Visual C++, Visual FoxPro, Microsoft Office, aplikacje internetowe.++++

Bogaty zestaw standardowych formantw ActiveXFormanty ActiveX takie jak: DBGrid, CheckBox, ComboBox, FileListBox, DriveListBox, CommonDialog, WebBrowser i ponad 20 innych.+++

Tworzenie aplikacjiMoliwo kompilacji do plikw typu .EXE lub DLL.+++

Kurs "Learn Visual Basic Now"Rozbudowany kurs Visual Basic zawierajcy wiczenia, lekcje wideo, odczyty lektora.+

Dostp do danychODBC w wersji 3.5 to dodatkowe moliwoci zarzdzania danymi dla rde danych ODBC i ISAM.++

Optymalizujcy kompilator kodu rodzimegoPonad 20-to krotne przyspieszenie dziaania aplikacji w stosunku do poprzednich wersji, poprzez zastosowanie kompilacji kodu rodzimego.++

Dokumenty ActiveXMoliwo tworzenia aplikacji Visual Basic, ktre bd odczytywane przez Internet Explorer.++

Formanty ActiveX dla serwerwMoliwo wykorzystania wielowtkowych bezpiecznych i wydajnych skadnikw dla serwerw.++

Microsoft Transaction Server Developer EditionMoliwo tworzenia trjwarstwowych aplikacji biznesowych.+

Wsparcie dla RISCMoliwo tworzenia aplikacji pracujcych na platformach RISC w kodzie rodzimym.+

Remote Data Objects (RDO) wersja 2.0Obiektowo zorientowany interfejs programowania uatwiajcy szybki dostp do baz danych ODBC aplikacji klient-server lub z Internetu.+

Program analizy TSQL DebuggerMoliwo testowania procedur SQL Server 6.5.+

Microsoft SQL Server Developer EditionMoliwo tworzenia i testowania baz danych SQL w sieci lokalnej.+

Microsoft Visual SourceSafeMoliwo zarzdzania kodem rdowym przy wykorzystaniu Check In/Out, dzielenie zasobw, historia projektw dla pracy grupowej.+

Application Performance Explorer (APE)Moliwo analizy wydajnoci aplikacji rozproszonych.+

Microsoft Visual Database ToolsMoliwo tworzenia logicznych i fizycznych baz danych, kwerend klienta i struktur danych serwera.+

Jzyk Visual Basic sta si czci pakietu Visual Studio. Obecnie dostpna jest wersja 6.0 jzyka Visual Basic, ktry w wersji Enterprise Edition jest rwnie czci pakietu Visual Studio 6.0. Dostpna jest rwnie wersja Visual Basic dla systemu DOS.

Jzyk Visual Basic utrzymuje swoj popularno pomimo bardzo silnej konkurencji, m.in. Delphi i Visual C.Jzyk ten jest uwaany za atwiejszy od konkurentw, jednak napisane w nim aplikacje wykonuj si wolniej ni aplikacje konkurentw. Jzyk ten posiada wiele wad i zalet, ale umoliwia tworzenie nawet bardzo rozbudowanych aplikacji, a moliwo doczania nowych kontrolek ActiveX bardzo to uatwia i przyspiesza.

Zaczynamy prac

Mam nadziej, e posiadasz Visual Basica 6 lub 5. W ostatecznoci moesz posiada wersj 4 (wanie na tej wersji poznawaem jzyk VB), ale pamitaj ,e rni si troszeczk od nowszych wersji. No dobra do gadania... zaczynamy.

Odpalamy naszego VB. Ojej, co to wywietlio si jakie okienko. Teraz moemy wybra to co bdziemy chcieli tworzy. My oczywicie zajmiemy si pisaniem programw wic wybieramy pierwsz ikonk czyli standard exe. I co my tu widzimy. Po lewej stronie okna znajduje si pasek z odpowiednimi narzdziami. Po rodku wida nasz formularz, czyli to na czym bdziemy ukada nasz przyciski itp. A co jest po prawej? Chmmm... Pierwsze to skadniki projektu tu moemy zobaczy z ilu formularzy skada si nasz program oraz przecza si midzy nimi o tym to dopiero w nastpnych czciach tego kursu. Poniej widzimy okno Properties. S to ustawienia danego elementu. Tak np. moemy tutaj ustawi wielko formularza, kolor itp... A jeszcze niej widzimy okno Form Layout. Jest to podgld naszej aplikacji, gzie znajdzie si na pulpicie po uruchomieniu. Innymi sowy moesz tu ustali czy program po uruchomieniu bdzie si znajdowa bliej krawdzi dolnej czy grnej. No zapomniaem o jednym. Oczywicie o pasku narzdzi wanie tego u gry. Jak w kadym pasku narzdzi znajduj si tam najczciej uywane opcje. To tyle na temat wygldu.

Nie bd tu pisa innych bzdur bo wiem, e zanudzi bym Was na mier. Wszystko dowiesz si w swoim czasie. Wiem, e w ksikach wszystko opisywane jest na pocztku. Z wasnego dowiadczenia wiem, e uczenie si czego o czym nie ma si bladego pojcia jest bezsensowne.

elazna zasada: przede wszystkim praktyka .

Tak wic zaczynamy nastpna lekcja to elementy sterujce

LEKCJA 1

No wic w tej lekcji napiszemy pierwszy program. Do dziea:

Otwieramy Visual Basic, tworzymy now aplikacj. Chmmm. Co by tu zrobi. No moe na formularz naniesiemy jaki przycisk. No dobra. Z paska narzdzi (tego po lewej) wybieramy CommandButton Szary prostokt (3 rzd, 2 kolumna). No dobra przycisk si wcisn i co teraz. Teraz wystarczy przytrzyma lewy przycisk myszy na formularzu i przecign w ktr ze stron. Czy widzisz te przerywane linie. To wanie tu po puszczeniu przycisku myszy ukae si pierwszy element naszej aplikacji Command Button. No fajnie. Stworzylimy przycisk o nazwie Command1. Moesz go teraz przesun w dowolne miejsce na formularzu lub go powikszy. Po prostu chwy go i upu tam gdzie zechcesz. Jeli chcesz go powikszy lub pomniejszy zaznacz go, pojawi si teraz obok przycisku kwadraciki za ktre moemy chwyci i dowolnie zmienia rozmiar przycisku. Ufffff... Myl, e skapowae o co chodzi. Dobra ale ten napis jako brzydko wyglda. Zmiemy go np. na Witaj. Ale jak to zrobi. Pewnie mylisz, e teraz zaczniemy posugiwa si kodem. Nic z tego. Wykorzystamy do tego okienko Properties. To po prawej w rodku. Wyglda jak jaka tabelka. To wanie tu ustalamy waciwoci przycisku. Zabieramy si do roboty. Zaznacz przycisk na formie. Teraz w okienku Properties widzisz pogrubiony napis Command1 command button. Oznacza to, e wszystkie poniej wypisane opcje odnosz si do naszego przycisku. Oto krtki opis najwaniejszych funkcji :

(name)W tym polu wpisujemy nazw identyfikujc nasz przycisk najlepiej uywa skrtu cmd tak wi zmieniamy nazw naszego przycisku na cmdwitaj

captionChyba najwaniejsza Tu ustalamy wyrazy ktre maj znale si na naszym przycisku wpisujemy Witaj !

EnabledTu ustalamy czy przycisk bdzie si dao wcisn czy te nie my oczywicie zostawiamy True (Prawda)

FontW tym oknie moemy ustali czcionk, wielko i efekty dla napisu

HeightWysoko przycisku. Raczej wygodniejsze jest rozciganie przycisku bezporednio na formularzu

IndexUstala kolejno przeskakiwania focusa. Chodzi o to gdy np. na formularzu ustawimy trzy przyciski o nazwie cmdJeden, cmdDwa, cmdTrzy i kolejno ustawimy na nie index 1,3,2 to przeskakujc Tab-em kolejno podwietl si przycisk cmdJeden (1), cmdTrzy (2), cmdDwa (3). Na razie zostawiamy puste.

LeftOkrela odlego przycisku od lewej krawdzi ekranu. Wygodniej jest przemieszcza przycisk bezporednio na formie.

StyleOznacza czy w przycisku bdziemy dokonywa przerbek kosmetycznych dla eksperymenu zaznaczmy True

BackColorTeraz wracamy si prawie do samego pocztku. Moemy tu zmieni kolor przycisku. Zmiemy go np. na kolor czerwony (znajduje si w zakadce pallete)

TopOkrela pooenie przycisku od grnej krawdzi ekranu

WidthOkrela szeroko przycisku

VisibleOkrela czy przycisk ma by widoczny na formularzu. Jeli zaznaczymy false, to po uruchomieniu programu zobaczymy pusty formularz. Zostaw wic true

Wikszo wyej wymienionych opcji dziaa take na formularzu. No to sprbujmy. Zaznacz formularz (To na czym uoye przycisk). Teraz w oknie Properties zobaczy pogrubiony napis Form1 Form. Oczywicie jeeli formularz wydaje ci si za may to go sobie powiksz. Identycznie jak przycisk. Po prostu chwy za kwadracik i cignij. Chmmm. Jak na razie program nie wyglda zbyt ciekawie. Na pasku u samej gry formularza widnieje napis Form1. Chyba czas aby to zmieni... Masz ju zaznaczon form ? No to teraz w oknie Properties znajd Caption o jest tu nasze Form1. Zmie to na np. Mj pierwszy program. Efekt wida od razu ! Moe zmienimy teraz kolor naszego formularza, co? No dobra odnajd funkcj BackColor. Teraz rozwi zawarto wybierz zakadk Palette i wybierz dowolny kolor. Dla przykadu jaskrawy zielony. Ha ! Program zaczyna fajnie wyglda. Niestety to co pokazaem do tej pory to tylko umieszczanie skadnikw na formie i upikszanie wygldu. Ale my chcemy aby ten program co robi. Np. wywietli komunikat Witam ci bardzo serdecznie. Niestety, aby to wykona musimy posuy si kodem. Tak, koniec zabawy w skadanie sobie programu. Teraz musimy si nauczy podstawowych funkcji. Radz aby zapisywa sobie skadnie poznanych funkcji gdzie na kartce. Chyba, e dobrze znasz angielski... Pniej piszc program moesz akurat zapomnie sobie jak uywao si danej funkcji

No dobra do tego pieprzenia. Robota czeka.

Chmmm. Kod, kodem ale gdzie go wpisa. Musimy zastanowi si kiedy ma wyskoczy komunikat. Oczywicie po klikniciu na nasz przycisk. No to kliknijmy na przycisk. I co? Zaznaczy si tylko. Chmmm. A moe dwukrotnie? Jest! Wyskoczyo co w formie notatnika z:

Private Sub cmdwitaj_Click()

End Sub

Co to do cholery jest!? Tu wanie bdziemy pisa kod. Przeanalizujmy go:

Private Sub oznacza pocztek wykonywania si kodu logicznie mylc End Sub koczy. Ale do czego jest cmdwitaj1_Click. Chmmm. Cmdwitaj to przecie nazwa naszego przycisku to wanie tu program rozrni czy posuylimy si naszym przyciskiem czy czym innym. Jak pewnie wiesz Click oznacza kliknicia a wic kliknicie na przycisku. Tak, tak kod wykona si dopiero wtedy, gdy klikniesz na naszym przycisku. Zaraz, zaraz ale jaki kod? Teraz napiszmy jaki prosty kod wywietlajcy okienko z napisem Witam ci bardzo serdecznie. Napisz co takiego (oczywicie midzy Private Sub cmdwitaj_Click() a End Sub:

x = MsgBox("Witam ci bardzo serdecznie")

Teraz wystartujmy jako program. Moemy to zrobi na trzy sposoby. Najprostszy to przycisk play na pasku narzdzi (tym u gry) Jest to ikonka bodaje 12 z brzegu. Moemy te uy klawisza F5, albo z menu wybra Run-Start. No to do dziea. Uruchamiamy...

Wow ! Dziaa, dziaa, dziaa !!! Wystartowa nasz program. Teraz kliknij na przycisku. I co pojawi si komunikat? Jest !!! Ale co si rzuca w oko. Na pasku stanu widzimy Project1. Trzeba to zmieni...

Klikamy na ok. i zamykamy uruchomiony program. No... wrcilimy do kodu. Teraz zamiast x = MsgBox("Witam ci bardzo serdecznie") wpisz:

x = MsgBox("Witam ci bardzo serdecznie",vbInformation+vbAbortRetryIgnore,"Witaj !")

I co to zmienio? Sam zobacz. Wystartuj program jeszcze raz. Tak zmienilimy tytu, ale take dodalimy ikonk obok komunikatu oraz mamy trzy przyciski. Jak ja to zrobiem si dziwisz. Oto przepis:

X = MsgBox(Jaki tam tekst,ikonka + przyciski, Tytu)

Tak wyglda skadnia funkcji odpowiedzialnej za wywietlenie okienka dialogowego.

Oto poszczeglne skadniki:

X nazwa zmiennej (O tym w nastpnej lekcji). Na dzi musisz wiedzie, w jednej procedurze (w naszym przypadku na klikniciu na przycisk) moe wystpi tylko jedna zmienna o nazwie x

Ikonki

vbCriticalIkonka krytyczna (przekrelone czerwone keczko z charakterystycznym dwikiem)

vbQuestionIkonka pytania (Dymek, a w nim pytajnik)

vbExclamationIkonka ostrzegawcza (ty trjkt z wykrzyknikiem)

vbInformationIkonka informacji (Dymek a w nim literka i)

vbSystemModalBrak ikonki. Za to na pasku tytuowym pojawia si ikonka windows

Przyciski

vbOKonlyTylko OK. nie trzeba tego pisa. On i tak jest uywany domylnie

vbOKCancelPrzycisk OK. i Anuluj

vbAbortRetryIgnorePrzyciski Przerwij, Ponw prb i Zignoruj

vbYesNoCancelPrzyciski Tak, Nie, Anuluj

vbYesNoTylko przyciski Tak i Nie

vbRetryCancelTylko przyciski Ponw i Anuluj

MsgBox zwraca:

1vbOK

2vbCancel

3vbAbort

4vbRetry

5vbIgnore

6vbYes

7vbNo

To bdzie Ci potrzebne (chodzi mi o to co zwraca MsgBox) w nastpnej lekcji gdy poznasz funkcj warunkow If.

ZADANIE DOMOWE:

Napisz program z dwoma przyciskami Jeden o nazwie Witaj i kolorze czerwonym, a drugi Pytanko i kolorze jasno niebieskim. Klikajc na pierwszym powinien wywietli si komunikat Jestem spoko z ikonk informacyjn i przyciskiem OK. Zmie tytu na Przywitanie. A drugi z tekstem Czy mnie lubisz z ikonk pytania i przyciskami Tak Nie, oraz o tytule Mae pytanko.

W nastpnej lekcji nauczymy rozpoznawa program co wybrae. Tak np. Gdy na pytanie czy mnie lubisz odpowiesz tak program ci podzikuje. Jeli nie to wyrazi swj al.

Powodzenia

LEKCJA 2

Witajcie! Oto druga lekcja programowania w Visual Basicu. Mam nadziej, e uporalicie si z zadaniem domowym. Teraz obiecane dokoczenie programu...

Napisalimy program w ktrym po naciniciu przycisku "Pytanko" program wywietla komunikat "Czy mnie lubisz ?" z ikonk pytania i przyciskami Tak Nie, oraz o tytule Mae pytanko. Tak wic kod wyglda tak:

Private Sub cmdPytanko_Clickx = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Mae Pytanko")End Sub

No to odpalamy nasz program i co? Naciskamy przycisk - dostajemy pytanie, dajemy odpowied ale nic si nie dzieje... Chmmm. Co by tu zrobi. Moe sprbujmy dopisa drugiego message Boxa z odpowiedzi .

Private Sub cmdPytanko_Clickx = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Mae Pytanko")y = msgbox("Fajnie, e mnie lubisz ! ",vbExclamation,"Mae pytanko")End Sub

Odpalamy nasz program. Odpowiadamy na pytanie komputera "Tak". I udao si ! Hurra ! Niestety. Nasz program jest zy. Dlaczego? Sprbuj odpowiedzie komputerowi "Nie". I co? Ale dlaczego? Przeledmy kod programu:pierwsza linijka- wiadome deklaracja zdarzeniadruga linijka - program ma wywietli komunikat z pytaniem po odpowiedzi:trzecia linijka - program ma wywietli podzikowanie.czwarta linijka - koniec

Faktycznie bez sensu - a moe by dopisa czwart linijk z odpowiedzi "Strasznie mi przykro". E tam to by byo jeszcze gupsze. Po daniu odpowiedzi najpierw zobaczylibymy komunikat "Fajnie...", a za chwil "Przykro mi".

Musimy zastosowa funkcj warunkow IF. O niej bdzie wicej w nastpnych lekcjach. Na razie musisz wiedzie, e IF znaczy (Jeli). Chyba ju przeczwacz do czego bdzie suy. Tak, to ona zdecyduje o tym co ma zosta wywietlone. Ale jak?

Musisz teraz wrci do poprzedniej lekcji i zobaczy co zwraca funkcja MsgBox. Jak to co zwraca? Ach. Nie wytumaczyem jeszcze tego. Przed kadym msgBox stoi pewna zmienna (np. x=msgbox(...)). Zwraca tzn. zapisuje do x. Jeli Ty naciniesz przycisk Tak wtedy x=6 a jeli Nie wtedy x=7 (dlaczego - zobacz co zwraca MsgBox !). Tak nasz vbYes (= 6) to Tak a vbNo (= 7) to Nie. Czy wszystko si zgadza? Myl, e tak ! No i teraz funkcja IF ma rozstrzygn co si stanie gdy x=6 i gdy x=7.

UWAGA !!! Potrzebna nam tu bdzie jeszcze jedna funkcje (BARDZO WANA). W kolejnych lekcjach dowiesz si wicej o tej funkcji. Praktycznie kady program musi j zawiera. Jest to funkcja DIM. funkcja jest odpowiedzialna za pamitanie. O co chodzi. Zmienna x moe mie wartoci 6 lub 7. I tu wanie ma ona zapamita co wybrae - czy 6 czy 7. Podam to na przykadzie:

Private Sub cmdPytanko_Clickx = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Mae Pytanko")'w linijce powyej rozstrzyga si sprawa o x. Jeli na pytanie odpowiesz tak x=6, a jeli Nie to x=7. Niestety, gdy dotrze do tej linijki x=0 gdy program nie ma obowizku zapamitania xEnd Sub

A wic jak to zrobi aby byo dobrze? Po prostu dopisujemy DIM x - (Pamitaj x)

Private Sub cmdPytanko_ClickDim xx = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Mae Pytanko")'teraz x=7 a do zakoczenia tej procedury (czyli do End Sub)End Sub

Czyli nasz program wyglda tak:

Private Sub cmdPytanko_ClickDim xx = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Mae Pytanko")End Sub

Teraz dodamy instrukcj IF. Ale przed tym musimy pozna jej skadni:

If x=6 theny = msgbox("Fajnie, e mnie lubisz ! ",vbExclamation,"Mae pytanko")End IfIf x=7 thenz = msgbox("Strasznie mi przykro...",vbExclamation,"Mae pytanko")End IF

Przetumaczmy to na polski:

Jeli x bdzie rwny 6 toKomunikat z tekstem "Fajnie...", ikonk wiadomoci i tytule "Mae pytanko"Zakoczenie instrukcji po jeli = 6Jeli x bdzie rwny 7 toKomunikat z tekstem "Przykro mi...", ikonk wiadomoci i tytule "Mae pytanko"Zakoczenie instrukcji jeli = 7

W takim razie nasz program bdzie wyglda tak :

Private Sub cmdPytanko_ClickDim xx = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Mae Pytanko")If x=6 theny = msgbox("Fajnie, e mnie lubisz ! ",vbExclamation,"Mae pytanko")End IfIf x=7 thenz = msgbox("Strasznie mi przykro...",vbExclamation,"Mae pytanko")End IFEnd Sub

Teraz cay program tumacz jeszcze raz:

Wywietl komunikat z pytaniem (Tak=6, Nie=7)Jeli x bdzie rwny 6 toKomunikat z tekstem "Fajnie...", ikonk wiadomoci i tytule "Mae pytanko"Zakoczenie instrukcji jesli = 6Jeli x bdzie rwny 7 toKomunikat z tekstem "Przykro mi...", ikonk wiadomoci i tytule "Mae pytanko"Zakoczenie instrukcji jeli.Koniec procedury

Prawda, e logiczne?

W tej lekcji poznae dwie nowe funkcje - DIM oraz IF. O DIM-ie dowiesz si wszystko w nastpnej lekcji. O IF-ie troszeczk pniej.

W tej lekcji nie zadaj zadania, gdy nie omwiem tutaj szczegowo adnej z funkcji. Powicz sobie jedynie to co poznae.

Tak wic do nastpnego spotkania w lekcji 3

LEKCJA 3

Wanie dotare do lekcji 3 mojego kursu. Jak obiecaem na tej lekcji poznasz szczegowe zastosowanie funkcji DIM. No wic zaczynamy

Jak pamitasz funkcja DIM ma zapamitywa co w danej chwili znajduje si w zmiennej. Teraz pytanie. Czy do poniszego kodu musz doda instrukcj DIM?

x=7if x=6 then msgbox("Witaj")

Odpowid brzmi NIE ! Dlaczego - przecie program musi wiedzie, e x=7. PAMITAJ - DIM suy do pamitania zmiennych a nie staych. Przecie x zawsze bdzie rwny 7 ! To jest zadeklarowane w pierwszej linijce. Program dochodzc do linijki 2 napotyka instrukcj IF - czyli jeli x=6 ... Program wic cofnie si, aby sprawdzi ile to jest x. Linijka wyej - owiadczenie, e x=7. A poniej trzeba zastosowa instrukcj DIM ?

x = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Mae Pytanko")If x=6 theny = msgbox("Fajnie, e mnie lubisz ! ",vbExclamation,"Mae pytanko")End IF

TAK! To jest nawet przykad z ostatniej lekcji. Ale myl, e teraz kapniesz o co chodzi. Dochodzimy do linijki 2 i mamy instrukcj IF. Teraz program musi sprawdzi ile to jest x. Wraca si wic linijk wyej i widzi x=msgbox(...). Niestety - program w tym momencie nie pamita czy wybrae Tak czy te Nie. Przecie od tego zaley warto x. Tak wic program nie wiedzc co jest w x - przyporzdkowuje mu warto 0 i program jest do bani. Tak wic MUSISZ doda na pocztku programu instrukcj DIM x.

Wiem ze swojego dowiadczenia, e atwo zapomnie o dopisaniu tej funkcji. Pniej musiaem dochodzi gdzie tkwi bd w moim programie. Jednak Visual Basic 6 (i chyba 5 te) oferuje funkcj przypominania. Tzn. jeli nie dodamy instrukcji DIM ktra bdzie potrzebna VB zasygnalizuje bd. Warto j wczy. Wystarczy z menu wybra Tools - Options. I teraz zaznazcmy funkcj "Require Variable Declaration". Od tej pory VB zawsze nam przypomni o zapomnianym DIM-ie.

No! Pierwsze zastosowanie DIM-a z gowy. Musisz jednak wiedzie, e DIM moe przechowywa inne dane. Do tej pory wiesz, e ta instrukcja przechowuje dane liczbowe. Tak jak w powyszych przykadach miaa zapamita czy x=6 czy 7. Ale trzeba wiedzie, e DIM moe przechowywa dane innego typu. Oto one:

BooleanPrzetrzymuje True lub False

ByteLiczby cakowite z zakresu od 0 do 255

CurrencyLiczby z zakresu -922337685477,5808 do + ( -||- )

DateData od 01.01.0100 - 31.12.9999

DecimalLiczba zapisana z dokadnoci do 28 liczb po przecinku

DoubleLiczba z zakresu -1,79769313486232E+308 do + ( -||- )

IntegerLiczba z zakresu od -32768 do 32767

SingleLiczba z zakresu -3402823E+38 do + ( -||- )

StringDane znakowe (alfanumeryczne)

VariantDowolne - nie musimy tego pisa gdy Variant jest domylnie

Funkcj DIM deklarujemy nastpujco:

DIM x as typ

Jak widziae wczeniej w zadaniu pisalimy samo DIM x. Jest to rwnoznaczne z zapisem:

DIM x as Variant - gdy variant jest domylne.Od tej pory bdziemy stosowa nastpujcy zapis:DIM x as Byte - dlaczego? Pomylmy... Jakie wartoci moe przyj x ? Tylko 6 i 7. A wic Byte jest najmniejszym zakresem speniajcym nasze kryteria. A dlaczego nie zostawi po prostu DIM x ? Instrukcja DIM x jest bardziej pamicioerna przez co program bdzie dziaa troch wolniej. Na szybkich komputerach i maych programach nie odczujemy tego. Jeli jednak przyjdzie nam napisa objtociowo duy program na wolny komputer, bdzie on dziaa troch wolniej ni z poprawnymi instrukcjami DIM. Uffff... No myl, e kapujecie o co chodzi. Tak wic pamitajcie. Stosujcie najmniejszy zakres speniajcy kryteria zmiennej !!!!

A co si stanie gdy pomylimy sobie zakresy? Np gdy zmienna x bdzie moga mie wartoci 6 i 7 a zakresem bdzie typ (Boolean - czyli Prawda lub Fasz) ? Sprbujmy.

Na formie stwrz przycisk. Kliknij na niego dwukrotnie i wpisz:

Dim x As Booleanx = MsgBox("Co wybierasz ?", vbYesNo)c = MsgBox(x, vbCritical)

Przeanalizujmy kod. Pierwsza linijka - deklarujemy zmienn dla wartoci True lub False.Druga linijka - znany nam MessageBox z pytaniem. Pamitaj, e zalenie od naszego wyboru x powinien wynosi 6 lub 7Trzecia linijka. Co to bd ? x nie jest wzite w cudzysw ?! Nie to nie bd. Nie chc aby powsta komunikat o treci "x" ale eby komunikat poda nam co jest w x. Innymi sowy mwic powinien pojawi si komunikat z treci: "6" lub "7". No to uruchamiamy nasz program i co? Program zamiast 6 lub 7 pokaza jakie True! Wanie oznacza to e mamy le zadeklarowan zmienn x. Zmiemy wic instrukcj DIM x as boolean na DIM x as byte. I co teraz? Uruchom program, odpowiedz na pytanie twierdzco. I co jest 6 ? A przeczco - jest 7! Tak wszystko dziaa jak trzeba. Myl, e wiesz ju co o deklarowaniu zmiennych. Okazj do powiczenia bdziemy mie w nastpnej lekcji.

Ale przed zakoczeniem obecnej lekcji musz Wam janiej wytumaczy o co chodzio z tym MsgBox-em wywietlajcym zmienn.

Napiszmy may program: Jak zwykle na formie przycisk. 2x na niego i piszemy:

to_co_w_msgBox = "Co jest?"c = MsgBox(to_co_w_msgBox)

Uruchamiamy - i dostajemy komunikat "Co jest? ". A teraz w message boxie dodajmy cudzysowy: c=MsgBox("to_co_w_msgBox"). I co teraz? Dostajemy komunikat "to_co_w_msgBox" - no myl, e zrozumiae o co chodzi !

Do nastpnego spotkania !

LEKCJA 4

Witajcie po raz kolejny. W dzisiejszej czci kursu nauczycie si posugiwa TextBox-em oraz Label-em (Etykiet). Napiszemy prosty program, w ktrym bdziemy mie TextBox-a w ktrego trzeba bdzie wpisa liczb. Po naciniciu przycisku, liczba zostanie podniesiona do kwadratu, a wynik zobaczymy w polu Label.

Co to jest Label? Wanie - label znaczy etykieta. Jest to pewne pole tekstowe, w ktrym widnieje jaki tekst. Tym rni si od pola tekstowego, e nie moemy edytowa jego zawartoci. Tak wic TextBox bdzie suy do wpisywania tekstu przez nas, a w label komputer zwraca nam bdzie odpowied (Ktrej oczywicie nie bdzie si dao edytowa). Tak wic zaczynamy:

Odpalamy VB. Na formie ukadamy (gdzie na dole) przycisk - nadajemy mu nazw cmdLicz, a w Caption wpisz Licz. No mamy przycisk. Tylko gdzie bdziemy teraz wpisywa liczb ? Oczywicie w pole tekstowe. Ale jak? Musimy go odnale na pasku narzdzi (pamitaj - wszystko co ukadamy na formie jest po lewej stronie). Jest to biay prostokt z wpisanymi literkami "ab". Widzisz? Nie? Drugi od gry, druga kolumna. No! Teraz ustawmy go gdzie na formie. Najlepiej u gry. Ustawia si go tak samo jak przycisk (CommandButton). O jest TextBox. Domylnie wpisane jest tam Text1. No to musimy to zmieni. Nie szukaj Caption ! Odpowiednikiem tego jest tutaj Text. Odnajd go w oknie properties. Teraz wyczy pole. No mamy czyciutkiego texbox-a. Teraz zmiemy jego nazw np. na txtLiczba. OK. Pomylmy teraz przez chwil. W pole tekstowe wpisz np. 7, przycisn przycisk licz i co? No wanie - i co? Moemy zastosowa funkcj MsgBox, aby wywietlaa odpowied. E tam. Sprbujcie sami. Ja na tej lekcji od razu chc Was nauczy co o funkcji Label. Tak wic na formie ukadamy Label. Jest on widoczny na pasku narzdzi jako dua litera "A", tak, to ta obok TextBox-a. I co - to tylko jakie szare pole bez kropek. Widzimy w nim napis Label1 - zmiemy to na "Twj wynik to:" oczywicie w opcji Caption. Nadajemy mu nazw lblStalyTekst i zmniejszamy pole tak aby obejmowao jedynie tekst. Obok niego postawmy drugie pole Label, nadajmy mu nazwe lblWynik i wyczymy zawarto (Caption). Aby wszystko elegancko wygldao zmie etykiet Formy na "Do kwadratu".

Teraz zajmiemy si kodem. Program zacznie liczy po naciniciu przycisku licz. Tak wic kod umiecimy wewntrz niego. Klikamy wic dwukrotnie na przycisku i pomylmy. Co nasz program ma robi? Ma podnie liczb wpisan do pola tekstowego do kwadratu i wynik wywietli w polu label. Wyglda to bdzie tak:

lblWynik.Caption = txtLiczba ^ 2

Co to znaczy? Ot przed przeliczeniem w lblwynik.Caption nie ma nic. Chyba wiesz co to jest lblWynik? Nie. To jest nasze pole Label w ktrym nie ma nic wpisanego. Dobra - ale co to jest w takim razie to Caption ? A pamitasz jak kasowae zawarto pola Label? Wanie w caption. Jeli by w caption wpisa np ble,ble,ble to na twojej etykiecie pojawiby si taki tekst. My teraz chcemy aby w naszej etykiecie pojawi si wynik. I wanie do tego go teraz zmuszamy. Po prawej stronie zwyke rwnanie czyli nasza liczba do kwadratu. Uruchom program - i co dziaa?

Pamitaj, e w okienko textowe musisz wpisa jak liczb inaczej wyjdzie bd. Kiedy naucz Was jak zapobiega takim przypadkom, na razie jednak musisz pozna podstawy.

ZADANIE DOMOWE

Napisz program z dwoma polami tekstowymi, czterema przyciskami i jednym polem label. Program ma wykonywa pewne dziaania matematyczne. Przyciski kolejno powinny wykonywa funkcje: dodawanie, odejmowanie, mnoenie i dzielenie liczb podanych w textbox-ach. Wynik oczywicie powinnimy dosta w polu Label.

UWAGA !!! Przy dodawaniu bd pewne problemy. (UWAGA !!! Posiadacze wersji VB 5 musz to zastosowa do wszelkich operacji arytmetycznych czyli take mnoenie, dzielenie, odejmowanie itp...) Mianowicie jeli w pierwsze pole textowe wpiszesz 4 a w drugie 6, to po zsumowaniu nie ujrzysz liczby 10, a 46. Dlaczego? Visual Basic myli, e operujesz na literach i dodajesz je. Musisz programowi powiedzie, e to co wpiszesz w pole tekstowe jest liczb. Suy do tego funkcja CSng. Jak j uy:

Private Sub cmddodaj_Click()Dim a, b As Singlea = CSng(txta)b = CSng(txtb)lblwynik = a + bEnd Sub

Przyjem, e pierwszy textbox nazywa sie txta a drugi txtb.W tym momencie przyporzdkowujesz zmiennej "a" to co jest w textbox-ie1 jako liczb. Pamitaj, e w Textbox-ie jest zawsze tekst (liczba w kocu to te tekst) . Musisz ten tekst dopiero przerobi na liczb, a dopiero potem wykonywa dziaania arytmetyczne.

Tutaj zaczam gotowy program, wystarczy, e klikniesz na ikonk dwukrotnie.

Aha, zapomniaem napisa, jak uruchomi zapisany projekt. Po rozpakowaniu programu, uruchamiamy plik z rozszerzeniem VBP (nie frm !).

Miej pracy i do nastpnego kursu !

LEKCJA 5

Ach.. Jak ten czas leci. To ju lekcja pita kursu VB dla pocztkujcych. Jestem tylko ciekawy czy zrozumiae ostatnio funkcje CSng. Tumacz wszystko jeszcze raz.

Najprociej bdzie to zrobi na pewnym przykadzie. Zrbmy program z dwoma polami textowymi (textBoxem), etykiet (Label) i przyciskiem. Nazywamy je kolejno txtliczba1, txtliczba2, lblwynik i cmdlicz. Program bdzie musia doda do siebie liczby wpisane w textboxy, a rezultat wywietli w etykiecie. Tak wic w przycisku umieszczamy kod:

lblwynik = txtliczba1 + txtliczba2

Niby wszystko w porzdku. Uruchamiamy program. I jak w zdaniu otrzymujemy faszywy wynik. Pomylmy. Co by si stao gdyby zamiast liczb do textbox-w wpisalibymy jakie litery ? Sprbujmy. W pierwszy np. wpisz "Al" a w drugi "ina" i zsumuj - co wyszo? Alina? Wanie, dla VB znak "+" ma dwojakie znaczenie. W przypadku zwykych znakw jest to konkatencja, czyli poczenie dwch acuchw. Wszelkie acuchy znakw Visual Basic interpretuje w cudzysowach (""), daty w ##, a liczby zostawia same. W tym przykadzie dajesz programowi instrukcje:

lblwynik = "To co wpisane w textbox1" + "To co wpisane w textbox2"

Dla przykadu jeli w textboxie1 masz wpisan liczb 3 a w textboxie2 liczb 7 to VB rozumuje:

lblwynik = "3" + "7" - a to daje 37

No wic jak zrobi aby 3+7=10 ? Wanie tak jak tu jest zapisane - program musi rozumie:

lblwynik = 3 + 7 - a to da w wyniku 10

No dobra, ale jak to zrobi ? Musimy wiedzie, e istnieje co takiego jak konwersja danych. Na pocztku mamy dan typu String czyli "3", a po konwersji dan typu Single czyli 3.Moemy wic program "naprawi" w ten sposb:

Zamiastlblwynik = txtliczba1 + txtliczba2 wpisalblwynik = CSng(txtliczba1) + CSng(txtliczba2)

Wyprbujmy nasz program. Dziaa jak trzeba ? No uporalimy si z tym. Jednak jest bardziej elegancki (bardziej przejrzysty) sposb:

Dim a,b as singlea = CSng(txtliczba1)b = CSng(txtliczba2)lblwynik = a + b

Ta lekcja bya krtka, ale bardzo wana. Musisz zrozumie to, gdy bez tego nie bdziesz w stanie pisa programw operujcych na liczbach !!!

ZADANIE

Na ostatniej lekcji nie omwiem opcji zwizanych z etykiet. Na zadanie macie pozna najwaniejsze opcje tzn. pobawi si nimi - fajnie co?

-BackColor - zmienia kolor ta etykiety-BorderStyle - efekt wgbienia-Caption - chyba wiadomo o co chodzi ;)-Font - chyba te wiadomo...-ForeColor - kolor tekstu na etykiecie

LEKCJA 6

Dzisiaj poznamy funkcj InputBox. Jest to komunikat, z wbudowanym polem tekstowym. Moe nas np. zapyta o imi, a my mu od razu odpowiemy. Chcesz sprbowa ? No to do dziea

Jak zwykle tworzymy program z przyciskiem. Wewntrz niego umieszczamy nastpujcy kod:

Dim x as stringx = InputBox ("Jak masz na imi ?")

Uruchamiamy nasz program i co? Fajne okienko, ale jak zmieni tytu?

x = InputBox("Jak masz na imi?"," Tutaj tytu", "Tu domylna odpowied")

Dobra, napiszmy program ktry pyta si ciebie jak masz na imi, a nastpnie w MsgBox-ie przywita nas "Witaj -imi-"

W przycisku umieszczamy nastpujcy kod :

Dim x,y as stringx = InputBox ("Jak masz na imi ?","Przywitanie","Moe Marek...")y = MsgBox ("Witaj_" & x ,vbExclamation,"Przywitanie")

Uruchamiamy i co? Fajnie! Program dziaa. No tak, ale o co tu chodzi ? Wyjaniem linijka po linijce:

1.Deklaracja zmiennych x i y - chyba nie musz tumaczy...2.Pytanie do uytkownika. To co wpiszesz w pole tekstowe zostanie zapisane do zmiennej x3.MessageBox z tekstem Witaj -i tu to co w x-

O co chodzi z tym msgboxem? Po otwarciu nawiasu mamy zwyky tekst wpisany w cudzysw. Pniej widzimy jakie & x. znak & suy do czenia acuchw (podobnie jak +). W tym momencie czy on tekst "Witaj" z x-em czyli naszym imieniem. Powstaje wic jeden cig znakw ktry widzimy w msgBox-ie. Dalej ju wiadomo.

ZADANIE

Powicz sobie funkcje MsgBox, InputBox, przypomnij sobie instrukcj IF.

LEKCJA 7

Witajcie znowu ! Dzi nauczycie si posugiwa funkcj IF. If,if,if - czy ja tego ju gdzie nie syszaem? Tak, wanie t funkcj miae sobie na dzisiaj przypomnie.

Co bymy dzisiaj napisali ? Moe program, ktry uruchomisz tylko po podaniu hasa. Fajny pomys. Po drodze poznasz jeszcze kilka funkcji. Tak wic zaczynamy...

Teraz pomylmy. Kiedy i jak mamy poda haso. Najlepszym sposobem bdzie InputBox (te miae go na dzi powtrzy). Czyli jak zwykle przycisk... Zaraz, zaraz. Ale my chcemy, aby okienko proszce nas o podanie hasa uruchomio si przed programem. Jak to zrobi. Pamitasz jak wprowadzalimy kod do przycisku? Tak - dwa razy click na przycisku. Musisz wiedzie, e kod moemy wprowadza praktycznie do kadego obiektu ustawionego na formie, a take na niej samej. I tak wanie zrobimy w naszym przypadku. Kliknijmy dwa razy na form. Pojawi si co takiego:

Private Sub Form_Load()

End Sub

Co to jest? Tu wanie jest miejsce na wprowadzenie kodu ktry bdzie wykonany przed zaadowaniem si formy (wiadczy o tym sowo Load). Tak wic napiszmy funkcj wywietlajc okienko tekstowe z prob o podanie hasa:

Dim haslo as stringhaslo = InputBox ("Prosz poda haso dostpu","Haso")

Teraz gdzie musimy ustali jakie bdzie haso. A wic piszemy dalej:

If haslo "SLASH" thenx = msgbox("Podae ze haso",vbcritical,"Bd")EndElsey = msgbox("Podae dobre haso",vbExclamation,"OK")End IF

Cholera ! Ale ten SLASH zamci. Co to ma by!Nie przejmuj si ! Zaraz Ci wszystko wytumacz, ale najpierw uruchom program.Pojawia si InputBox - podaj ze haso. Wyskakuje komunikat i... program si zamkn. No dobra - uruchamiamy go jeszcze raz i tym razem podajemy dobre haso - i co - tak program uruchomi si. Czas by Wam wytumaczy co si tu dzieje:

1. Dim haslo... - chyba wiesz ;). Tu oczywicie deklaracja zmiennej2. Input Box - tu wanie pojawia si proba o podanie hasa3. If haslo "SLASH" then - Jeeli haso bdzie mniejsze lub wiksze (czyli nierwne - nie bdzie si zgadzao) od "SLASH" wtedy...4. msgbox - Komunikat o zym podaniu hasa5. End - i tu UWAGA. Nowe polecenie - suy ono do koczenia programu - czyli jeli ze haso program si zamyka6. Else - UWAGA - rozszerzenie instrukcji IF - oznacza ono "W przeciwnym przypadku" - o co tu chodzi ? Wr do linii 3. Widzisz tam instrukcj Jeeli haso nierwne "SLASH" to..., a tu mamy w przeciwnym przypadku - czyli haso rwne "SLASH". Oczywicie moemy napisaIf haslo = "SLASH" then ... - ale przecie else jest duo krtsze .7. MsgBox - wiadomo, komunikt, e poprawnie podae haso8.End If - tu koczymy instrukcj IF/ElseNo i w kocu dotarlimy do koca, pojawia si forma !

No, myl, e zrozumiae o co tu chodzio. Napiszmy jeszcze jeden program pytajcy si nas o wiek.

Na formie ukadamy przycisk. Dodajemy do niego nastpujcy kod:

Dim wiek As ByteDim x, y, z As Bytewiek = InputBox("Podaj, ile masz lat", "Pytanie o wiek", "17")If wiek < 12 Thenx = MsgBox("Jeste jeszcze za mody na pewne rzeczy", vbExclamation, "Mody")ElseIf wiek >= 40 Theny = MsgBox("Jeste w peni wieku", vbExclamation, "Strszy")Elsez = MsgBox("Jeste jeszcze mody", vbExclamation, "redni wiek")End If

Teraz objaniam:1,2,3. Pierwszych trzech linijek chyba nie musz tumaczy ;)4. If wiek < 12 then - jeli wiek bdzie mniejsy od 12 to...5. MsgBox - Komunikat, e jeste za mody6. UWAGA - nowe wyraenie ElseIF - jak si domylasz jest to poczenie instrukcji Else (w przeciwnym przypadki) z IF (Jeli) - i co z tego wychodzi? W przeciwnym przypadku jeli...Dlaczego ? Pamitaj, e nie moemy uy wicej ni jednej instrukcji IF pod rzd. Co najwyej IF i Else - ale nigdy IF, IF, Else - po prostu wyskoczy bd. Zamiast tego stosuje si instrukcj ElseIF, ktr moesz uy w dowolnej iloci w programie.Tumacz - jeli wiek bdzie wikszy lub rwny 40 to...7. y=MSgBox... - wiadomo o co chodzi...8. Else - w przeciwnym przypadku...9. Nastpny MessageBox10. Zakoczenie instrukcji IF

I co atwe?

Myl, e na dzisiaj wystarczy. Pewnie ju mylisz co ten Slash wymyli na nastpny kurs - powiem ci tylko jedno - prawie to samo co dzisiaj. Poznasz jedynie poczenie instrukcji IF z operatorami logicznymi. Na dzi zrb sobie przerw...

LEKCJA 8

Wyspani ? No to do dziea !!! Dzisiaj dowiesz si co to s operatory arytmetyczne i jak ich uywa. Myl, e umiesz ju posugiwa si instrukcj IF. Bdzie nam dzisiaj bardzo potrzebna. Dobra. Czy kto wie co to s operatory arytmetyczne? Nie? No to zaczynamy:

W Visual Basicu bdziemy posugiwa si nastpujcymi operatorami: And , Or, Not.And to nasze polskie "i", Or to lub, a Not to nie. Ale o co tu waciwie chodzi. Wyjani to na prostym przykadzie:

Mamy dwie firmy ktre przynosz dochody. Tak wic uruchamiamy VB, tworzymy dwa pola tekstowe i przycisk. Pierwsze pole nazywamy txtFirma1, a drugi txtFirma2, oczywicie czycimy ich zawarto (Text). Przycisk nazwijmy np. cmdWynik. Nadajmy mu etykiet (Caption) "I co ?". Teraz napiszemy procedur, tak abymy dostali gratulacje jeli dochody jednej i drugiej firmy przekrocz 5000 z. No to do przycisku "I co?" dodajemy kod. No wanie, ale jaki. Jak si pewnie domylasz bdziemy musieli uy instrukcji IF. Czyli Jeeli dochd pierwszej firmy bdzie wikszy ni 5000 to komunikat... Zaraz, a co z drug firm? Pierwsza moe przynie zysk w wysokoci 6000 z, a druga straty w wysokoci 9000 z. I co? Program ma nam pogratulowa ? Mona by uy prostej funkcji matematycznej. Mianowicie dodawania. Skoro i jedna i druga firma ma przynie zysk pow. 5000 z, no to w sumie maj przynie zysk 10000 z. No dobra. Ale jak pierwsza przyniesie zysk 20000 z, a druga jakkolwiek strat to program te ma nam gratulowa. Nie sdz. My musimy zaznaczy, e i jedna i druga ma by dochodowa i przynosi zysk pow. 5000 z. Po polsku powiedzielibymy tak:

Jeeli firma1 przyniesie zysk pow. 5000 i firma2 przyniesie zysk pow. 5000 z to... gratulacje.

I tak wanie bdzie brzmia Visual Basicowy jzyk:

Dim xIF txtfirma1 > 5000 and txtfirma2 > 5000 thenx = msgBox("Gratulacje",vbInformation,"Dochd")End IF

Uruchom program i co? Wpisz obydwie dane pow. 5000. Otrzymujesz gratulacje. A zmie jedn z danych np. na 4000. Gratulacji ju nie otrzymujemy. No wic program dziaa. Myl, e ju rozumiesz operator And. Jeli tak, to nie bdziesz mie adnych problemw z operatorem Or (lub). Sprbujmy zamieni w naszym programie and na or. Teraz rozumiemy to tak:

Jeeli firma1 przyniesie zysk pow. 5000 lub firma2 przyniesie zysk pow. 5000 z to... gratulacje.

Uruchamiamy program wpisujemy np. 6000 i 7000. I co? Gratulacje. Tutaj dziaa tak samo jak z And. No dobra. Zmiemy jedn dan np. na 2000. I co? Take gratulacje. W tym przypadku program szuka w obydwu polach tekstowych liczby wikszej od 5000. Jeli znajdzie jakkolwiek (czyli w txtFirma1 lub txtFirma2 lub w obydwu) to otrzymujemy gratulacje. No te myl, e nie miae z tym wikszych problemw. Zosta nam jeszcze operator Not. Nie powinnimy go stosowa -bo gdzie wyczytaem, e moe doprowadzi do nieoczekiwanych wynikw - sam jednak nigdy z nim nie miaem problemw. Faktycznie, lepiej zastpuje si go odwrotn instrukcj do danej. Oto przykad.

Mamy jedn firm ktra powinna przynosi dochody. Gratulacje moemy wywietli na dwa sposoby.

1. Operator NOT

Dim xIF NOT txtFirma1 < 5000 thenx = msgBox("Gratulacje",vbInformation,"Dochd")End IF

Jednak pisanie takich instrukcji jest bez sensu. Dlaczego ? Przetumaczmy:

Jeli dochd firmy1 NIE mniejszy ni 5000 to... gratulacje

Lepiej zapisa tak:

IF txtFirma1 >= 5000 then

Prawda, e bardziej czytelne. Staraj si nigdy niestosowa tego operatora. Zawsze da si go zastpi przez zmian znaku na przeciwny.

Teraz jeszcze dopenienie do InputBox-a. Zapomniaem Wam napisa, jak sprawi aby dziaa przycisk "Cancel" na InputBox-ie. Pokae to na przykadzie z imieniem, ktry bralimy na lekcji 6

Dim x,y as stringx = InputBox ("Jak masz na imi ?","Przywitanie","Moe Marek...")IF x = "" then endy = MsgBox ("Witaj_" & x ,vbExclamation,"Przywitanie")

Wyjanienie do IF-a. S tu pewnie dwie rzeczy ktrych nie rozumiesz.Po pierwsze. Dlaczego akurat x = "" ? Jeli naciniesz przycisk "Cancel" VB nie przypisuje nic do zmiennej x. Wykorzystuje to wanie IF ktry koczy program w tym momencie.Po drugie. Dlaczego po "then" nie zakoczyem linii i nie daem instrukcji End IF.Ot, jeli nie masz zamiaru uy instrukcji Else, lub ElseIF, a twoja instrukcja warunkowa mieci si w jednej linijce. (jak np. moja - End) nie musisz rozpoczyna nowej linijki i co za tym idzie koczy IF-a

LEKCJA 9

Witam Was znowu, ju w 9 lekcji kursu VB. Zastanawiaem si wanie ile bdzie tych lekcji. Z moich wylicze wynika, e nie mniej ni 50 !. Tak, tak ! To jest gorzka prawda. Visual Basic cho jest jzykiem programowania atwym (czytaj najatwiejszym), to jednak jego moliwoci s bardzo due. Te 50 lekcji to bd podstawy, a potem? Myl, e potem bdziemy mwi co o bazach danych i API (o ktrym sam nie mam pojcia - na razie). No dobra skupmy si jednak na dzisiejszej lekcji. Dowiesz si na niej co o funkcji Select Case (Przypadek).

Funkcj Select Case zawsze mona zastpi funkcj IF - jednak funkcja Case ma duo krtszy zapis. Poka to na przykadzie programu pytajcego nas o wiek.Uruchamiamy VB - tworzymy przycisk i dodajemy do niego kod:

Dim wiek As Currencywiek = InputBox("Podaj swj wiek...", "Pytanie o wiek")If wiek , 0 and wiek =, a . Przeciwnoci jest =.Pamitaj take o zmianie operatorw - Or zamienia si na End i odwrotnie.

Linie moemy przetumaczy tak:

Dopki wiek bdzie nie wikszy ni 0 i nie mniejszy ni 120 to...

Mylisz pewnie, e nigdy nie zastosujesz tej funkcji - bo i po co? Skoro mona j zamieni na bardziej zrozumia Do While, to po co zaprzta sobie gow tym. Sam przyznaj, e funkcj Do Until bdziesz uywa znacznie rzadziej, ale bdziemy pisa takie programy, e bdzie ona najwygodniejszym sposobem.

I co tu wicej pisa. Praktyczne zastosowanie tej funkcji poznasz ju za niedugo. Skoro mowa o ptlach to powiemy jeszcze co o ptlach odwrotnych.

Ptla: Do While... LoopOdwrotna: Do... Loop While

Tak samo moemy postpi z Until... Dobra, ale czym ona si rni od normalnej ptli ? Najlepiej zobrazowa to na maym shemaciku...

Blok instrukcji (1)Do While...Blok instrukcji (2)LoopBlok instrukcji (3)

W przypadku normalnej ptli program wykonuje si tak:Blok instrukcji (1), teraz albo blok instrukcji (2), albo po kilku (lub jednej) ptli blok instrukcji (3)

A teraz funkcja odwrotna do poprzedniej

Blok instrukcji (1)Do Blok instrukcji (2)Loop While...Blok instrukcji (3)

A teraz program wykonuje si tak:Blok instrukcji (1), Blok instrukcji (2), teraz albo blok instrukcji (3), albo znw Blok instrukcji (2) i tak kilka razy (lub raz) i na koniec blok instrukcji (3)

Generalnie rni si to tym, e w funkcji Do While - Loop, program moe, ale nie musi wykon tego co znajduje si midzy DO - LOOP. Za w funkcji odwrotnej program musi wykona przynajmniej jeden raz instrukcj zawart midzy DO - LOOP.

Funkcja jest rzadko stosowana (sam nigdy jej nie uywaem), zawsze j mona zastpi zwykym uoeniem. Ale warto wiedzie, e co takiego jest . Zawsze si moe zdarzy, e akurat bdzie ona lepsza.

Ufff... Dobrnlimy do koca tej lekcji (waciwie to bya sama teoria - dopenienie poprzedniej lekcji). Trzeba by wypi jakie piwo. Oczywicie bezalkoholowe ;) .Na nastpnej lekcji bdziemy bra ostatni z ptli... ptl For. Lekcja bdzie bardzo wana. For jest najczciej stosowan ptl w VB. Przed lekcj dobrze wypocznij.

LEKCJA 12

Dziedoberek !!! Jak tam samopoczucie? Dobrze? No to si ciesz ! Jak pisaem wczeniej przechodzimy dzisiaj do bardzo wanego tematu - Ptli FOR.

Czym rni si ona od ptli Do While, Do Until ? Ot, jak pamitasz ptle Do - wykonyway si dopki jej warunki nie zostay spenione. Ptla for wykonuje si za okrelon ilo razy. Tak np.

Dim x,y as byteFor x = 1 to 5y = MsgBox("To jest MessageBox nr. " & x, vbinformation,"Przykad")Next x

Ten program powoduje piciokrotne wywietlenie si MsgBox-a. Jak to dziaa ?

1. Dim - wiadomo co... ;)2. Dla x = od 1 do 53. MsgBox...4. Dodaj do x i wr

No dobra, ale jak to dziaa ? Przeanalizujmy...

Najpierw zainicjowanie zmiennych x i y. Dalej jest instrukcja for. Decyduje ona ile razy ma zosta wykonana ptla. W naszym przypadku jeli x=6 to przeskakuje za Next-a (Odpowiednik Loop-a z ptli DO-LOOP). Czyli tak - obecnie w zmiennej x jest 1 - to jest ta pierwsza liczba w FOR. Wykonuje si msgBox z wiadomoci "To jest MessageBox nr 1". Program dochodzi do funkcji Next x - oznacza ona - dodaj (1) i wr . Tak wic program wraca do For-a, tylko teraz w x jest liczba 2 - i znw MsgBox - To jest MessageBox nr 2. I znw dodaj 1 i wr, a tak do 5. Ale co potem... Zamy, e w x jest 5. Jestemy przy funkcji For - skoro do piciu to jeszcze raz ptelka - MessageBox i dochodzimy do Next x. Po tej operacji x = 6. Program wraca do for-a i okazuje si, e x nie spenia warunku ptli. Nastpuje przeskok za instrukcj Next - i program w ten sposb koczy dziaanie.Dokadne i praktyczne zastosowanie tej funkcji poznasz duo pniej - gdy bdziemy mwi o dostpie do plikw. Niemniej jednak bdzie nam ona bardzo potrzebna i musisz j zna.

Myl, e nie bdziesz mie z ni adnych problemw.

Ach, zapomniaem napisa o pewnym dopenieniu funkcji FOR - jest ni Step (czyli krok). Po prostu do funkcji For dopisz jeszcze Step i pewn liczb. Zastosujmy to do wczeniej napisanego przykadu. Bdzie to wyglda wic tak:

Dim x,y as byteFor x = 1 to 5 step 2y = MsgBox("To jest MessageBox nr. " & x, vbinformation,"Przykad")Next x

I co si tu dzieje... Pomylmy. Wchodzimy w funkcj FOR, nastpnie zapisuje ona do zmiennej x warto 1. Dostajemy wiadomo "To jest MessageBox nr. 1". I zatrzymujemy si na next. Pamitasz co on oznacza ? Tak, dodaj do x (w tamtym przypadku 1) i wr do FOR. Teraz sytuacja si zmienia. Funkcja STEP nakazuje FOR-owi, aby teraz do x doda 2. I co teraz. Wracamy si, i w x znajduje si liczba 3 ! A wic nie dostaniemy MessageBoxa z numerem 2 lecz 3. Znw NEXT czyli x+2 a to daje 5. Powrt, MessageBox nr 5. Znw Next, teraz x=7, powrt do FOR - ale niestety (?) For nie obejmuje ju liczby 7, a wic przeskok za Next i koniec. programu...

Zauwaye rnic? Chyba tak. Zamiast 5 Messag-w otrzymae tylko 3 !

Teraz zastosujmy funkcj for do liczenia silni danej liczby.Dobra, dobra - ale wikszo osb pewnie nie wie co to jest silnia.7! (czytaj. 7 silnia) - 1*2*3*4*5*6*7No dobra skoro wiesz co to jest ju silnia, bierzemy si do pisania programu.

Na formie u przycisk - jako warto "Caption" wpisz Silnia, i nazwij go cmdSilnia. No dobra, ale gdzie bdziemy wpisywa liczb... Musimy zrobi textBox-a. Wyczy warto Caption i nazwij go txtSilnia. Teraz dodaj do przycisku nastpujcy kod:

Dim x, odpodp = 1For x = 1 To txtSilniaodp = odp * xNext xss = MsgBox(txtSilnia & " ! to " & odp)

Czy potrafisz go przeanalizowa? Przynajmniej powiniene. Jeli jednak nie potrafisz tego zrobi przeanalizujmy razem:

1. Dim - zainicjowanie zmiennych2. Na pocztek ustalamy zmienn pocztkow. Ale dlaczego nie 0. Pomyl - mnoenie przez 0 zawsze daje w wyniku 0 - a wic bez sensu. Przy dodawaniu jako sta musisz da 0, a przy mnoeniu 1 !!!.3. Instrukcja for - od 1 do... ile? txtsilnia to jest wanie liczba ktr wpisae okienko.4. Teraz nastpuje przemnoenie staej przez x - czyli kolejn liczb naturaln zaczynajc od 1, a koczc na txtSilnia. Czyli nasze rwnanie (zamy, e w okienko wpisae 7) 1*2*3*4*5*6*7 czyli 7!. Po 7 okreniach otrzymujemy nasz wynik.

ZADANIE DOMOWE:

Napisz program z przyciskiem i polem tekstowym. Program ma dodawa tylko liczby parzyste zaczynajc od 2, a koczc na liczbie wpisanej w pole textowe.Moe troch trudne wic daj 2 podpowiedzi:Po pierwsze skoro dodawanie zaczynamy od 2 (bo 1 jest liczb nieparzyst) funkcj FOR te zaczniemy od 2.Po drugie - liczby parzyste to co drugie liczby. Tak wic bdziemy musieli uy funkcji STEP.

No to do dziea!

Jeli jednak nie moesz sobie poradzi z tym zadaniem przeanalizuj to...

Do nastpnego spotkania...

LEKCJA 13

Jakie powitanie by tu dzi wymyli... Moe po prostu WITAJCIE !!!Dzisiaj przed nami prosta, ale bardzo wana lekcja. Zmiana waciwoci komponentw kodem. Robilimy co takiego gdzie w pierwszych lekcjach kursu. Dzisiaj jednak zajmiemy si tym tematem szczegowo.

Musimy wrci do lekcji 1. Dla przypomnienia

(name)W tym polu wpisujemy nazw identyfikujc nasz etykiet najlepiej uywa skrtu lbl (od Label) np. lblNazwa

Alignment!!! Czyli wyrwnanie tekstu ktry znajduje si na etykiecie. Domylnie mamy ustalone 0 - Left Justyfy - czyli wyrwnanie do lewej krawdzi. Mona te ustawi 1 - Right... czyli wyrwnanie do prawej oraz 2 - Center - czyli wyrodkowanie tekstu.

captionChyba najwaniejsza Tu ustalamy wyrazy ktre maj znale si na naszej etykiecie

FontW tym oknie moemy ustali czcionk, wielko i efekty dla napisu

HeightWysoko etykiety. Raczej wygodniejsze jest rozciganie bezporednio na formularzu

LeftOkrela odlego etykiety od lewej krawdzi ekranu. Wygodniej jest przemieszcza etykiet bezporednio na formie.

BackColorTutaj kolor ta etykiety

ForeColorTutaj kolor tekstu

TopOkrela pooenie etykiety od grnej krawdzi ekranu

WidthOkrela szeroko etykiety

VisibleOkrela czy etykieta ma by widoczna na formularzu. Jeli zaznaczymy false, to po uruchomieniu programu zobaczymy pusty formularz.

O co chodzi z tym kodem ? Napiszmy may program. Na formularzu umiemy pole tekstowe o nazwie txtWpis, wyczy opcj Caption. Umieszczamy take etykiet o nazwie lblGotowe i take wyczymy Caption. I jeszcze 3 przyciski o nazwach - Do lewej, Do prawej, Wyrodkowanie. Nazwij je jak tam chcesz.Nasz program ma dziaa tak - Wpisujemy w pole tekstowe jaki tekst, ktry automatycznie przenoszony jest do etykiety. A nasze trzy przyciski steruj pooeniem tekstu na etykiecie.

No dobra, ale nie zapomniaem czasem o przycisku przenoszcym tekst z pola tekstowego do etykiety ? Zaraz, przecie to miao by automatyczne... Ale jak to zrobi. Po pierwsze musimy oceni kiedy program ma zareagowa. Oczywicie, e wtedy, gdy zaczniemy co wpisywa do pola tekstowego. Czyli nasz kod bdzie siedzia w polu tekstowym. Tak wic klikamy na niego dwukrotnie i widzimy co takiego:

Private Sub txtwpis_Change()

End Sub

Change - oznacza zmian - czyli jeli co bdziemy zmienia w polu tekstowym to wykona nam si kod. No dobra, ale jaki ? Pomylmy. Chodzi nam o przeniesienie tego co w txtWpis do lblGotowe. Wyjdzie proste rwnanie matematyczne:

lblGotowe.caption = txtwpis

I jak to ma prawo dziaa. Tu wanie zmieniamy waciwo etykiety, mianowicie caption (czyli to co jest wpisane w etykiet). Przyporzdkowujemy temu to co wpisujemy w txtwpis.Myl, e rozumiesz...

Sprawdmy jak to dziaa. Uruchom program i wpisuj cokolwiek w pole tekstowe - dziaa nie ? No dobra, ale przyciski nie dziaaj.

Wracamy do trybu projektowania, klikamy dwukrotnie przycisk Do lewej i dodaj kod:

lblGotowe.Alignment = 0

Co to oznacza. Zajrzyj do tabelki. To jest wanie wyrodkowanie. Ale dlaczego 0 ? Znw spjrz do tabelki - 0 to jest do lewej. Po przetumaczeniu funkcja wyglda tak:

etykietaGotowe.wyrwnanie = 0 czyli do lewej

No chyba wiesz co zrobi z pozostaymi przyciskami. Popatrz do tabelki i dopisz odpowiedni kod.Teraz uruchom program i co? Super nie... ;)

Dobra. ni wyczaj jeszcze VB. Zapisz program - bdzie nam potrzebny za niedugo. W tym celu z menu file wybierz Save Project As... i zapisz obydwa pliki gdzie na dysku.

Dobra. Jeszcze jedno zdanie na koniec. Pamitaj, e tym sposobem moesz zmienia waciwoci wszystkich elementw uoonych na formie!!!

Do nastpnej lekcji...

LEKCJA 14

Witajcie po raz kolejny. Wanie mam spieprzony komputer i kurs ten pisz na praktyce. No c kurs trzeba pisa...

Do gadania zaczynamy. Dzisiaj nauczysz posugiwa si polami wyboru Check Box-em i Option Button-em (Radio). Znajduj si one na palecie narzdzi w czwartym rzdzie. Taki kwadracik zafajkowany i keczko z kropk. Na pocztek wemy ten pierwszy czyli kwadracik.

Na pewno ju si z nim gdzie spotkae. Suy on do poinformowania programu czy co chcemy czy te nie. Np. moemy nim sterowa podkrelenie tekstu w etykiecie. Sprbujmy...

Na formie u CheckBox-a. Nazwij go chkPodkreslenie. Waciwo Caption ustaw na Podkrel. No dobra ale co bdzie podkrelane ? No oczywicie jaki tekst w etykiecie. No wic tworzymy etykiet o nazwie lblTekst i tekscie (Caption) To jest jaki tam tekst. OK. Teraz nasz program po zaznaczeniu Check-a powinien podkreli tekst. Oczywicie kod bdziemy dodawa do Check-a. Klikamy wic go dwukrotnie i dopisujemy kod:

lblTekst.FontUnderline = True

Chyba jeszcze nie znasz waciwoci FontUnderline musisz wiedzie, e suy ona do podkrelenia tekstu.

Myl, e rozumiesz ten prosty kod. Jeli klikniemy to podkrel...

Odpal program, zaznacz Check-a i co podkreli. Hurra ! No ale teraz odznacz. Podkrelenie nie znika co jest. No tak. My mamy napisane, e program ma podkreli jeli klikniemy na pole nie ma ani sowa o odznaczeniu. Pomylmy jakby to zrobi. Musisz wiedzie jedn bardzo wan rzecz. Jak sprawdzi czy Check Box jesz zaznaczony czy te nie ? Steruje tym funkcja Value. Jeli jest ona rwna 0 to Check jest nezaznaczony, jel 1 to zaznaczony, a jeli 2 to zszarzay. Jak to sprawdzi. Zaznacz na formularzy Check i w oknie properties zmie waciwo np. na 1 i co zaznaczy si... ? Procedura powinna wyglda tak:

If chkPodkreslenie.Value = 1 ThenlblTekst.FontUnderline = TrueElselblTekst.FontUnderline = FalseEnd If

Przetumaczmy.

Jeli Chec Box zostanie zaznaczony (bo Value bdzie rwne 1) toPodkrel tekstW przeciwnym przypadku (czyli wyczymy Checka Value = 0)Skasuj podkrelenie tekstuKoniec

Twoje zadanie dorb podobny CheckBox pogrubiajcy tekst. Suy do tego waciwo FontBold. Myl, e sobie poradzicie.

No dobra teraz zabieramy si za RadioButton teraz nazwany OptionButton. Umiemy taki na formularzu. Fajnie wyglda ale co poza tym. Czy on si rni od CheckBox-a tylko wygldem ? Nie, nie, nie... Aby si o tym przekona umie na formie dwa Check-i i dwa OptionButtony. Uruchom teraz program. Najpierw zaznacz pierwszego CheckBox-a a potem drugiego. Co ten SLASH kombinuje oba si zaznaczyy i co z tego ? To miao by dziwne ? No dobra sprbuj to samo zrobi z Optionami. Co? nie da si ? :) No wanie tu jest rnica. Nie mona zaznaczy dwch naraz.

Jak sama nazwa wskazuje to jest przycisk opcji a wic tylko jedn opcj mona wybra. Napiszmy may programik pokazujcy praktyczne zastosowanie obu tych pl wyboru. Napiszemy ma ankiet

Na formularzu umie dwa OptionButton-y jako Caption ponadawaj im kolejno etykiety Pentium i AMD oraz nazwij je optPentium, optAMD. Stwrz take jeden CheckBox i jako waciwo Caption nadaj mu etykiet Posiadam akcelerator graficzny i nazwij go chkAkcelerator. Potrzebna nam take bdzie etykieta. Skasuj zawarto Caption i nazwij j lblEtykieta. Nasz program ma dziaa tak: W etykiecie ma si pojawi tekst Masz komputer z procesorem (nazwa) i (masz/niemasz) akcelerator(a). I tu znw musisz wiedzie jedn bardzo wan rzecz. OptionButton-em te moesz sterowa za pomoc opcji Value tylko z t rnic, e nie ma tu ju wartoi 0,1,2 tylko jest True lub False. Czyli klikamy dwukrotnie na pierwszym z optionButtonw i dodajemy nastpujcy kod:

Dim procesor, akcelerator As StringIf optPentium.Value = True Thenprocesor = "Pentium"Elseprocesor = "AMD"End If If chkAkcelerator.Value = 1 Thenakcelerator = "i posiadasz akcelerator graficzny"Elseakcelerator = "bez akceleratora graficznego"End If lblEtykieta = "Masz komputer z procesorem " & procesor & " " & akcelerator

Przeanalizuj kod. Myl, e nie bdziesz mie z nim adnych problemw. Jeli jednak ...

No dobra, ale program ma to samo wykonywa za kadym razem gdy co wybierzemy. Dodajmy wic ten kod do pozostaych ptinButtoni i Check-a. Uruchom program. Dziaa !

Wszystko byoby w porzdku gdyby nie pojawi si 4x ten sam kod. Przecie to jest bez sensu pisa 4x to samo. A jak gdyby trzeba byo to zrobi 20x to co? No wanie z pomoc przychodzi nam funkcja Call. Oznacza ona Pocz. Oto zasada jej dziaania:

Linijka1Linijka2Call PodprogramLinijka3Linijka4

Private Sub Podprogram( )Linijka5Linijka6Linijka7End Sub

Program bdzie si wykonywa tak Pierwzse linijka 1 i 2. Nastpnie napotykamy Call czy nas z podprogramem czyli nastpnie linijka 5,6,7 i do End Sub. W tym momencie program wraca do Call czyli teraz linijki 3 i 4.

No dobra ale jak to zastosowa do naszego programu ? Bardzo prosto !

Najpier musimy skasowa wszystko co napisalimy (eby si nie pogubi...). Kliknij dwukrotnie na czymkolwiek co znajduje si na formie (moesz nawet na niej samej). Wywietli si kod zaznacz wszystko co widzisz i skasuj przyciskiem Del powinna zosta czysta strona. No dobra oczyszczone z kodu.

Teraz musimy napisa procedur ktra bdzie wywoywana Call-em. W oknie kodu dopisujemy j na samym kocu zawsze za ostatnim End Sub. Jeli mamy czyst stron to gdziekolwiek (si da... ;) ) Napisz:

Private Sub Przelicz ( )

Po nacinici Enter VB dopisa End Sub i oddzieli procedur od reszty. Piszemy dalej to co wpisywalimy wczeniej do kadego z przyciskw opcji czyli:

Dim procesor, akcelerator As StringIf optPentium.Value = True Thenprocesor = "Pentium"Elseprocesor = "AMD"End If If chkAkcelerator.Value = 1 Thenakcelerator = "i posiadasz akcelerator graficzny"Elseakcelerator = "bez akceleratora graficznego"End If lblEtykieta = "Masz komputer z procesorem " & procesor & " " & akcelerator

No dobra najwaniejsze zrobione. No ale skd program ma wiedzie, e po zaznaczeniu jednej z opcji ma si odwoa do tej procedury ?No wanie w kadym przycisku opcji musimy dopisa linijk:

Call Przelicz ( )

Sprawd czy dziaa przynajmniej powinno... ;)Dobra jak na dzisiaj starczy...

W nastpnej lekcji dowiesz si jak zaznaczy dwa OptionButtony na raz. Niemoliwe, co ?

Zobaczymy...

LEKCJA 15

Witajcie. W kocu po dwutygodniowej przerwie zasiadem do kompa. Trzeba by byo dalej pisa kurs VB... No to zaczynamy.Co by ty dzisiaj zrobi - moe jakie... zaraz dzisiaj chyba miaem napisa jak wczy 2 OptionButtony, nie? No dobra, ale po co? Zastanwmy si nad rozszerzeniem programu z poprzedniej lekcji.Ostatnio pisalimy program, gdzie OptionButtony decydoway o naszym procesorze (a CheckBox - czy mamy akcelerator graficzny). A jak bymy jeszcze chcieli dorobi np. wybr prdkoci CD-ROM-u ? Konieczne byoby zaznaczenie dwch OptionButtonw. Jednego decydujcego o procesorze, a drugiego o CD-ROM-ie. No dobra ale jak to zrobi ?

Umiemy na formie dwa OptB (tak to bdzie w skrcie) nadajmy im etykiety jak w programie z poprzedniej lekcji czyli Pentium i AMD. Teraz z 5 kolejnych OptB dla CD-ROM-u. Nadajmy im kolejno etykiety - wolniejszy, 24x, 32x, 40x, szybszy. Uruchamiamy program i sprbujmy zaznaczy, e mamy procesor AMD i CD 40x. Niestety, nie da si. Gdy zaznaczamy AMD jest wszystko OK. Ale przy zaznaczaniu CD-ROM-u odznacza si procesor. Dlaczego to chyba wiesz? Nie da si zaznaczy wicej ni jednej opcji. No dobra - ale powiedziaem, e jako si da. No ale jak ?Do tego celu musimy uy narzdzia o nazwie Frame (tumaczc Ramka). Jest ono na palecie narzdzi w postaci szarego kwadracika i maym napisem xy u gry (3 rzd, 1 kolumna). Sprbujmy umieci to na formularzu. No, takie sobie - ale do czego to waciwie suy ?Jeli w ramce utworzymy OptionButtony to nie bd one kolidoway z OptB z ssiednich ramek, czy z poza formy. Czyli par moemy stworzy np.OptB bezporednio na formie + OptB w ramce lubOptB w ramce1 + OptB w ramce2 itd..

Oczywicie par moemy tworzy wicej. No to co - przenosimy nasze OptB (te co charakteryzuj CD-ROM) na ramk. Chwytamy, przenosimy i puszczamy - OptB znikn ? Co jest ?

ZAPAMITAJ !!!Najpierw tworzymy ramk, a potem przycisk opcji tworzymy bezporednio na niej. Nie moemy przenosi OptB-w na ramk.

Czyli stare usuwamy i tworzymy nowe bezporednio na ramce. Uruchamiamy nasz program i co, da si zaznaczy dwie opcje ?

ZADANIE DOMOWEUdoskonal program z poprzedniej lekcji, tak aby mona byo zaznaczy prdko CD-ROM-u. Napis wynikowy powinien by w tej formie:Masz komputer z procesorem {AMD, Pentium}, CD-ROM-em {wolniejszym ni 24x, 24x, 32x, 40x, szybszym ni 40x} i {posiadasz akcelerator, nie posiadasz akceleratora}Banalne nie ? To no do roboty...

_________________________________________________________________________Teraz dwa dopenienia do poprzednich lekcji. Tak waciwie to jedno nowe, a jedno dopenienie do funkcji DIM. Czy moe pamitasz dokd funkcja DIM pamitaa zmienn ? Tak, do End Sub - czyli zakoczenia procedury. No dobra - napiszmy krciutki program, aby zobrazowa to co chc wyjani.

Na formie u 2 przyciski - jako etykiety nadaj im Zapamitaj i Odczytaj oraz 1 TextBox (Pole tekstowe) nadaj mu nazw txtzmienna. I o co tu bdzie chodzio... Po nacinici przycisku Zapamitaj nasz program ma zapisa do zmiennej x to co bdzie w TextBox-ie. Przycisk Odczytaj ma spowodowa wywietlenie si Okna komunikatu ktrego treci bdzie zmienna.Tak wic do przycisku Zapamitaj dodajemy kod:

Dim x as stringx = txtzmienna ' zapisujemy d x to co jest w TextBox-ie

A do przycisku Odczytaj:

Dim odpodp = MsgBox (x)

Uruchom program. Najpierw nacinij Zapamitaj, a potem Odczytaj i co? Wywietla si nam pusty komunikat - ale dlaczego. Przeanalizujmy program...

Po nacinici Zapamitaj x to si rwna to co jest w textboxie (pamitaj, e DIM "podtrzymuje" x tylko do momentu zakoczenia procedury czyli do End Sub na ktry wanie natrafia nasz program. Po wciniciu drugiego przycisku x = nic i wanie dlatego otrzymujemy puste okienko. No dobra, ale jak zmusi program, aby pamita x przez cay czas ?Do tego suy opcja globalStosuje si j jeszcze przed zaadowaniem programu. Czyli w Form_Load ? Nie. Naley j zaadowa jeszcze wczeniej. Ale gdzie ?

Musisz wiedzie, e oprcz form s jeszcze moduy - one aduj si najwczeniej. No ale jak doda modu do mojego projektu ?Z menu wybierz Project - Add Module. Teraz wyskoczy okienko- kliknij dwukrotnie na Module. Zauwa z prawej strony w okienku projektu, e oprcz formy widzimy jeszcze dodany przez nas modu. Wyskoczyo okienko tekstowe - pewnie je zamkne - a jeli nie to je zamknij. Po co? Skoro zamkne to jak teraz przywrcisz to okienko z powrotem ? Do tego posuy nam okienko projektu - kliknij dwukrotnie na pozycji Module1 - a okienko wrci. Teraz dopisz tak linijk:

Global x as string

Funkcja jak widzisz dziaa identycznie jak DIM, z t rnic, e jest "dugowieczna".Ale musimy jeszcze usun funkcj Dim x as string z jednego z przyciskw - przecie nie bdziemy deklarowa zmiennej dwa razy. No to teraz uruchom program i co? Dziaa ? Jeli zrobie wszystko jak pisaem to powinno... Czy teraz widzisz rnic pomidzy DIM a GLOBAL ? Mam nadziej, e tak...

Druga sprawa moe nastpnym razem - byo by to jednak za duo jak na jeden dzie...

LEKCJA 16

_________________________________ Druga sprawa ___________________________

Jak za pomoc jednego formularza wywoa drugi ? Wiadomo - wiksze programy skadaj si z wielu formularzy. No dobra - pokae Wam praktycznie...

Na formie u przycisk o etykiecie Poka. Teraz stworzymy drug form - ona wanie ukae si po naciniciu przycisku Poka. No dobra - tworzymy - ale jak ? Bardzo podobnie jak Modu. Z menu wybierz Project - Add Form (pierwsza pozycja) kliknij dwukrotnie na form. Na drugiej formie u przycisk o etykiecie Ukryj i drugi przycisk o etykiecie Koniec. Jeszcze jedno - co by si stao jakby niechccy wyczy form2 - kliknij na krzyyku w okienku z nasz form (NIE na krzyyku ktry jest na formie). I co - zniko... Przywracamy to tak samo jak modu. W okienku project klikamy dwukrotnie na Form2 i znw widzimy nasz form. No dobra - zajmijmy si dalej programem.Jak spowodowa aby po klikniciu przycisku Poka (na Form1) wywietli Form2. Proste - dodajemy kod:

Form2.visible = true

Uruchom program i przetestuj. Pojawiaj si dwie formy. Teraz jeszcze dodamy kod do dwch przyciskw na formie 2.

Aby ukry form (waciwie to wyczy) naley doda kod:

Unload Me

Aby zakoczy cay program - czyli do przycisku koniec:

Unload Form1Unload Me

Wystartuj program i przetestuj - dziaa? Myl, e tak.

Teraz sprawd jeszcze jedno. Uruchom program, wywietl form 2 i nacinij ukryj. Teraz zamknij program "krzyykiem" w prawym grnym rogu programu. Na niebiesko zaznaczya si nam ikonka "Play" na pasku narzdzi w VB. Oznacza to, e program jest gotowy do nastpnego uruchomienia. I co z tego? Czytaj dalej...

Skoro ju jestemy przy tym temacie to od razu wyjani czym rni si ukrywanie formy od wyczenia jej. Zastosujmy to do powyszego przykadu. W przycisku Ukryj zamiast Unload Me wpisz:

Form2.visible = false

Teraz uruchom program. Postpuj jak przedtem czyliUruchom program, wywietl form 2 i nacinij ukryj. Teraz zamknij program "krzyykiem" w prawym grnym rogu programu. Ale ikonka play nie zmienia koloru na niebieski, co wiadczy, e program jest jeszcze uruchomiony - ale gdzie ?Nacinij stop.Uruchomiona jest forma2 gdy j tylko ukrylimy, a nie zamknli.

To po co w takim razie stosowa funkcj Form2.Visible = false ?

Zrbmy jeszcze jeden test. Na formie 2 u jeszcze TextBox-a . Wystartuj program. Nacinij przycisk Poka - wpisz co w TextBox (nie wystarczy to co jest tam domylnie) i kliknij ukryj (czyli form2.visible = false). Wrcilimy do formy 1. Kliknij jeszcze raz Poka i co jest w TextBox-ie. Wanie to co wpisalimy. No dobra, a teraz zamie form2.visible = false na Unload Me. Zrb to samo jeszcze raz i co? Text box ju nie wywietli tego co wpisalimy.

Krtko:Funkcja Form.visible = false ukrywa tylko form, zachowujc jej wasnoci i dane na niejFunkcja Unload Form kasuje bezpowrotnie wszystkie dane z formy.

LEKCJA 17

Dzisiaj przed Wami do trudna lekcja - bdziemy mwi o oknach dialogowych. Zacznijmy od tego co to jest okno dialogowe. Okna dialogowe spotkae pewnie setki razy. Pokae ci je w Paincie. Uruchom Paint-a (Start - Programy - Akcesoria - Paint). Gdy si uruchomi to z menu wybierz plik i otwrz - pojawio si okno dialogowe. Daj anuluj. Teraz z plik wybierz zapisz - pojawio si drugie okno dialogowe bardzo podobne do otwrz. Dobra daj anuluj. Na dole jest paleta z farbami - kliknij dwukrotnie na jakimkolwiek kolorze. Wyskoczyo kolejne okno dialogowe - kolor. S jeszcze okna dialogowe - czcionka i drukuj. W przykadzie posu si dwoma - kolor i czcionka.

Pamitasz jeszcze lekcj 13 - kazaem tam zapisa sobie may programik ktry potrafi wyrwnywa tekst do prawej, lewej i wyrodkowywa. Teraz uzupenimy go o moliwo manipulowania czcionk tzn. wielko, styl i rodzaj czcionki. Uzupenimy go take o moliwo zmiany koloru czcionki. Do dziea...

Uruchom VB. Z menu file wybierz open i odnajd program (rozszerzenie VBP). No dobra uruchomi si - teraz dorabiamy dwa przyciski. Jako warto kaption przypisz im kolejno - Czcionka, Kolor. No dobra - teraz musimy dopisa jaki kod - ale jaki ?No niestety - sam kod nie wystarczy - na formie musimy uoy element krry nazywa si Common Dialog Box. Jak si domylasz bdzie on na palecie narzdzi po lewej. No przynajmniej musi si tam znale. Domylnie jest wyczony (chocia nie wiem dlaczego). No to jak go doda do palety ? Kliknij prawym klawiszem myszki (to ten drugi) na wolnym miejscu na pasku narzdzi, z powstaego menu kontekstowego wybierz Components. Wyskoczyo okienko dialogowe na ktrym widzimy list dostpnych komponentw - my musimy znale "Microsoft Common Dialog Control 6.0". Naciskamy Zastosuk i zamknij. Czy widzisz ju nowy element na pasku narzdzi ? Tak, ten na samym dole - to ten prostokt z dwoma kwadracikami i kropkami w rodku). Wybierz go i ustaw gdzie na formie. Obojtne gdzie - on i tak jest niewidoczny. Potrzebny jest on VB tylko po to aby zapamitywa wasnoci wybrane z okien dialogowych. Zmie tylko jego nazw na cdb1. Wystartuj program i co? Widzisz go gdzie ? No nie. Dobra wycz program - bierzemy si za kod. Kliknij dwukrotnie na przycisku Czcionka. Teraz dopiszemy kod:

cdb1.DialogTitle = "Zmie czcionk"cdb1.FontName = "MS Sans Serif"cdb1.Flags = cdlCFBothcdb1.ShowFont

Uruchom program. Kliknij przycisk czcionka - pokazao si nam okno dialogowe. Wybierz cokolwiek i kliknij OK. Jak widzisz nasz program jeszcze nie dziaa. Na razie wyjani poszczeglne linijki kodu:

Najpierw tytu okna dialogowegoPotem mamy domyln czcionkTeraz bardzo wana rzecz ! Informuje to CDB-a jakie czcionki ma wywietli - cdlCFBoth oznacza, e wszystkieNo i teraz poka okno dialogowe.

Teraz musimy spowodowa aby to dziaao - poniej jeszcze dopisujemy nastpujcy kod:

lblgotowe.Font = cdb1.FontNamelblgotowe.FontBold = cdb1.FontBoldlblgotowe.FontItalic = cdb1.FontItaliclblgotowe.FontSize = cdb1.FontSize

Jak to dziaa ? W chwili gdy ty wybierasz co w Oknie dialogowym odpowiednie wasnoci zostaj zapisane do cdb1. Teraz musisz je tylko stamtd wycign. Teraz kolejno wycigalimy:Nazw czcionki, czy jest pogrubiona, czy moe z kursyw, oraz jej rozmiar.

Uruchamiamy program i... dziaa !!!No dobra, a co z drugim przyciskiem? Jeszcze zosta kolor czcionki... Do drugiego przycisku dodajemy wic nastpujcy kod:

cdb1.dialogTitle = "Zmieniamy kolor"cdb1.ShowColor

Uruchamiamy program - naciskamy przycisk kolor - wyskakuje okienko takie jak w Paint. Teraz wybieramy jaki kolor i OK. Niestety, jeszcze nie dziaa. Teraz musimy jako z cdb1 wycign kolor - ale jak? Poniej dopiszmy jeszcze:

lblGotowe.ForeColor = cdb1.color

Teraz uruchamiamy program iii... dziaa !!!

*****************************KOMPILACJA*******************************

Dobra - teraz was naucz kompilowa programy. Po co? Gdy piszesz projekt to zapisujesz go do pliku VBS. A czy nie lepiej byoby zrobi plik EXE ? Jasne, e tak ! Kompilacja jest nadzwyczaj banalna. Wystarczy z menu VB wybra Make Project1.exe . Oczywicie zamiast Project1.exe moe pisa co innego. No to wybieramy Make... exe. Teraz VB pyta si Nas gdzie zapisa skompilowany program. Teraz tylko OK i gotowe !!!

*************************************************************************No dobra - teraz cig dalszy CDB.

1. Aby wywoa okno otwrz naley posuy si nastpujcym kodem:

cdb1.dialogTitle = "Tytu"cdb1.Filter = "Zwyky plik tekstowe|*.txt|Zdjcia|*.bmp; *.jpg "cdb1.showOpen

Pewnie zastanawiasz si jak zrobi taki znaczek: | . Znajduje si on nad Enter-em obok Backspace-a. Wpisujemy go z Shift-em. Wszystko pewnie jest jasne tylko nie wiesz co to s te filtry. Pewnie si spotkae z takimi programami ktre pozwalaj otworzy tylko niektre pliki. W powyszym przykadzie program bdzie tylko widzia pliki txt, a po zmianie opcji take bmp i jpg. Jeli chcesz aby program widzia wszystkie pliki to cdb1.Filter = "*.*"

No ale co to zwraca ? Zwraca to ciek do pliku - moesz j wycign w ten sposb:

Dim xx = cdb1.fileName

2. Zapisz:

cdb1.DialogTitle = "Tytu"cdb1.Filter = "*.*"cdb1.FileName = "Test.txt" 'Domylna nazwa plikucdb1.ShowSave

Ta funkcja take zwraca waciwo FileName

3. Drukuj

cdb1.DialogTitle = "Tytu"cdb.ShowPrinter

Ta funkcja zwraca pewne ustawienia drukarki - ale o tym pniej

************************************************************************Myl, e tyle na dzisiaj wystarczy - do nastpnego spotkania...

LEKCJA 18

Hi ! Dzisiaj znw do trudna lekcja przed Wami. Powiemy troch o licie wyboru i listach Combo.Najpierw zajmiemy si listami wyboru. Co to jest lista wybory - nasuwa si pytanie. Jest to takie "okienko" do ktrego moemy dodawa rne sowa i je np. posortowa ? Zreszt c ja bd tu duo mwi. Zobaczmy list wyboru na praktycznym przykadzie. Uruchamiamy VB i na formie ukadamy element nazwany ListBox (kolumna 2 rzd 5 - taka ikonka z prawym paskiem przewijania i biaym polem) Uwaga nie pomyl z ComboBox-em - o tym dopiero za chwil. Pewnie pytasz jak rozpozna ktry jest ktry. Najed na ikonk ktra wedug ciebie jest t waciw. Nic nie naciskaj, i nie ruszaj mysz - za chwil si pojawi etykietka z nazw elementu. Dobra - znalaze ? Teraz to u na formie. Chmm... wyglda jak TextBox. No dobra, ale jak tym si posugiwa ? Pokae to na malutkim przykadzie. ListBox nazwij lstLista teraz dodaj przycisk na formie i nazwij go cmdDodaj. Jako waciwo Caption nadaj mu Dodaj. Teraz na formie umy jeszcze TextBox-a - nazwij go txtWprowadz. No teraz wyjani jak ma dziaa program. Gdy wpiszemy co w pole tekstowe i klikniemy Dodaj, to zawarto tego pola tekstowego ma zosta przeniesiona do Listy. Teraz wemy si za kod. Do przycisku dopisz:

lstLista.AddItem txtWprowadztxtWprowadz = ""

Uruchom program - wpisz co w pole tekstowe i kliknij Dodaj. Fajnie tekst przenis si do listy! Wpisz co drugi raz i kliknij Dodaj. Wow, mamy ju dwie pozycje. Teraz przetumaczymy powyszy kod:

Lista.Dodaj to co w txtWprowadz (czyli w naszym polu tekstowym)wyczy pole tekstowe - po co? Po co za kadym razem kasowa sowo dodane do listy - lepiej eby za nas to zrobi komputer :)

Dobra, myl, e nie miae z tym problemu - teraz funkcja usu. Dodajmy do naszego projektu jeszcze jeden przycisk - nazwij go cmdUsun i jako etykiet nadaj mu Usu. Teraz jeszcze jeden textBox - nazwij go txtUsun. Teraz nasz program bdzie jeszcze potrafi usun podan pozycj listy. Tak wic do przycisku Usu dodaj nastpujcy kod:

Dim xx = Val(Text1) - 1lstLista.RemoveItem (x)

Ho, ho, ho !!! Co to znowu jest za kod. O tym za chwil. Na razie uruchom program. Dopisz kilka elementw do listy. Teraz w nowe pole tekstowe wpisz liczb, ktra bdzie pozycj pewnej danej ktr chcesz usun z listy. Wpisz np. 2 lub 3 (Tyle minimalnie musi by pozycji na licie !!!). Teraz Usu. Dziaa. No dobra - ale jak ?

Tumaczenie: Ostatnia linijka usuwa element x listy. Ale dlaczego wczeniej jest x = to co w polu tekstowym - 1 ? Dla Visual Basica pierwsza pozycja na licie ma warto 0, druga 1 itd. Aby to unormowa odejmujemy jeden. No i jak to dziaa ? Jeli w okienko tekstowe wpiszesz 1 program odejmie od tego 1 i wyjdzie mu zero - wic usunie pierwsz pozycj listy. Chyba kapujesz nie ? Myl take, e pamitasz do czego suya funkcja VAL ( ) - tak ona zamieniaa stringi (dane tekstowe) na liczby.

Moe powiecie, e ten program jest bez sensu - przecie lepiej jest zaznaczy rcznie pozycj ktr chcemy usn i klikn Usu, zamiast rcznie liczy pozycje listy, wpisywa je do TextBox-a i dopiero Usu. Tego te si nauczycie - ale pniej. Na razie chc zobrazowa dziaanie funkcji ListBox po to tylko, aby wywietlaa rne dane, a nie abymy nimi swobodnie operowali. No dobra, ale dlaczego nie teraz ? Kod jest pogmatwany i bardzo trudny. Dla zniechcenia podaj kawaek kodu ;)

Etykieta = costam(LstLista.ItemData(LstLista.ListIndex))

To moe nie wyglda tak le - ale musimy to jeszcze poczy z tablicami danych o ktrych w nastpnej lekcji.

Dobra do rzeczy - teraz nastpna waciwo ListBox-a. Czyszczenie listy - jeli chcesz usun wszystkie elementy list do jakiego nowego przycisku dodaj kod:

LstLista.Clear

No dobra - a jak policzy wszystkie elementy na licie ? Bardzo prosto - wystarczy posuy si kodem:

Dim xx = lstLista.ListCount

Ok - zaatwilimy prawie wszystko. Zostao nam jeszcze podstawianie pod zmienne. Jeli chcesz podstawi pod zmienn x np. 4 element listy posu si kodem

Dim xx = lstLista.List(3)

Chyba zrobiem pomyk - my chcemy podstawi 4 element listy, a ja w kodzie napisaem 3. Nie zapomnij, e VB zaczyna liczy od 0. Dla nas 4 element listy to dla niego trzeci !!!

Teraz jeszcze pewne waciwoci listy.

ColumnsTa waciwo okrela ilo kolumn. Jeli jej warto jest ustawiona na 0 to mamy zwyk list z pionowym paskiem przewijania. Jeli damy 1 to elementy na licie bd wywietlone w poziomie. Jeli damy wicej to elementy bd si ukada poziomo, na ekranie bdzie wida n kolumn (n to liczba > 1 ). Uff...

MultiSelect0 - None - oznacza, e moemy wybra tylko jeden element listy (podobnie jak byo z OptionsButton), jeli 1- Simple, uytkownik moe wybra kilka elementw klikajc na nich. 2 - Extended - uytkownik moe wybra kilka elementw listy pod warunkiem, e przytrzyma klawisz Shift

SortedOkrela czy lista ma by posortowana alfabetycznie, czy te nie

StyleOkrela, czy lista ma wyglda "normalnie" czy bardziej jak zbir CheckBox-w ;)

No to by byo tyle o licie wybory - zosta nam jeszcze ComboBox - ale nie bjcie si. Posugiwa si nim bdziemy identycznie jak ListBox-em. S tylko dwie rnice. W ListBox-ie moglimy ustawi czy bdzie moliwo wybrania jednej czy wielu pozycji. W Combolu moliwe jest tylko wybranie jednej .Druga - chyba najwaniejsza - zamiast stosowa ListBox-a + TextBoxa moemy zastosowa sam ComboBox. Jak - musimy posuy si funkcj rozpoznajc wcinity klawisz (o tym bdziemy uczy si w przyszoci). U na formie ComboBox-a (to ten obok List Box-a, tylko troch wikszy). Kliknij na niego dwukrotnie. Zobacz na gr okna - pisze co takiego : Private Sub Combo1_Click()

My zamiast click bdziemy musieli posy si KeyDown. No ale jak ? Popatrz jeszcze wyej. Wida dwa ComboBox-y. W jednym jest wpisane Combo1 a w drugim Click. Zmie to Click na KeyDown i dopisz nastpujcy kod:

If KeyCode = vbKeyReturn ThenCombo1.AddItem Combo1.TextCombo1.Text = ""End If

Tumacz:

Jeli nacisne Enter toDodaj do list Combo to co wpisalimyWyczy to co wpisalimyKoniec Jeli

Sam wyprbuj jak to dziaa - na dzi to by byo tyle...

LEKCJA 19

Jak napisaem w poprzednim kursie zajmiemy si dzisiaj tablicami danych. Ochooo. Brzmi to jako tak skomplikowanie i matematycznie. Nie bj si. Tym razem przed nami bardzo prosta lekcja ! Jeli wiesz do czego suy funkcja DIM i FOR (Waciwie skoro nie wiesz to po co czytasz? ;) ) to bez problemw zrozumiesz tablic danych. Najczciej uywa si jej w parze z funkcj FOR. Tablica danych to nic innego jak lista zmiennych tego samego typu. Np. nie moemy pomiesza w tablicy stringw i liczb. Podaj praktyczne zastosowanie tablicy danych

Przypumy, e musimy napisa program sumujcy 20 zmiennych. Wykorzystujc ju zdobyt wiedz napisalibymy tak:

Dim Liczba1, Liczba2, Liczba3, Liczba4, Liczba5, Liczba6, Liczba7, Liczba8 (itd...)as Singlewynik = Liczba1 + Liczba2 + Liczba3 + Liczba4 + Liczba5 + Liczba6 + Liczba7 + itd...

Sporo pisania. Gdybymy jednak zastosowali tablic danych wygldao by to tak:

Dim tablicaliczb(20)Dim x as byteFor x = 1 to 20wynik = wynik + tablicaLiczb(x)Next x

Prawda, e krcej. Tak samo trwa zapisywanie do zmiennych. Gdybymy np. chcieli odczyta dane z pliku to musielibymy to robi tak:

Dim Liczba1, Liczba2, Liczba3, Liczba4, Liczba5, Liczba6, Liczba7, Liczba8 (itd...) as Single--- odczyt z pliku - zapisz do zmiennej Liczba1 ------ odczyt z pliku - zapisz do zmiennej Liczba2 ------ odczyt z pliku - zapisz do zmiennej Liczba3 ------ odczyt z pliku - zapisz do zmiennej Liczba4 ------ odczyt z pliku - zapisz do zmiennej Liczba5 ---itd...

Pomyl sobie, jak bymy musieli odczyta 300 danych z pliku... Lepiej nie myle. Za pomoc tablic danych nawet 1000000 jest dla nas bachostk :) Oto sposb:

Dim tablicadanych(100)Dim x as SingleFor x=1 to 100--- odczyt z pliku - zapis do zmiennej tablicadanych(x)Next x

Prawda, e proste. Jeli nawet jeszcze tego nie rozumiesz to nie przejmuj si zbytnio - okazj do powiczenia tego bdziemy mie za kilka lekcji, kiedy bdziemy uczy si dostpu do plikw. Czyli jak odczyta dane, zapisa itp.

No, teraz zajmiemy si ScroolBar-em. Co prawda jeszcze go nigdy nie uyem - nawet nie widziaem jego praktycznego zastosowania, ale moe si Tobie przyda. Jak go umieci na formie. Bardzo atwo. Znajduje si on (one - bo s dwa - poziomy i pionowy) zaraz pod ComboBox-em i ListBoxem. Tak to te 2 paski pionowy i poziomy z strzaeczkami na kocach. Umie np. pionowy na formie. Rozcignij go aby by jak najwyszy. Teraz uruchom program. Chmmm... Wyglda jak zwyky pasek do przewijania tekstu. Faktycznie, tak samo wyglda, ale suy do czego innego. Zwraca on warto ktra moe posuy np. do manipulacji wielkoci czcionki w jakiej etykiecie. Zanim napiszemy programik musisz pozna 4 waciwoci ScrollBar-a.

SmallChangeTumaczc - Maa zmiana. Oznacza warto o ktr zmieni si ScrollBar po naciniciu jednej ze strzaek

LargeChangeTumaczc - Dua zmiana. Oznacza warto o ktr zmieni si ScrollBar po klikniciu gdziekolwiek na pasku

MinWarto minimalna paska

MaxWarto maksymalna paska

No to bierzemy si za pisanie programu:

Na formie mamy ju uoony scrollbar, teraz jeszcze umy do du etykiet. Nazwijmy j lblCzcionka jako warto Caption nadaj jej TEST. OK. Teraz musimy spowodowa, aby regulujc ScrollBar-em regulowa wielko Czcionki. Musimy zmieni waciwoci Min i Max. Dlaczego? Zaznacz ScrollBar i w okienku Properties odnajd waciwo Min. Domylnie jest 0. Wielko czcionki 0? To chyba jest niemoliwe !!! Najmniejsza to 1. Zmiemy wic Min z 0 na 1. Teraz powyej mamy waciwo Max. 32767 - takiej wielkoci czcionka ?! W yciu nie zmieciaby si na monitorze. Zmiemy na 50. Dobra - ustalmy jeszcze SmallChange. Jest 1 no i chyba tak zostanie. Po klikniciu na strzace wielko czcionki zmieni si o jeden - mniej nie ma sensu a wicej te si nie opaci, bo nie bdziemy mogli dokadnie ustawi wielkoci czcionki. W wikszoci przypadkw SmallChange zostaje 1. Teraz bierzmy si za LargeChange. Co te 1 ? Nie zmiemy to na 5. OK. Waciwoci paska ustawione. Teraz dopiszemy do niego kod. Kliknij wic na nim dwukrotnie i dopisz:

lblCzcionka.FontSize = VScroll1

Uruchom teraz program - musisz klikn a 7 razy na strzace w d aby zobaczy efekt.

To by byo na tyle jeli chodzi o ScrollBar. Do nastpnego spotkania...

LEKCJA 20

Witajcie wszyscy. Dzi przed wami kolejna do prosta lekcja. Poznamy kilkanacie funkcji. Do gadania zaczynamy.

Visual Basic potrafi dobrze operowa na godzinach:

1. Wyciganie informacji o dacie - Stwrzmy may programik, umy przycisk i dodajmy do niego kod:

x = MsgBox(Date)

Uruchamiamy. Program w okienku pokazuje dzisiejsz dat w formacie yy-mm-dd(rok [dwie ostatnie cyfry]- miesic, dzie )

2.DateSerial zwraca w wewntrznym formacie dat wpisan przez nas rcznie np.

Dim MyDateMyDate = DateSerial(1969, 2, 12)x = MsgBox (MyDate)

Zwraca to 69-02-12

3.DateAdd - potrafi dodawa do podanej daty miesice dni itd: Zobaczmy jak to dziaa. Do przycisku dodajmy kod:

Dim DataPoczatek As Date ' Declare variables.Dim TypDopisu As StringDim Miesiace As IntegerDim OdpTypDopisu = "m"DataPoczatek = InputBox("Podaj jak dat w formacie yy-mm-dd")Miesiace = InputBox("Ile misicy chcesz doda")Odp = "Nowa data: " & DateAdd(TypDopisu, Miesiace, DataPoczatek)x = MsgBox (Odp)

Uruchom go. Program najpierw pyta nas o dat, potem ile miesicy chcemy doda, i w kocu dostajemy odpowied.Skadnia tej funkcji:

DateAdd (Jednostka, Ilo jednostek, Data)

YyyyRok

QKwarta

MMiesic

YDni w roku

DDni

WWeekendy

WwTygodnie

HGodziny

NMinuty

SSekundy

Zauwa, e w naszym przykadzie uylimy literau m - czyli miesice 4.DateDiff - zwraca ilo jednostek czasu midzy dwoma datami

Dim TheDate As DateDim MsgTheDate = InputBox("Podzaj jak przyszociow dat")Odp = "Bdzie to za: " & DateDiff("d", Now, TheDate) & " dni."x = MsgBox (Odp)

Zauwa w tym programiku w linijce 4, e uylimy literki d co oznacza ilo dni.

Skadnia :DateDiff ("jednostka", data1, data2)

5.DatePart - zwraca ilo jednostek liczc od pocztku roku. np.

Dim TheDate As DateDim OdpTheDate = InputBox("Podaj dat:")Odp = "Od pocztku roki mino: " & DatePart("q", TheDate) & " kwartaw"x = MsgBox (Odp)

Skadnia:DatePart ("jednostka", data)

6.Now - zwraca aktualn dat i czas

x = MsgBox (Now)

wywietli to np. 00-06-15 11:12:34

7.Time - zwraca aktualny czas np.

x = msgBox(Time)

zwrci to np. 12:23:54

9. TimeSerial - zwraca w wewntrznym formacie godzin

MyTime = TimeSerial(16, 35, 17)' Reprezentacja godziny 4:35:17 po poudniu.

Zwrci to 16:35:17

10. Timer - t funkcj zajmiemy si troch dokadnie, gdy jest ona uywana do czsto. Zwraca ona ilo sekund ktre upyny od pnocy. No, ale po ci mi to ma by potrzebne ?

Napiszemy program ktry pyta si nas ile to jest 12*6. Po podaniu prawidowej odpowiedzi program wywietli komunikat ile mylelimy nad tym zadaniem...Ale po co tu funkcja liczca sekundy od pnocy ?Zamy, e uruchomilimy program dokadnie o pnocy - funkcja timer w