FM20 – Image
Image to kontrolka ActiveX z zestawu biblioteki []iFM20[/i] (standardowy przybornik) dla kompilacji Office 32/64 bit.
Image to zdjęcie, czyli kontrolka umożliwiająca dodawanie grafiki do formularza. Ma ona parametry pozwalające na dopasowanie wielkości do obrysów kontrolki przez przycięcie, zmniejszenie lub wyświetlenie w oryginalnej wielkości.
Kontrolkę można wykorzystać np w budowaniu kartoteki osobowej, gdzie operator nie tylko wpisuje/odczytuje dane ale i może dodać lub oglądnąć podłączone zdjęcie. Jak to się zatem odbywa? Przyjmijmy najprostszy scenariusz. Parę pól imię, nazwisko, telefon, kontrolka Image oraz przycisk do zmiany zdjęcia:
Teraz w takim razie kod VBA sterujący załadowaniem jak i zamianą zdjęcia:
Private Sub UserForm_Initialize()
TextBox1.Text = "Oskar"
TextBox2.Text = "Shon"
TextBox3.Text = "(12)345-678-901"
Image1.Picture = LoadPicture("c:\temp\Zdjecie_Technet.jpg") 'dodanie zadeklarowanego zdjęcia do kontrolki
Image1.PictureSizeMode = fmPictureSizeModeZoom
Image1.BorderStyle = fmBorderStyleNone
End Sub
Private Sub CommandButton1_Click()
Dim Filt$: Filt = "Pliki skompresowane (*.jpg),*.jpg," & _
"Pliki graficzne (*.gif),*.gif," & _
"Pliki bidmapowe (*.bmp),*.bmp" 'zaproponowane formaty plików
Dim FilterIndex%: FilterIndex = 1
Dim Title$: Title = "Wybierz plik do zaimportowania w formularz"
Dim FileName: FileName = Application.GetOpenFilename(filefilter:=Filt, _
FilterIndex:=FilterIndex, Title:=Title)
If FileName = False Then
MsgBox "Nie wybrano żadnego pliku."
Exit Sub 'wyjście z procedury jeśli nie wybrano pliku graficznego
End If
Image1.Picture = LoadPicture(FileName) 'dodanie wybranego zdjęcia do kontrolki
End Sub
Na co można zwrócić uwagę, to fakt iż jeśli nie wiemy jaką wielkość będzie miał podłączany plik graficzny, dobrze jest ustawić jego ramkę na przeźroczystość, a wielkość tą dopasować. Ustawienia te są podane podczas uruchamiania formy. Niestety kontrolka nie posiada procedury reagującej na kliknięcie czy podwójne kliknięcie (zdarzenie zareaguje ale nie ładuje zdjęć). Aby wymazać wcześniej załadowane zdjęcie, można przekazać do polecenia LoadPicture pustego stringa “”.
Dobrym przykładem wykorzystującym większość ustawień kontrolki jest dodatek Pokaz Zdjęć
Jeśli uważasz że pokazane materiały są godne polecenia – podziel się tą wiadomością z innymi pozostawiając odnośnik to tego materiału.
(c) Shon Oskar – http://VBATools.pl
Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.