|
|
|
 |
|
|
 |
 |
Soru-Cevap: 4 - M. Temel Korkmaz - 28.04.2004
Resim Dosyaya Eklensin |
|
|
|
|
 |
Soru 4:
Yazmış olduğum bir makroda UserForm üzerindeki Image1’e
Image1.Picture =
LoadPicture("C:\Belgelerim\Ali.jpg")
satırı ile resim alıyorum. Fakat resmin bilgisayarımdaki adı
ya da yolu değişince resim görünmüyor. Resmi dosyaya eklemenin bir yolu yok mu?
Yani yukarıdaki ilgili adresten almayıp dosyaya eklesin.
Cevap 4:
Bu şekilde eklediğiniz bir resim HDD'de yeri değişince
normal olarak Image nesnesi içersinde görüntülenmez. Yani teşhis doğru.
Şimdi sorunuzun cevabına gelelim.
Eğer Image nesnesi içerisine tek bir resim alacaksanız sorun
olmayacaktır bunu dosyanızdaki Image nesnesine gömebilirsiniz. Bunun için
yapmanız gereken yöntem VBE'deki Properties penceresinde bulunan Picture
özelliğini kullanmaktır.
1. Image nesnesini seçin.
2. Properties penceresindeki Picture özelliğine tıklayın.
3. Ekrana gelen pencereden istediğiniz resmi seçin. Yolu
önemli değil.
4. Tamam düğmesine tıklayın.
Resmin Image nesnesine aktarıldığını göreceksiniz. Artık bu
resim image nesnesine gömülü hale geldi. Yani HDD'de bulunan resimle herhangi
bir ilişkisi kalmadı. Unutmayın bu sadece tek bir resim için geçerlidir. Siz de
sorunuzda aksini belirtmemişsiniz.
Soru 4 (Devam):
Sayın Korkmaz,
Öncelikle açıklamanıza teşekkür ederim. Yazımda Belirtmeyi
unuttum. Resim birden fazla. Acaba böyle olunca mümkün mü?
Cevap 4 (Devam):
Sizin için en uygun yöntemi aşağıya adım adım yazıyorum.
Ancak bunun için bilgisayarınızda C:\Windows\System\mscomctl.ocx dosyası
bulunmalı. Bu dosyanın Additional Controls menüsündeki tam adı Microsoft
ImageList Control 6.0
1. Bir UserForm oluşturun.
2. UserForm'un üzerine İmageList, İmage, ListBox nesneleri
ekleyin.
3. ImageList1 nesnesin seçin.
4. Properties penceresinden Custom Özelliğine tıklayın.
Property Pages penceresi açılacaktır.
5. Images sayfa sekmesine geçin.
6. Insert Picture Düğmesine tıklayın ve resimlerinizi
bularak bu kutuya aktarın.
Resimleriniz ImageList1 nesnesine aktarıldığı anda HDD ile
işiniz kalmadı demektir. O resimlerin yeri değişse de ImageList1 deki resimler
kalıcıdır.
Yukarıdaki işlemleri tamamladıktan sonra şuna dikkat edin
ImageList1 nesnesindeki her resmin üzerine tıkladığınızda Index numarasının
1’den başlayarak arttığını göreceksiniz. Ben bu örneği 4 adet resime göre
verdim. Aşağıdaki kodları UserFormun kod sayfasına yazın
Private Sub ListBox1_Click()
Image1.Picture = _ ImageList1.ListImages(ListBox1.ListIndex + 1).Picture
End Sub
Private Sub UserForm_Initialize()
ListBox1.AddItem
"Resim1"
ListBox1.AddItem
"Resim2"
ListBox1.AddItem
"Resim3"
ListBox1.AddItem
"Resim4"
End Sub
Resimlerin yerlerini değiştirseniz de programınızda bir
değişiklik olmayacak. Lütfen yukarıda bahsettiğim ocx dosyasını bulun. Herhangi
bir Visual Basic 6.0 cd si içerisinde bulunan bir dosyadır. Bulun ve Tools
menüsünden References'den dosyanızı programa tanıtın. Bu tanıtım hakkında
forumda yazı bulunmaktadır (http://www.office.gen.tr/forum/viewtopic.php?t=202)
. Eğer bilgisayarınızda VB 6 kurulu ise ya da bu dosya varsa sorun yok demektir.
Ben bilgisayarınızda olmaması üzerine ihtimalleri yazdım.
|
|
|
 |
|
|
|