VBATools

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.

Obrazek

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:

Obrazek

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.