|
Visual Basic
(7)
Lekcja 16
Jak za pomocą jednego formularza wywołać
drugi ? Wiadomo - większe programy składają się z wielu
formularzy. No dobra - pokaże Wam praktycznie...
Na formie ułóż przycisk o etykiecie Pokaż. Teraz stworzymy
drugą formę - ona właśnie ukaże się po naciśnięciu
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ę stało jakbyś niechcący wyłączył formę2 -
kliknij na krzyżyku w okienku z naszą formą (NIE na krzyżyku
który jest na formie). I co - znikło... Przywracamy to tak samo
jak moduł. W okienku project klikamy dwukrotnie na Form2 i znów
widzimy naszą formę. No dobra - zajmijmy się dalej programem.
Jak spowodować aby po kliknięciu przycisku Pokaż (na Form1) wyświetlić
Form2. Proste - dodajemy kod:
Form2.visible = true
Uruchom program i przetestuj. Pojawiają się dwie formy. Teraz
jeszcze dodamy kod do dwóch przycisków na formie 2.
Aby ukryć formę (właściwie to wyłączyć) należy dodać
kod:
Unload Me
Aby zakończyć cały program - czyli do przycisku koniec:
Unload Form1
Unload Me
Wystartuj program i przetestuj - działa? Myślę, że tak.
Teraz sprawdź jeszcze jedno. Uruchom program, wyświetl formę
2 i naciśnij ukryj. Teraz zamknij program "krzyżykiem"
w prawym górnym rogu programu. Na niebiesko zaznaczyła się nam
ikonka "Play" na pasku narzędzi w VB. Oznacza to, że
program jest gotowy do następnego uruchomienia. I co z tego?
Czytaj dalej...
Skoro już jesteśmy przy tym temacie to od razu wyjaśnię czym różni
się ukrywanie formy od wyłączenia jej. Zastosujmy to do powyższego
przykładu. W przycisku Ukryj zamiast Unload Me wpisz:
Form2.visible = false
Teraz uruchom program. Postępuj jak przedtem czyli
Uruchom program, wyświetl formę 2 i naciśnij ukryj. Teraz
zamknij program "krzyżykiem" w prawym górnym rogu
programu. Ale ikonka play nie zmieniła koloru na niebieski, co świadczy,
że program jest jeszcze uruchomiony - ale gdzie ?
Naciśnij stop.
Uruchomiona jest forma2 gdyż ją tylko ukryliśmy, a nie zamknęli.
To po co w takim razie stosować funkcję Form2.Visible = false
?
Zróbmy jeszcze jeden test. Na formie 2 ułóż jeszcze
TextBox-a . Wystartuj program. Naciśnij przycisk Pokaż - wpisz
coś w TextBox (nie wystarczy to co jest tam domyślnie) i kliknij
ukryj (czyli form2.visible = false). Wróciliśmy do formy 1.
Kliknij jeszcze raz Pokaż i co jest w TextBox-ie. Właśnie to co
wpisaliśmy. No dobra, a teraz zamień form2.visible = false na
Unload Me. Zrób to samo jeszcze raz i co? Text box już nie wyświetli
tego co wpisaliśmy.
Krótko:
Funkcja Form.visible = false ukrywa tylko formę, zachowując jej
własności i dane na niej
Funkcja Unload Form kasuje bezpowrotnie wszystkie dane z formy.
Lekcja 17
Dzisiaj przed Wami dość trudna lekcja - będziemy
mówić o oknach dialogowych. Zacznijmy od tego co to jest okno
dialogowe. Okna dialogowe spotkałeś pewnie setki razy. Pokaże
ci je w Paincie. Uruchom Paint-a (Start - Programy - Akcesoria -
Paint). Gdy się uruchomi to z menu wybierz plik i otwórz -
pojawiło się okno dialogowe. Daj anuluj. Teraz z plik wybierz
zapisz - pojawiło się drugie okno dialogowe bardzo podobne do
otwórz. Dobra daj anuluj. Na dole jest paleta z farbami - kliknij
dwukrotnie na jakimkolwiek kolorze. Wyskoczyło kolejne okno
dialogowe - kolor. Są jeszcze okna dialogowe - czcionka i drukuj.
W przykładzie posłużę się dwoma - kolor i czcionka.
Pamiętasz jeszcze lekcję 13 - kazałem tam zapisać sobie mały
programik który potrafił wyrównywać tekst do prawej, lewej i
wyśrodkowywać. Teraz uzupełnimy go o możliwość manipulowania
czcionką tzn. wielkość, styl i rodzaj czcionki. Uzupełnimy go
także o możliwość zmiany koloru czcionki. Do dzieła...
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 ułożyć
element króry nazywa się Common Dialog Box. Jak się domyślasz
będzie on na palecie narzędzi po lewej. No przynajmniej musi się
tam znaleźć. Domyślnie jest wyłączony (chociaż nie wiem
dlaczego). No to jak go dodać do palety ? Kliknij prawym
klawiszem myszki (to ten drugi) na wolnym miejscu na pasku narzędzi,
z powstałego menu kontekstowego wybierz Components. Wyskoczyło
okienko dialogowe na którym widzimy listę dostępnych komponentów
- my musimy znaleźć "Microsoft Common Dialog Control
6.0". Naciskamy Zastosuk i zamknij. Czy widzisz już nowy
element na pasku narzędzi ? Tak, ten na samym dole - to ten
prostokąt z dwoma kwadracikami i kropkami w środku). Wybierz go
i ustaw gdzieś na formie. Obojętne gdzie - on i tak jest
niewidoczny. Potrzebny jest on VB tylko po to aby zapamiętywał własności
wybrane z okien dialogowych. Zmień tylko jego nazwę na cdb1.
Wystartuj program i co? Widzisz go gdzieś ? No nie. Dobra wyłącz
program - bierzemy się za kod. Kliknij dwukrotnie na przycisku
Czcionka. Teraz dopiszemy kod:
cdb1.DialogTitle = "Zmień czcionkę"
cdb1.FontName = "MS Sans Serif"
cdb1.Flags = cdlCFBoth
cdb1.ShowFont
Uruchom program. Kliknij przycisk czcionka - pokazało się nam
okno dialogowe. Wybierz cokolwiek i kliknij OK. Jak widzisz nasz
program jeszcze nie działa. Na razie wyjaśnię poszczególne
linijki kodu:
Najpierw tytuł okna dialogowego
Potem mamy domyślną czcionkę
Teraz bardzo ważna rzecz ! Informuje to CDB-a jakie czcionki ma
wyświetlić - cdlCFBoth oznacza, że wszystkie
No i teraz pokaż okno dialogowe.
Teraz musimy spowodować aby to działało - poniżej jeszcze
dopisujemy następujący kod:
lblgotowe.Font = cdb1.FontName
lblgotowe.FontBold = cdb1.FontBold
lblgotowe.FontItalic = cdb1.FontItalic
lblgotowe.FontSize = cdb1.FontSize
Jak to działa ? W chwili gdy ty wybierasz coś w Oknie
dialogowym odpowiednie własności zostają zapisane do cdb1.
Teraz musisz je tylko stamtąd wyciągnąć. Teraz kolejno wyciągaliśmy:
Nazwę czcionki, czy jest pogrubiona, czy może z kursywą, oraz
jej rozmiar.
Uruchamiamy program i... działa !!!
No dobra, a co z drugim przyciskiem? Jeszcze został kolor
czcionki... Do drugiego przycisku dodajemy więc następujący
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 działa. Teraz musimy jakoś z cdb1 wyciągnąć
kolor - ale jak? Poniżej dopiszmy jeszcze:
lblGotowe.ForeColor = cdb1.color
Teraz uruchamiamy program iii... działa !!
*******************KOMPILACJA*********************
Dobra - teraz was nauczę kompilować programy. Po co? Gdy
piszesz projekt to zapisujesz go do pliku VBS. A czy nie lepiej byłoby
zrobić plik EXE ? Jasne, że tak ! Kompilacja jest nadzwyczaj
banalna. Wystarczy z menu VB wybrać Make Project1.exe . Oczywiście
zamiast Project1.exe może 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 ciąg dalszy CDB.
1. Aby wywołać okno otwórz należy posłużyć się następującym
kodem:
cdb1.dialogTitle = "Tytuł"
cdb1.Filter = "Zwykły plik tekstowe|*.txt|Zdjęcia|*.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ę spotkałeś z takimi programami które
pozwalają otworzyć tylko niektóre pliki. W powyższym przykładzie
program będzie tylko widział pliki txt, a po zmianie opcji także
bmp i jpg. Jeśli chcesz aby program widział wszystkie pliki to
cdb1.Filter = "*.*"
No ale co to zwraca ? Zwraca to ścieżkę do pliku - możesz ją
wyciągnąć w ten sposób:
Dim x
x = cdb1.fileName
2. Zapisz:
cdb1.DialogTitle = "Tytuł"
cdb1.Filter = "*.*"
cdb1.FileName = "Test.txt" 'Domyślna
nazwa pliku
cdb1.ShowSave
Ta funkcja także zwraca właściwość FileName
3. Drukuj
cdb1.DialogTitle = "Tytuł"
cdb.ShowPrinter
Ta funkcja zwraca pewne ustawienia drukarki - ale o tym później
Myślę, że tyle na dzisiaj wystarczy - do następnego
spotkania...
Slash
slash83@wp.pl
|