Akademia Techniczno-Rolnicza w Bydgoszczy
Wydział Mechaniczny
Katedra Sterowania i Konstrukcji
Systemy mikrokomputerowe
WSTĘP DO PROGRAMOWANIA
W JĘZYKU VISUAL BASIC
Instrukcja nr 8
Opis działania programu Obrazki
Program Obrazki pokazuje wykorzystanie obiektów typu lista dysków - DrvListBox, lista katalogów - DirListBox, lista plików - FileListBox oraz obraz - Image do zbudowania aplikacji pozwalającej na przeglądanie rysunków w formatach BMP, WMF oraz ICO.
Implementacja wizualna programu Obrazki.
Otwórz nowy projekt, zachowaj jego formę w pliku Obrazki.frm, a projekt pod nazwą Obrazki.mak.
Na podstawie tabeli zbuduj formę tak jak na rysunku 1.
Obiekt |
Własność |
Ustawienie |
Form |
Name Caption Height Left Top Width |
frmObrazki Przeglądarka 4590 1020 1305 6330 |
Image |
Name Height Left Stretch Top Width |
imgObrazek 2775 3120 True 120 3015 |
Label |
Name Caption BorderStyle Height Left Top Width |
lblNazwa (skasować zawartość) przestawic w poz. 1- 495 3120 3000 3015 |
Command Button |
Name Caption Height Left Top Width |
cmdKoniec &Koniec 495 4920 3600 1215 |
DrvListBox |
Name Height Left Top Width |
drvStacja 315 120 120 2895 |
DirListBox |
Name Height Left Top Width |
dirKatalog 1380 120 480 2895 |
FileListBox |
Name Archive Height Left Pattern Read Only System Top Width |
flePliki True 1590 120 *.bmp;*.wmf;*.ico True False 1920 2895 |
Rys.1 Program Obrazki
Instrukcja |
Obiekt DrvListBox umożliwia wyświetlenie listy dysków dostępnych w komputerze podczas pracy aplikacji. Obiekt DirListBox wyśiwetla listę katalogów katalogu aktywnego. Natomiast obiekt FileListBox listę plików tego samego katalogu, przy czym cechy Pattern, Archive, Read Only, System, określają dodatkowe parametry tego wyświetlania. Cecha Pattern określa, nazwy lub rozszerzenia plików wyświetlane w liście plików. Wpis: *.bmp;*.wmf;*.ico określa, że będą widoczne tylko pliki o rozszerzeniach bmp, wmf oraz ico. Cechy Archive i System wskazują, czy mają być wyświetlane pliki o atrybutach archiwaly i systemowy. Jeżeli cechy te przyjmują wartość False to pliki o tak zdefiniowanych atrybutach nie są wyświetlane. Ustawiona na True cecha Read Only mówi, że wskazany plik może być tylko odczytywany. Obiekt o nazwie Image pozwala na wyświetlanie obrazów w formatach BMP, WMF oraz ICO. Nazwa pliku, który ma zostać wyświetlony musi zostać wprowadzony do cechy Picture. |
Wprowadzanie kodu programu Lista
Do procedury drvStacja_Change() formy frmObrazki wpisz następujący kod:
Sub drvStacja_Change()
dirKatalog.Path = drvStacja.Drive
End Sub
Instrukcja |
Procedura ta wykonywana jest po zmianie dysku przy pomocy listy dysków. Ponieważ lista katalogów dirKatalog i lista dysków drvStacja nie są ze sobą związane, zmiana napędu dyskowego, nie wpływa na zmianę wyświetlanych katalogów. Aby miało to miejsce do cechy Path obiektu dirKatalog musi zostać przekazana informacja o wybranym napędzie dyskowym, którą można uzyskać z cechy Drive obiektu drvStacja. |
Do procedury drvKatalog_Change() formy frmObrazki wpisz następujący kod:
Sub drvKatalog_Change()
flePliki.Path = dirKatalog.Path
End Sub
Instrukcja |
Procedura ta wykonywana jest po zmianie katalogu przy pomocy listy katalogów. Ponieważ lista katalogów dirKatalog i lista plików drvStacja nie są ze sobą związane, zmiana katalogu, nie wpływa na zmianę wyświetlanych plików. Aby miało to miejsce do cechy Path obiektu flePliki musi zostać przekazana informacja o wybranym katalogu, którą można uzyskać z cechy Patch obiektu dirKatalog. |
Do procedury flePliki_DblClick() formy frmObrazki wpisz następujący kod:
Sub flePliki_DblClick()
If Right(flePliki.Path,1) <> „\” Then
lblNazwa.Caption = flePliki.Path & „\” & flePliki.FileName
Else
lblNazwa.Caption = flePliki.Path & flePliki.FileName
End If
imgObrazek.Picture = LoadPicture(lblNazwa.Caption)
End Sub
Instrukcja |
PrPocedura ta jest uruchamiana po dwukrotnym kliknięciu lewym klawiszem myszki na nazwie pliku z listy wyświetlanej w obiekcie flePliki. W pierwszej części nazwa pliku i ścieżka dostępu do niego łączone są w jedną całość. W tym celu pobierana jest ścieżka dostępu z cechy Patch obiektu flePlik, a następnie łączona z nazwą pliku pobieraną z cechy FileName tego samego obiektu. Łączenie odbywa się przy pomocy operatora „&” - wykonującego dodawanie dwóch łańcuchów znaków. Warunek If...Else...End If sprawdza czy ostatnim znakiem ciągu określającego ścieżkę dostępu do pliku jest „\” Funkcja Right wycina z prawej strony ciągu znaków będącego jej argumentem (flePliki.Path) ciąg znaków o podanej długości - w tym przykładzie jest to pojedynczy znak (drugi argument funkcji Right). Jeżeli warunek ten nie jest spełniony pomiędzy ciąg ścieżkę dostępu do pliku a jego nazwę wprowadzany jest dodatkowo „\”. Wygenerowana w ten sposób informacja trafia na ekran poprzez cechę Caption etykiety lblNazwa. Kod odpowiedzialny za wyżej wymienione operacje ma postać: If Right(flePliki.Path,1) <> „\” Then lblNazwa.Caption = flePliki.Path & „\” & flePliki.FileName Else lblNazwa.Caption = flePliki.Path & flePliki.FileName End If Wygenerowana w ten sposób nazwa wykorzystywana jest do wyświetlenia wskazanego obrazka w obiekcie imgObrazek. Wykonuje się to poprzez przypisanie do cechy Picture tego obiektu nazwy pliku, przy czym nie można zastosować jedynie operatora przypisania w postaci znaku równości „=” - dodatkowo należy zastosować funkcje LoadPicture z argumentem określającym nazwę pliku do wyświetlenia na ekranie. Kod odpowiedzialny za wykonanie tej czynności ma postać: imgObrazek.Picture = LoadPicture(lblNazwa.Caption) |
Do procedury Form_Load() formy frmObrazki wpisz następujący kod:
Sub frmObrazki_Load()
drvStacja.Drive = app.Path
dirKatalog.Path = app.Path
End Sub
Instrukcja |
Ponieważ w trakcie uruchamiania aplikacji dysk wskazywany w obiekcie drvStacja i katalog wyświetlany w obiekcie dirKatalog mogą być przypadkowe istnieje konieczność nadania im wartości początkowych. W ćwiczeniu jako dysk i katalog początkowy wybrano miejsce, z którego uruchomiono program Obrazki. Wykonywane jest to poprzez przyporządkowanie do obiektu drvStacja (cecha Drive - napęd) i obiektu dirKatalog (cecha Path - ścieżka) dysku i katalogu, z którego uruchomiono program (cecha Path) obiektu App. Obiekt App jest obiektem logicznym udostępnianym użytkownikowi przez język Visual Basic, który określa ogólne cechy całej aplikacje m.in. katalog, z którego została ona uruchomiona. Przyporządkowanie to powinno być wykonywane za każdym razem, kiedy do pamięci komputera ładowana (uruchamiana) jest forma frmObrazki, zdarzenie, które występuje podczas ładowania dowolnego obiektu do pamięci nosi nazwę Load i dlatego właśnie z nim związano operacje przyporządkowywania początkowego dysku i ścieżki dostępu. |
Do procedury cmdKoniec_Click() formy frmObrazki wpisz następujący kod:
Sub cmdKoniec_Click()
End
End Sub
Uruchomienie programu Obrazki
Uruchom program Obrazki.
Korzystając z listy dysków twardych i katalogów znajdź pliki obrazów graficznych w formacie BMP, WMF lub ICO.
Dwukrotnie kliknij na wybranym pliku. W okienku po prawej stronie powinien pojawić się wskazany obrazek.
Kliknij Koniec, aby zakończyć działanie programu.
Tworzenie pliku wykonywalnego (Obrazki.exe)
Wybierz z menu File opcję Make EXE File.
Zapamiętaj plik pod nazwą Obrazki.exe.
Zakończ działanie Visual Basic wybierając z menu File opcję Exit.
Ćwiczenie końcowe
Zmień program Obrazki, tak aby przy każdej zmianie katalogu podawał liczbę plików pokazywanych w liście.
Informacja |
W celu wykonania tej operacji należy umieścić w formie dodatkową etykietę (Label), w której będzie wyświetlana liczba plików. Liczbę plików przechowywanych w liście plików flePliki zawiera cecha ListCount tego obiektu. |
5
5