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.
1. Otwórz nowy projekt, zachowaj jego formę w pliku Obrazki.frm, a projekt pod nazwą Obrazki.mak.
2. 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
Stretch
imgObrazek
2775
3120
True
120
3015
Label
BorderStyle
lblNazwa
(skasować zawartość)
przestawic w poz. 1-
495
3000
Command Button
cmdKoniec
&Koniec
4920
3600
1215
DrvListBox
drvStacja
315
2895
DirListBox
dirKatalog
1380
480
FileListBox
Archive
Pattern
Read Only
System
flePliki
1590
*.bmp;*.wmf;*.ico
False
1920
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
1. Do procedury drvStacja_Change() formy frmObrazki wpisz następujący kod:
Sub drvStacja_Change()
dirKatalog.Path = drvStacja.Drive
End Sub
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.
2. Do procedury drvKatalog_Change() formy frmObrazki wpisz następujący kod:
Sub drvKatalog_Change()
flePliki.Path = dirKatalog.Path
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.
3. 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)
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ć:
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ć:
4. Do procedury Form_Load() formy frmObrazki wpisz następujący kod:
Sub frmObrazki_Load()
drvStacja.Drive = app.Path
dirKatalog.Path = app.Path
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ąd...
kkkate