-
IMAGELİST (İMAJ LİSTESİ)
Başka nesneler tarafından kullanılan resimleri saklar.
PROPERTİES (ÖZELLİKLER)
ListImages
ImageList kontrolüne eklenecek resimler ListImages özelliğinin aşağıdaki alt özellik ve metotları ile yönetilir.
ListImages.Add (Index,Key,Picture)
ImageList kontrolüne yeni resimler eklemek için bu metot kullanılır. Buradaki Index ve Key parametreleri verilmezse resim sona,verilirse verildiği yere eklenir.
ListImages.Add(, , LoadPicture(“Deneme.bmp”) satırı Deneme.Bmp dosyasını listedeki son resim olarak ekleyecektir.
Bu tip listelerde Index parametresi ile listenin bir elemanına ulaşabiliyorduk.Buradaki Key parametresi bize alternatif bir erişim şekli sunar.Programcı isterse Index özelliği ile isterse string olan Key özelliği ile o elemana ulaşabilir.
ListImages.Add(1,”İlk Resim”,LoadPicture (“İlk Resim”)satırı ile ulaşılabilir.Görüldüğü gibi Key özelliği resimleri yönetmek için sayılar yerine yazıları da kullanabilme imkanı verdiği için programlamayı kolaylaştırmaktadır.
Tasarım zamanında Custom özelliği ile açılan aşağıdaki pencereyi kullanarak gerekli resimleri kolayca ekleyip çıkarabilirsiniz.ListImages.Count
Liste içindeki resim sayısı bu özellikle öğrenilir.ListImages.Remove Index
Liste içindeki Index numaralı elemanı siler.İlk elemanın index’i 1 dir.ListImages.Clear
Liste içindeki bütün elemanları siler.ListImages(i).Picture
Listedeki i numaralı resmi öğrenmek için bu özellik kullanılır.Buradaki ilk elemanın indexi 1’dir.Index yerine Key için verilen metin de kullanılabilir.Form1.Picture=ImageList1.ListImages(1).Picture
ListImages(i).ExtractIcon
Numarası verilen resimden bir ikon oluşturur.Buradan geriye dönen değer herhangi bir Icon özelliğine atanabilir.Form1.Icon=ImageList1.ListImages(1).ExtractIcon
ListImages(i).Draw(hDC,x,y,sstyle)
Liste içindeki bir resmi Picture özelliği ile alabileceğimiz gibi,Draw metodunu kullanarak başka bir kontrolün içine de çizdirebiliriz.Buradaki hDC parametresine çizdirilecek yerin hDC numarası, x,y ile koordinatları Style ile de uygulanacak efect belirlenebilir.Çoğumlukla ImageŞist komut düğmeleri için düşünüldüğünden dolayı verilecek efektlerde bir komut düğmesinin alabileceği değişik durumları temsil eder. Style parametresinin alabileceği değerler şunlardır;
0,,im1Normal: Aynen çizilir.
1,,im1Trasparent:Kopyalandığı yerin altını gösterecek şekilde çizilir.
2,,im1Selected: Seçilmiş bir kontrol efekti verilerek çizilir.
3,,im1Focus: Klavye kontrolünü elinde bulunduran bir kontrol efekti verilerek çizilir.ImageList1.ListImages(1).Draw Form1.hDC,0,im1Selected
ListImages(i).Key
Eleman eklenirken ona bir Key verebileceğini de belirtmiştik. Bu değer daha sonra Key
özelliği ile öğrenilip değiştirilebilir.METHODS
Overlav(Index1,Index2)
Verilen iki resmin geçişini oluşturur.Yani Index2 ile belirtilmiş resmi,Index1 ile de belirtilmiş resmin üzerine çizer. Birden fazla resmin bu şekilde arka arkaya gösterilerek yumuşak geçişli animasyonlar yapılabilir.
Picture1.Picture=ImageList1.Overlay(1,2)
Örneğin bir animasyonun parçalarını oluşturan 7 tane resmi ListImage kontrolüne ekleyerek bir Timer aracılığı ile bunları arka arkaya göstererek,normal gösterimle,Overlay gösterim arasındaki farkı görebilirsiniz.
Private Sub Form_Load()
Dim i
For i = 1 to 7
‘Anim1.bmp- Anim7.Bmp dosyaları yükleniyor.
Call ImageList1.ListImages.Add(, , LoadPicture(“anim” & i & “.bmp”))
Next
End Sub
Private Sub Timer1_Timer()
Static i
Dim j
İ =i mod 6
İ =i+1
j =i+1
j = (i mod 7)+1
‘Overlay gösterim
Picture1.Picture=ImageList1.Overlay(i,j).
‘Normal gösterim
Picture2.Picture=ImageList1.ListImages(i).Picture
End SubİMAGELİST’e KOD İLE RESİM EKLEMEK
Private Sub Form_Click()
CommonDialog1.ShowOpen
ImageList1.ListImages.Add , “open”, LoadPicture(CommonDialog1.FileName)
End Sub
İMAGELİST’teki İKİ RESMİ BİRLEŞTİRMEK
Private Sub Form_Click()
Set Picture3.Picture = ImageList1.Overlay (index1, index2)
‘ Set Picture3.Picture = ImageList1.Overlay (”key1″, “key2″)
End Sub
Program ile birlikte bilgisayarınıza kurulan fakat siz onu bulmadıkça gizlenen ImageList kontrolü sayesinde bir kaç satır kodla bu işi gerçekleştirebiliyorsunuz. Programı çalıştırdığınız anda ImageList içindeki küçük simgeler menü seçeneklerine yerleştirilecek ve program sonlanana kadar orada kalacaktır.
Private Sub Form_Load()
Dim i%
Dim hMenu, hSubMenu, menuID, x
hMenu = GetMenu(hwnd)
hSubMenu = GetSubMenu(hMenu, 0)
For i = 1 To 4
menuID = GetMenuItemID(hSubMenu, i - 1)
x = SetMenuItemBitmaps(hMenu, menuID, &H4, img.ListImages(i).Picture,
img.ListImages(i).Picture)
Next
menuID = GetMenuItemID(hSubMenu, 5)
x = SetMenuItemBitmaps(hMenu, menuID, 0, img.ListImages(5).Picture, 0&)
End SubİMAGELİST
TANIM
Visual Basic’de ExtractIcon metodunu kullanarak herhangi bir resmi simge haline getirebilirsiniz.
Bunu yapmak için Imagelist kontrolünün ListImage özelliğini kullanmalısınız
VB 3′de bazı API fonksiyonlarını kullanarak her menü komutunun kenarına bir resim yerleştirebiliyorduk. VB4′te ise bu işlem çok daha kolay bir hale getirilmiş.VİSUAL BASİC 6.0 Programı ile birlikte bilgisayarınıza kurulan fakat siz onu bulmadıkça gizlenen ImageList kontrolü sayesinde bir kaç satır kodla bu işi gerçekleştirebiliyorsunuz. Programı çalıştırdığınız anda ImageList içindeki küçük simgeler menü seçeneklerine yerleştirilecek ve program sonlanana kadar orada kalacaktır.
Private hwnd)
SubMenu = GetSubMenu(hMenu, 0)
For i = 1 To 4
menuID = GetMenuItemID(hSubMenu, i - Sub Form_Load()
Dim i%
Dim hMenu, hSubMenu, menuID, x
hMenu = GetMenu(1)
x = SetMenuItemBitmaps(hMenu, menuID, &H4, img.ListImages(i).Picture, img.ListImages(i).Picture)
Next
menuID = GetMenuItemID(hSubMenu, 5)
x = SetMenuItemBitmaps(hMenu, menuID, 0, img.ListImages(5).Picture, 0&)
End SubUnload komutuyla bir formu bellekten atamayacağınızı bilin. Formu bellekten atmanın tek yolu Set [FORMA ADI] = Nothing komutunu kullanmaktır.
Bir BMP’yi kolayca simge olarak kaydedebilirsiniz. Sadece “ImageList” kontrolünde “ListImage” özelliğinin “ExtractIcon” methodunu kullanmanız yeterlidirEklediğiniz butonlara resim yerleştirmek için öncelikle forma bir ImageList ekler ve resimleri bundan aktarırız.
-
TreeView denetiminin kullanılması
treeview denetimi,ağaç tarzında şık bir biçimde organize edilebilen klasör veya başka öğelerin hiyerarşik bir görünümünü sunar. Bu denetim genellikle treeview denetiminde seçili olan klasörün içeriğini görüntülemek için kullanılan bir list view denetimini ile bir arada kullanılır.
Tree view özellikleri (properties)
tree view denetiminin çok sayıda özelliği vardır,üstelik bunların çoğu oldukça değerlidir:Appearange
BorderStyle
CausesValidation
CheckBoxes
Container
DragIcon
DragMode
DropHighLight
Enabled
Font
FullRowSelect
Height HelpContextID
HideSelection
HotTracking
HWnd
ImageList
Indentation
Index
LabelEdit
Left
LineStyle
Nodes
Object
OleDragMode
OleDropMode
Parent
PathSeparator
Scroll
MouseIcon
MousePointer
Name
SelectedItem
SingleSel
Sorted
Style
TabIndex
TabStop
Tag
ToolTipText
Top
Visible
WhatsThisHelpID
Widthstandart özelliklerin yanı sıra,bu denetimin gücünden faydalanmak için tanımanız gereken yeni birkaç özelleğide vardır. name özelliği,bu denetimle çalışırken değerini
atamanız gereken ilk özelliktir.standart isimlendirme konvansiyonu ön takısı tvw’dur.örneğin sabit sürücünüzün dizin yapısınıiçeren bir ağaç görünümünüz olursa ona tvwdirectories ismini verebilirsiniz.General sekmesi
style özelliği denetimin form üzerinde nasıl görüneceğini ve davranacağını belirlemenizi sağlar. Bu özelliğe verebileceğiniz olası değerler aşağıdadır:
0-tvwtextonly: bu ayar düğümünün sadece metnini gösterir.
1-tvwpicturetext: Bu ayar düğümlerin simge ve metinlerini gösterir.
2- tvwplusminustext: Bu ayarı açık/kapalı sembolü (artı ve eksi işaretleri) ile düğümlerin simge ve metinlerini istiyorsanız kullanın.
3- tvwpluspicturetext: Bu ayarı açık/kapalı sembolünümetnin sol tarafından küçük bir simge ve metnin kendisini görüntüler.
4-tvwtreelinestext: Ağacın hiyerarşisinde ilgili olan düğümleri birbirine bağlayan çizgiler olmasını isterseniz,bu ayarı düğümün çizgileri ve metninin göstermek için kullanırız.
5-tvwtreelinespicturetext: Bu ayarı metnin sol tarafında küçük bir simge görüntüler ve ilgili düğümleri birbirine bağlar.
6-tvwtreelinesplusminustext: Bu ayarı açık/kapalı sembolü,bağlantı çizgilerini ve düğüm metnini göstermek için seçin.
7-tvwtreelinesplusminuspicturetext: Her şeyin gösterilmesi için bu ayarı seçin.LineStyle özelliği Düğümler arasında görüntülenen çizgilerin stillerini ayarlamak için kullanılır. olası değerler aşağıdadır:
0-treelines
1-rootlineslabeledit, denetiminin otomatik etiket düzenleme özelliğini açıp kapatmanızı sağlayan boolean bir özelliktir. Windows explorer bu özelliği bir klasör veya dosya tek tıkladığımızda sergiler. Bu isim kendisini değiştirmenize olanak veren minyatür bir metin kutusuna dönüşür. Etiket düzenlemeyi devreye sokmak için bu özelliğin true yapın, devreden çıkartmak için ise false yapmanız yeterlidir.
tree view denetiminizde resimler olmasını isterseniz ImageList özelliğine eşitlemeniz yeterlidir.
borderstyle ve apperance özellikleri yeterince açıktır.
oledragmode özelliği denetimini elle veya otomatik sürüklemeyele konfigüre edilebilir. Bu özelliğe aşağıdaki değerlerden birini atayabiliriz:
0-oledragmanual
1-oledragautomatic
oledropmode özelliği tree view denetiminin ole bırakma işlemlerinin kabul veya ret edecek biçimde konfigüre eder. Bu özelliğin değeri aşağıdakilerden biri olabilir:0-oledropnone: Bu değer atandığında hedef bileşen ole bırakmalarını kabul etmez ve nodrop imlecini görüntüler.
1-oledropmanual: Denetim programcının ole bırakma işlemini kod içinde yönetmesine olanak verecek biçimde ole bırakma olaylarını tetikler.
Indetation özelliği görünümdeki düğümler arasındaki yatay mesafeyi belirler. Bu sayı ne kadar küçük olursa düğümlerde de birbirine o kadar yakın olur. Daha sıkı görünen bir arabirimi tercih edreseniz 283 değerinin çalışma kipinde hoş göründüğünü söyleyebilirim.
pathseparatr özelliği bir düğümün fullpath özelliği tarafından döndürülen yol için kullanılan ayraç karakterini aşağıdaki biçimde atamanıza veya döndürmenize olanak verir.private sub treeview1_nodecilik(byval node as node)
dim rc as string
rc=node.fullpath
mshbox rc
end subörneğin,sabit sürücünüz üzerindeki klasörün bir listesinigösteriyorsanız bu özelliğindeğerini ters bölü (*) yapabilirisiniz ya da LAN üzerindeki IP alt ağlarını eşlerken internet tarzı bir yol belirtmek için bu nokta(.) kullanabilirsiniz. tree view denetiminin kaydırma çubuklarının denetimini göstermesini isterseniz scroll özelliğinin değerini true yapın;tree view denetiminde bir seferde görüntülenemeyecek kadarçok sayıda düğüm olursa bu işlem gerekli olabilir. Kaydırma çubuklarını devreden çıkartmak için de bu özelliğin değerini false yapın.
Tree view olayları (Events)
Aşağıda tree view denetimi tarafından desteklenen olayların listesi yer alıyor:
AfterLabelEdit
BeforeLabelEdit
Click
Collapse
DblClick
DragDrop
DragOver
Expand
GotFocus
KeyDown
KeyPress
KeyUp
LostFocus
MouseDown
MouseMove
MouseUp
NodeCheck
Nodeclick
CodeClick
OleCompleteDrag
OleDragDrop
OleDragOver
OleGiveFeedBack
OleSetData
OleStartDrag
Validateafterlabeledit() olayı,bir düğüm üzerindeki etiket düzenleme işlemi yapılmasında sonra tetiklenir. bu olay düğümün isminin geçerli olduğundan emin olmak için denetlemek isterseniz
faydalı olur.tamamlayıcısı olan beforelabeledit() olatı ise düğüm düzenleme kipine geçmeden önce tetiklenir.
collapse()olayı kullanıcı ağacın bir dalını kapttığında tetiklenir.bu olay bir ağacın kökü çift tıklandığında ya da bu dalın kökünün yanındaki eksi işareti tıklandığında gerçekleşebilir.hafızadan tasarruf etmek isterseniz.tree view denetiminden öğeler silmek için gereken kodu bu olaya yerleştirebiliriz.
Expand()olayı collapse() olayının tam tersidir.kullanıcı bir dalın kökünün yanındakiartımişaretine tılıyarak veya bu dalın köükne çift tıklıyarak bir dalı açtığında tetiklenir.bu olay düğüm açılırken denetime verileri dinamik olarak yüklemek amacıyla kullana bilirsiniz.
Nodeclick()olayı tree view denetiminin sunduğu en önemli olaylardan biridir.bu olaı tıklanan düğüm hakkında bilgi almak yada uygulamanın gerektiği başka her hangi bir işlev için kullanabilirsiniz.örneğin aşağıdaki kod tıkladığınız düğümün komple yolunu gösteren bir iletişim kutusu görüntülenir:private sub tvwnodes_nodecilick(byval node as comctlib.node)
msgbox node.fullpath
end subpathseparator özelliğinde bir ters bölü karakteri kullanırsınız.kök düğüm adı C: ve tıklanan düğüm adıda windows olduğunda bu iletişim kutusu C:\windows ifadesi görüntülenir.
olecompletedrag()olayı ole verileri bu denetim üzerine bırakıldığında veya ole sürükleme bırakma işlemi iptal edildiğinde tetiklenir.
oledragdrop()olayı oledropmode özelliğinin değeri 1-manual yapıldığında ve denetim üzerine ole verileri bırakıldığında tetiklenir.bu nolaya veriler bırakıldığında denetimin ne yapması gerektiğini belirliyecek kodu yerleştiririz.bu olaya denetimin verileri taşımasını sağlayacak kodu da yerleştirebilirsiniz,ama kopyalamak için kullanılacakbir kod yerleştirmelisiniz.ya da verileri kopyalamasını sağlayabilirsiniz,ancak bu durumda da taşıtamazsınız.bu işlev uygulamanızın gereksinimlerine bağlıdır.
oledragover()olayı ole verileri denetimin üzerine sürüklendiğinde tetiklenir.
olegivefeedback()olayı her oledragover() olayından sonra tetiklenir.bu olay tree view denetiminin kullanıcıya fare imlecinin kullanıcı nesneyi bıraktığı taktirde ne olacağını gösterecek şekilde değiştirmek veya neler olacağını göstermek için seçim üzerinde görsel bir geri besleme sunmak gibi bir geri besleme sunması sağlar.
olesetdata()olayı bir hedef denetim getdata yöntemini kaynak denetim dataobject nesnesi üzerinde çalıştırıldığında tetiklenir.
son olarakda olestartdrag()olayı kullancı verileri bu denetimden başladığında tetiklenir.tree view yöntemleri (methods)
aşağıda tree view denetimi tarafından desteklenen yöntemler yer alıyor:
Drag
GetVisibleCount
HitTest
Move
OleDrag
Refresh
SetFocus
ShowWhatsThis
StartLabelEdit
Zordergetvisiblecount yöntemi belirli bir anda tree view içinde görünebilen düğüm sayısını elde etmek için kullanılır.
hittest yöntemi belirli bir düğümün bırakma hedefi olarak kullanılıp kullanılmayacağını belirtmek için kullanılır.
oledrag yöntemi bir ole sürükleme işleminin başlatılması için çağrılır.
startlabeledit yöntemi,bir düğümü etiket düzenleme kipine geçirdiğimizde kullanılır. -
Nesneyi bağlama ve yerleştirme yöntemi, Windows işletim sistemince kullanılan bir teknolojidir. Bu teknoloji sayesinde, bir windows uygulama programı (Visual Basic 6.0) ile geliştirilen bir proje içine başka bir windows uygulama programından nesneler aktarmak mümkündür.
Kullanıcı Formu
Bu form programa ait kullanıcı arabiriminin oluşturulduğu yerdir. Yani tüm denetimler öncelikle bu form üzerüine yerleştirilir ve yerleştirilen denetimler bu forma ait birer nesne olarak çalışırlar. Burada oluşturulan form görüntüsü program çalıştığı zaman ekranda görülür. Bu form görsel dillerin özelliğidir. Bilindiği gibi aynı ekran görüntüsünü görsel olmayan program dillerinde oluşturmak çok zordur. Ayrıca programın ekran görüntüsünü program çalışırken de değiştirebiliriz. Projelerimizde birden fazla form kullanmak mümkündür. Formlar projelerimizin ana elemanlerıdır. Herhangi bir denetim elemanını form üzerine eklemek için öncelikle denetim araç çubuğundan ekleyeceğimiz elemanı fare ile seçeriz. Bu işlemden sonra elemanın konumu belirlenip fare yardımı ile elemanın görüntüsü belirlenen yere çizilir.
OLE (NESNE BAĞLAMA ve GÖMME ELEMANI)
OLE teknolojisini destekleyen iki program arasında bağlantı kurmayı sağlar. Bağlantının sonucunda veri transferi yapmak yada verileri kullanmak mümkün olmaktadır.
Data-OLE Örneği
Nesne Özellik Ayar
Data1 Connect Access
DatabaseName C:\DERS_2\Yetenek.mdb
RecordSource ArtistsText1 DataSource Data1
DataField NameText2 DataSource Data1
DataField AdressText3 DataSource Data1
DataField CityText4 DataSource Data1
DataField StateText5 DataSource Data1
DataField WorkPhone.
Private Sub OLE1_Updated(Code As İnteger)
Command1 Caption
Private Sub Command1_Click()
End
End SubOLE örneği için bir OLE nesnesi ekleyelim. Nesne ekle diyalog kutusunda uygulamamıza bağlayabileceğimiz nesnelerin listesi görünmektedir.
Dosyadan Oluştur’u seçelim, Bağlayı seçelim, Gözat kutusundan C:\DERS_2\Satışlar_01xls dosyasını bulalım, Tamam’a tıklayalım.
Şimdide sağ alt köşeye yeni bir OLE nesnesi çizelim. Nesne ekle kutusunu iptal ile geçelim. C:\DERS_2 dizinindeki excel dosyasını açıp grafiği kopyalayalım. VB de forma yeni eklediğimiz OLE nesnesine sağ tıklayıp Paste Special diyelim. Özel yapıştır kutusunda Bağlantı Yapıştır ‘ı seçelim
OLE2.Update
End SubOLE teknolojisini destekleyen iki program arasında bağlantı kurmayı sağlar. Bağlantının sonucunda veri transferi yapmak yada verileri kullanmak mümkün olmaktadır.
Action Özelliği
Nesne üzerinde çeşitli işlemlerin yapılmasını sağlar.
nesne.Action = değer
İşlemin alabileceği değerler şunlardır:
Değer İşlevi Metot
0 Gömülü nesne yaratır. CreateEmbed
1 Bir dosyada bağlı nesne yaratır. CreateLink
4 Nesneyi panoya kopyalar. Copy
5 OLE kontrolüne panodan veri yapıştırır. Paste
6 OLE kontrolü içindeki veriyi günceller. Update
7 Nesneyi üzerinden işlem yapmak için açar. DoVerb
9 Nesneyi kapatır. Close
10 Belirtilen nesneyi siler. Delete
11 Nesneyi veri dosyasına kayıt eder. SaveToFile
12 Nesneyi dosyadan yükler. ReadFromFile
14 İnsert Object iletişim kutusunu görüntüler. İnsertObjDlg
15 Paste Special iletişim kutusunu görüntüler. PasteSpecialDlg
17 Nesnenin desteklediği işlemleri günceller. FetchVerbs
18 Bir nesneyi OLE 1.0 formatında kayıt eder. SaveToOle1File
OLE DRAG & DROP
OLEDragMode
Taşıma işleminin nasıl yapılacağını belirler.
0, vbOLEDDragAutomatic : Bu modda sürükleme işlemi otomatik olarak başlatılır.
1, vbOLEDDragManual : Bu modda sürükleme işlemini başlatmak için OLEDrag metodu kullanılmalıdır.OLEDropMode
Bırakma işleminin nasıl yapılacağını belirler.
0, vbOLEDropNone : Nesne bırakma işlemini desteklemeyecek.
1: vbOLEDropManual : Bırakma işlemi program kodu ile yapılacak.
0 : vbOLEDropAutomatic : Bu modda hiçbir koda gerek kalmadan bırakma işlemi gerçekleştirilebilir.Eğer bir kontrolün hem OleDragMode ve hem de OleDropMode özellikleri otomatik değerleri destekliyorsa bu kontrollere hiçbir kod yazmanız gerekmez. Sadece bu iki özelliğe Automatic değerlerini vermeniz yeterlidir.
ÖRNEK: Örnek olarak programınıza iki tane text kutusu yerleştirin ve her ikisinde de bu özelliklerini Automatic olarak ayarlayıp programı çalıştırın. Bu iki kutu arasında seçtiğiniz kısmı taşıyabileceğiniz gibi bu kutulardan seçip OLE Drag&Drop işlemlerini destekleyen diğer uygulamalara da taşıyabileceğinizi veya oradan bu kutulara taşıyabileceğinizi göreceksiniz.
Formunuzun üzerine bir FileListBox koyup OleDragMode özelliğini Automatic yaparsanız artık buradaki dosyalardan seçip istediğiniz bir yere taşıyarak oraya kopyalayabilirsiniz. Örneğin masa üstüne veya Explorer de bir dizine bırakarak oraya kopyalanmasını sağlayabilirsiniz. Hatta FileListBox’un MultiSelect özelliğini 1 veya 2 yaparak birden fazla dosyayı aynı anda istediğiniz yere kopyalayabilirsiniz.
Aynı şekilde bie PictureBox’un bu iki özelliğine Automatic değerini vererek diğer uygulamalardaki resimleri getirip PictureBox üzerine bırakabilirsiniz. Bu işlemler sırasında Ctrl tuşuna basılı tutarsanız sürüklediğiniz şey karşı tarafa kopyalanır, bu tuşa basılı tutmadan sürüklerseniz oraya taşınır.
Methods
OLEDrag( )
Eğer OleDragMode özelliği otomatik olarak belirlenmişse taşımaya başlama işlemi bu metodla yapılır.
Events
OLEStartDrag (Data As DataObject, AllowedEffects As Long)
Sürükleme işlemi başladığında bu olay meydana gelir.
OLECompleteDrag (Effect As Long)
Drag-Drop işlemi tamamlandığında veya iptal edildiğinde bu olay meydana gelir.
Effect parametresi ile sonuç hakkında bilgi alınabilir. Örneğin bilgi karşı tarafa kopyalandı mı, taşındı mı bu bilgi Effect parametresi ile öğrenilir. Effect parametresinin alacağı değerler şunlardır:1 : vbDropEffectCopy
2 : vbDropEffectMove
3 : vbDropEffectNoneOLEDragDrop (Data As DataObject, Effect As Long, Button As İnteger, Shift As İnteger, X As Single, Y As Single)
OLEDropMode özelliğine Manual verilmişse bırakma işlemi gerçekleştiğinde bu olay meydana gelir.
OLEDragOver (Data As DataObject, Effect As Long, Button As İnteger, Shift As İnteger , X As Single, Y As Single, State As İnteger)
OLEDropMode özelliğine Manual verilmişse sürükleme işlemi gerçekleşirken bu olay meydana gelir.
OLEGiveFeedback (Effect As Long, DefaultCursors As Boolean)
Bu olay, OLE kaynağının sürükle ve bırak işlemi esnasında fare şeklinin değişmesi gerektiği durumlarda meydana gelir.
DataObject
OLE Drag&Drop olayında sürüklenen bilginin formatı aşağıdaki değerlerden biri olabilir.
Sayısal Sembolik Anlamı
-16640 vbCFLink Bağlantı bilgisi, DDE bağlantı bilgisi
-16639 vbCFRTF RTF metni, formatlı metin bilgisi
1 vbCFText Text, formatsız metin bilgisi
2 vbCFBitmap BMP, bitmap türü resim bilgisi
3 vbCFEMetafile WMF, windows metafile türü resim bilgi
8 vbCFDIB DIB, DIB formatlı resim bilgisi
9 vbCFPalette Palet bilgisi
15 vbCFFiles Windows explorer dosya adıProperties
Count,Files (İndex)
Sürükleme işlemindeki Datalar dosya isimleri ise, yani vbCFFiles formatında ise bu özelliklerle sürüklenen dosya sayısı ve her bir dosyanın ismi öğrenilip değiştirilebilir.
Methods
Clear ( )
Datanın içeriği silinir.
GetData (Format As İnteger)
Format parametresi ile belirlenen bilgiyi öğrenmek için kullanılır.
GetFormat (Format As İnteger) As Boolean
Datanın format parametresi ile belirlenen formatı destekleyip desteklemediği bu özellikle öğrenilir. Geriye dönen değer True ise o bilgi formatttadır.
SetData ([Bilgi], [Format)]
Taşınacak bilgi ve bu bilginin formatı bu metodla belirlenebilir.
-
GÖRÜNTÜ (IMAGE)
Bir resmi görüntüleyebilen grafik tipte bir kontrol nesnesidir. Bu açıdan resim kutusuna (picture box) benzer. Fakat, resim kutusuna oranla daha az sistem kaynağı kullanılır. Mouse ile clicklendiği zaman, komut butonuna benzer özellik gösterir. Örneğin bir firma, firmanın logosunu görüntü nesnesi içine yerleştirerek, resim üzerine mouse ile click işlemi gerçekleştirildiğinde firma hakkında bazı bilgiler listeleyen bir tanıtım yazılımı oluşturabilir.
Görüntü Nesnelerinin Kullanılması
Görüntü denetimi (ön takısı genellikle img olur),ilerleyen bir kısımda açıklanacak olan resim kutusu hafif bir eşdeğeridir. ancak , resim kutusu denetiminin aksine görüntü denetimi başka nesneler için bir konteyner görevi göremez.
Bazı başka özellikleri de o kadar kapsamlı olmasadabir form üzerinde sadece bir resim görüntülemek istiyorsanız iyi bir tercihtir. görüntü denetimleri resim denetimlerine oranla çok az miktarda hafıza tüketir. Visual Basic ile gelen görüntü denetimi artık bitmap(BMP),simge (ICO),metafile (WMF),jpeg(JPG),ve gif(GIF) dosyalarını görüntüleyebilir. buda World Wide Web grafiklerinin olduğu gibi başka populer grafik programlarının grafiklerinin görüntülenmesini kolaylaştırır.Görüntü Denetimi Özellikleri
görüntü denetimi çok sayıda özelliğe sahiptir,
Align
Appearance
Autosize
BorderStyle
Container
DataField
DataFormat
DataMember
DataSource DragIcon
DragMode
Enabled
Height
Index
Left
MouseIcon
MousePointer
Name
OleDragMode
OleDropMode
Parent
Picture
Stretch
Tag
Top
Visible
WhatsThisHelpID
WidthAlign : Image’ın form üzerindeki yerini belirler
Autosize : Image boyutlarının resim boyutlarına göre otomatik ayarlanması
Stretch : Resmin Image boyutlarına otomatik olarak ayarlanmasıDiğer çoğu grafik denetimindede olduğu gibi , grafiği picture özelliğinin değerini ayarlayarak eklersiniz . Herhalde buradaki en ilginç özellik strech’tir. Bu Boolen bir özelliktir , yani sadece True veya False değerlerini alır. strech özelliğinin değeri false yapıldığında (varsayılan değer), denetim için yerleştirilen resmin boyutlarını alır. Bu denetimin boyunu daha sonra değiştirirseniz, yüklenen resim yatay ve düşey boyut değişikliğinin oranlarına bağlı olarak ya kırpılır, ya etrafında boş bir alan kalır , yada bunların ikisi birden olur. ancak strech özelliğinin değeri true yaparsanız resmin boyutları denetimle birlikte değişir. bu şekilde resim yüklendikten sonra denetimin boyunu değiştirerek içindeki resmi daha büyük veya küçük , yada daha uzun veya basık hale getirebilirsiniz.bir resim denetiminin özelliği yoktur. buna en yakın özelliği Autosize’dir. bir resim kutusunun Autosize özelliğinin True ise denetim kendisini yüklenen resmin ebatlarına uyarlar. Ancak Strech özelliğin değeri True yapılmış ise görüntü denetiminin aksine, resim kutusunun boyu değiştirildiği zaman bile içindeki resim aynı kalır.
Görüntü Denetimi Olayları
Görüntü denetimi çok sayıda olay kullanmaz, olanlarında sadece birkaç tanesini belki kullanırsınız
Click
DblClick
DragDrop
DragOver MouseDown
MouseMove
MouseUp
OleDragDrop
OleDragOver
OleCompleteDrag
OleGiveFeedBack
OleSetData
OleStartDragGörüntü denetimleri bazen bir sürükleme-bırakma hedefi olarak kullanışlı olur. çünkü bunun içinde , denetimin üzerine bırakıldığında doğacak sonuç hakkında bir fikir veren bir resim bulundurabilirsiniz.
Görüntü Denetimi Yöntemleri
Drag
Move
OleDrag
Refresh
ShowWhatsThis
ZorderÇalışma Anında Resim Eklemek
Private Sub Command1_Click()
Image1.Picture = LoadPicture(”d:\depo\bjk.jpg”)
End SubÇalışma Anında Resim Silmek
Private Sub Command1_Click()
Image1.Picture = LoadPicture(”")
End SubResmi Fare ile Küçültüp Büyütmek
(General)(Declalaration)
Private genisle As BooleanPrivate Sub Form_Load()
Image1.Stretch = True
End SubPrivate Sub Image1_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
genisle = True
End SubPrivate Sub Image1_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If Not genisle Then Exit Sub
If (X >= 0) And (Y >= 0) Then
Image1.Move 0, 0, X, Y
End If
End SubPrivate Sub Image1_MouseUp(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
genisle = False
End Sub -
Şekil (Shape) Denetimi
Bu denetim, dikdörtgenler, kareler, ovaller, çemberler, çevrelenmiş dikdörtgenler ve çevrelenmiş kareler yaratmakta kullanılan grafiksel bir denetimdir.
Sözdizimi
Şekil
Şekil denetimi şu özellikleri destekler:
BackColor,
FillColor
Shape
BackStyle
FillStyle
Tag
BorderColor
ForeColor
Top
BorderStyle
Height
Visible
BorderWidth
Left
Width
Container
NameBackColor
Bu özellik nesnenin arka plan rengini seçer ve ayarlar.
Sözdizimi
object.BackColor [= color]
Parametreler
Object
Object bir forma sokmayı veya denetlemeyi ifade eder.
Color
Nesnenin arka plan rengi, RGB fonksiyonu ile veya sistemin sabit renkleri ile belirtilir.BackStyle
Bu özellik, nasıl bir etiket denetimi değerinin olduğunu veya biçimlendirme denetiminin saydam olup olmadığını seçer ve ayarlar.
Sözdizimi
control.BackStyle [= number]
BorderColor
Bu özellik nesnenin kenar rengini seçer ve ayarlar.
Sözdizimi
object.BorderColor [= color]
BorderStyle
Bu özellik, kenar stilinin biçim ve denetimini seçer ve ayarlar.
Sözdizimi
object.BorderStyle [= value]
Parametreler
Object
Object ifadesi biçim denetimi için değer biçer.
Value
Value veya Constant, ayarlar gözüyle bakarak kenar stilini belirler. Takip eden tablolar nesnenin biçimi için kenar stili özellikleri ayarlarını gösterir.
MetinAyarlar
Tanım
vbBSNone
0
Hiçbiri (kenar stili veya kenarla ilişkili öge yok)
vbFixedSingle
1
Sabit tek
vbSizable
2
Ölçülendirilebilir (sadece biçim)
vbFixedDialog
3
Sabit diyalog (sadece biçim)
vbFixedToolWindow
4
Sabit pencere aracı
vbSizableToolWindow
5
Ölçülendirilebilir pencere aracı
Takip eden tablolar kenar stili özellik ayarlarından etiket, çerçeveleme, resim kutucuğu ve yazım kutucuğu denetimlerini gösterir.
AyarlarTanım
0
Hiçbiri (etiket denetimleri için standart)
1
Fixed single (yazım kutucuğu için standart)
Takip eden tablolar kenar stili özelliklerinin şekil ve biçimlendirme denetimi ayarlarını gösterir.
MetinAyarlar
Tanım
vbTransparent
0
Şeffaf
vbBSSolid
1 (standart)
Katı. Kenarın biçimlendirme ucunu ortalar.
vbBSDash
2
Kısa çizgiBorderWidth
Bu özellik kenar genişliği denetimini seçer ve ayarlar.
Söz Dizimi
object.BorderWidth [= number]
Container
Bu özellik nesne biçimi üzerinde kalıp denetimini seçer ve ayarlar.
Söz Dizimi
object.Container [= container]
DrawMode
Bu özellik herhangi bir grafik metodundan çıktı görünümü veya biçimlendirme ve şekil denetimi görünümü için bir değer seçer ve ayarlar.
Söz Dizimi
object.DrawMode [= number]
Parametreler
Object
Object ifadesi biçimlendirme ve şekil denetimi için değer biçer.
Number
Tam sayı görünümü açıkça belirler. Takip eden tablolar ayar numaralarını açıklar.
MetinAyarlar
Tanım
vbBlackness
1
Siyah.
vbNotMergePen
2
15 nolu ayarın tersi (vbMerge Pen).
vbMaskNotPen
3
Arka plan renkleri ve kalemin tersi olan renklerin renk kombinasyonu.
vbNotCopyPen
4
13. ayarın tersi (vbCopy Pen).
vbMaskPenNot
5
Kalemdeki ve görünüm tersi olan renklerin her ikisinin de kombinasyonları.
vbInvert
6
Görünüm renginin tersi.
vbXorPen
7
Kalemdeki renk kombinasyonları ve görünümdeki renkler fakat her ikisi de değil.
vbNotMaskPen
8
9. ayarın tersi (vbMask Pen).
vbMaskPen
9
Görünümdeki ve kalemdeki sıradan renklerin her ikisinin kombinasyonları.
vbNotXorPen
10
7. ayarın tersi(vbXorPen).
vbNop
11
müdehale yok. Bu çizim ayarlarını kapatır ve müdehale şansını ortadan kaldırır.
vbMergeNotPen
12
Görünüm renk kombinasyonları ve kalemin tersi olan renkler.
vbCopyPen
13 (standart)
Renk ön renk özellikleri ile özelleştirilir.
vbMergePenNot
14
Kalem rengi kombinasyonlarını ve görünümün tersi olan renkleri gösterir.
vbMergePen
15
Kalem rengi kombinasyonunu ve renklerini gösterir.
vbWhiteness
16
Beyaz.
FillStyle
Bu özellik, çizim çemberi ve çizim şekilleri grafik metotları ile çemberler ve kutular yaratmada biçimlendirme denetimleri kaplamalarında kalıp seçme ayarlamada kullanılır.
Söz Dizimi
object.FillStyle [= number]
ForeColor
Bu özellik, bir nesne içindeki yazım ve grafik görüntüsünün ön plan renginin seçim ve ayarlanmasında kullanılır.
Söz Dizimi
object.ForeColor [= color]
Height
Bu özellik yükseklik denetimini seçer ve ayarlar.
Söz Dizimi
object.Height [= number]
Left Özelliği
Bu özellik nesnenin sol iç kenarı ile kalıbın sol iç kenarı arasındaki mesafeyi seçer ve ayarlar.
Söz Dizimi
object.Left [= value]
Name
Bu özellik bir forma kodlama belirmek veya nesne fondunun ismini belirleme,ayarlama ve denetimde kullanılır.
Söz Dizimi
object.NameParent
Bu özellik bir denetim içeren form, nesne ve koleksiyonları seçer.
Söz Dizimi
object.Parent
Shape
Bu özellik bir şekil kontrolüne görünüm belirlemek için bir değer seçer ve ayarlar.
Söz Dizimi
object.Shape [= value]
Parametreler
Object
Object ifadesi bir biçim denetimine değer biçer.
Value
Tam sayı, denetim görünümünü açıkça belirler. Takip eden tablolar ayarların değerlerini gösterir.
MetinAyarlar
Tanım
vbShapeRectangle
0 (standart)
Dikdörtgen
vbShapeSquare
1
Kare
vbShapeOval
2
Oval
vbShapeCircle
3
Daire
vbShapeRoundedRectangle
4
Çevrelenmiş Dikdörtgen
vbShapeRoundedSquare
5
Çevrelenmiş Kare
Tag
Bu özellik ihtiyaç duyulan herhangi bir extra bilgi için başvuruları depolamayı seçmeyi ve ayarlamayı ifade eder.
Söz Dizimi
object.Tag [= expression]
Top
Bu özellik herhangi bir nesnenin iç üst kenarı ile kalıp üst kenarı arasındaki mesafeyi seçer ve ayarlar.
Söz Dizimi
object.Top [= value]
Visible
Bu özellik herhangi bir değerin görülebilir mi yoksa görülemez mi olduğunu seçer ve ayarlar.
Söz Dizimi
object.Visible [= Boolean]
Width
Bu özellik herhangi bir denetim veya formun genişliğini kalıp denetiminin birim ölçüsü olarak kullanır, seçer ve ayarlar.
Söz Dizimi
object.Width [= number]
Line(Şekil) Denetimi
X1, Y1, X2, Y2 ÖzellikleriX1 ve Y1 başlangıç noktaları ile ve X2 ve Y2 bitiş noktaları ile herhangi bir şekil denetimi seçer ve ayarlar. Yatay koordinatlar X1 ve Y2, dikey koordinatlar Y1 ve Y2’dir.
Söz Dizimi
object.X1 [= value]
object.Y1 [= value]
object.X2 [= value]
object.Y2 [= value]
X1, Y1, X2 ve Y2 söz dizimi özellikleri bu parçalardan oluşur. -
TIMER NESNESİ
Timer(Zamanlayıcı)
Zaman saatidir.Zamanın takip edilmesini sağlar,zamanlayıcı denetimidir ve çalışma kipinde görülmezler.Programda zamana bağlı işlemler yapılabilmesini sağlayan bileşendir.Timer nesnesi,kullanıcının göremeyeceği fakat belirtilen zaman aralıklarında istenilen görevleri yerine getiren bir nesnedir.
Bu nesneyi örneğin,saat yapımında kullanabiliriz.Nesneden saat yapmasını bekleyemeyiz.Sadece 1 saniye zaman birimini bu nesne sayesinde kullanabiliriz.
Eğer işlerin zamana göre yapılmasını istiyorsak timer nesnesini kullanırız.Özellikler kısmındaki invertal ile kaç milisaniyede bir işlevin tekrar edileceğini ayarlayabiliriz.Uygulamanın çalışması esnasında,zamana bağlı olarak belirli aralıklarla,belirli eylemlerin gerçekleşmesini denetlemek için kullanılır.Timer1.Interval = 1000 ‘ 1 saniyede 1 işlem yapılır
Timer1.Interval = 500 ‘ 0,5 saniyede bir işlem yapılırTİMER NESNESİ ÖZELLİKLERİ
Timer nesnesinin önemli iki özelliği vardır.
Timer1.invertal= Zamanlamanın ne kadar olacağının ayarıdır.Yani,Timer denetiminin ne kadar aralıkla Timer olayını üreteceğini belirleriz.Milisaniye cinsinden bir değer yazarız.1 saniye için 1000 yazmalıyız.
Timer1.enabled= Timer denetiminin aktif veya pasif olacağını belirler.Yani,Bu değeri enable yaparsak etkin,disable yaparsak etkin dışı olur.
Zamanlayıcı denetiminin, aşağıda da görüldüğü gibi fazla özelliği yoktur
Enabled
Index
Interval
Left
Name
Parent
Tag
TopName özelliği hariç (bir tmr ön takısı tavsiye edilir), zamanlayıcı denetiminin önemli olan sadece iki özelliği vardır.Enabled ve Interval özellikleri.Gerçektende zamanlayıcının herhangi bir şey yapmasını sağlamak için (Enabled özelliğinin değerinin,başlangıç değeri olan True olduğunu var sayarsak) bu özelliklerin değerlerini ayarlamamız gerekir.Left ve Top özellikleri aslında gereksizdir.Bir zamanlayıcıyı bir form üzerinde nereye yerleştirdiğimiz pek fark etmez.
Interval özelliği mili saniye cinsinden ölçülür. Bu da saniyeleri saymak istediğimiz taktirde bu saniye sayısına 1000 ile çarpmamız gerektiği anlamına gelir.Bu süre geçtikten sonra (zamanlayıcı devrede ise),zamanlayıcı kendi TIMER olayını üretir.Bu işi de kısa aralıklarla sistem saatini kontrol ederek yapar.
TİMER OLAYLARI
Zamanlayıcı denetiminin sadece bir tek,uygun bir biçimde TIMER()adlı bir olayı vardır.Daha öncede belirtildiği gibi de bu olay belirli bir sürenin her geçişinde gerçekleşir.Bu süre Interval özelliği tarafından belirlenir.TIMER() olayının gerçekleşmesini durdurmak için çalışma kipinde zamanlayıcının Enabled özelliğinin değerine False yapabiliriz.
Timer olayını kullanarak istediğimiz aralıklarla olaylar gerçekleştirebiliriz.
Örnek: Bir saat yapalım.
Private Sub Timer1_Timer ( )
Text1.Text=Time
End SubÖrnek: Zamanı saniye cinsinden veren program.
Dim sn
Sn=Timer
Msgbox snÖRNEK: Timer kontrolü kullanarak form başlığında saati gösteren bir program yazalım.Bunun için timer nesnesinin invertal özelliğini 1000 (1saniye) yapalım.
Private Sub Timer1_Timer ( )
Form1.Caption= “Saat :” + Timer
End SubÖRNEK: Bir Text yada Label üzerinden kayan bir yazı programı yazalım.Program için 1 adet Timer ve 1 adet Text veya Label gerekir.
Option Explicit
Dim yazi As stringPrivate Sub Form_Load( )
Yazi=string(5, “ ” ) + “EMİNE”
End SubPrivate Sub Timer1_Timer( )
Yazi=mid (yazi,2)left (yazi,1)
Text1.Text=yazi
End SubÖRNEK: Timer kontrolü ile ayarlanan saat için alarm çalan bir program kodu yazalım.Bu kod için bir Timer ve adı ZAMAN olan bir text kutusu gerekmektedir.
Option Explicit
Dim saat,dakika,saniye As byte
Private Sub Form_Load( )
Saat=Inputbox ( “Alarm saati giriniz: ”)
Dakika=Inputbox ( “Alarm dakikasını giriniz: ”)
Saniye=Inputbox ( “Alarm saniyesini giriniz: ”)
Zaman.Text=saat + “ : ” + dakika + ” : ” + saniye
End SubPrivate Sub Timer1_Timer ( )
İf (hour (now)=val (trim(saat))) and (minute (now)=val (trim (dakika))) and (second (now) val (trim (saniye))) then beep: beep: beep
Else
End if
End SubZAMANLAYICI YÖNTEMLERİ
Zamanlayıcı yöntemi hiçbir yöntemi desteklemez.
ZAMANLAYICILARIN KULLANILMASI
Zamanlayıcı denetimi (yanda görülüyor),çalışma kipinde gizli olan az sayıdaki denetimden biridir.Bu da onun için bir form üzerinde yer bulmamıza gerek kalmadığı anlamına gelir;herhangi bir yere hatta mevcut denetimlerin üzerine bile yerleştirilebilir.Zamanlayıcı temel olarak sadece bir tek iş yapar.Sistem saatini kontrol eder ve buna göre bir tutum belirler.
BİR ZAMANLAYICI DENETİMİNİ DENEYELİM
Zamanlayıcının nasıl çalıştığı hakkında bir fikir edinmek için bir başlık çubuğu saati yapalım.
1.File→New Project komutunu vererek yeni bir proje açalım.Proje tipi Standard EXE. Olarak seçelim.
2.Form 1.’in Name özelliğinin değerini Frmmain,Caption özelliğinin değerini Application time yapalım.
3.FrmMain’e bir zamanlayıcı ekleyelim.Name özelliğinin değerini Tmrtimer yapalım.
4.Bu zamanlayıcının Interval özelliğinin değerini 500 yapalım.Bu saatin kendisi her yarım saniyede bir kontrol etmesini istiyoruz.Bunu zamanlayıcı denetimi bu türdeki diğer denetimler kadar hassas olmadığı için yaparız,ancak bu örnek için işe yarar.
5.Aşağıdaki kodu Frm Main’in (general)(Declarations)yordamına ekleyelim:
Option Explicit
Private OldCaption As String6.Aşağıdaki kodu form_Load() olayına ekleyelim
Private sub Form_Load()
Oldcaption=Me.Caption
End Sub.7.Şimdide aşağıdaki kodu zamanlayıcının Timer ()olayına ekleyelim.
Private Sub TmrTimer_Timer()
Dim msg As String
Msg=OldCaption &”:”& Time$
Caption=Msg
End Sub.8.Uygulamayı kaydederek Run→Start komutunu vermek suretiyle çalıştıralım.
Bu etiketin biraz titrediğini fark edebiliriz.Bu durumu Timer() olayındaki kodu, Caption güncelleme sayısını en aza indirgeyecek biçimde değiştirerek azaltabiliriz.
Private Sub TmrTimer_Timer()
Dim msg as string
Msg=OldCaption & “:” &Time $
If msg <>Caption Then
Caption=msg
End İf
End Subİf …Then ifadesi Time $ tarafından döndürülen saatin değişip değişmediğini kontrol eder.Msg karakter katarı Caption değerinden farklı olursa,bu zaman değişikliğini yansıtmak için Caption özelliğinin değerini değiştiririz,aksi taktirde Caption üzerinde bir güncellemeye neden olacak herhangi bir şey yapamayız.Titreme de geçer.
Kategoriler
Son Yazılar
- 2008′in en iyi 10 elektronik cihazı
- Cepten kötü sürpriz gelebilir
- SSD’de yarım terabayt
- Internet Explorer açığı yamandı
- Çinlilerden kamerası ayrılabilen cep telefonu
- “Adtech ile Reklam 2.0 Dönemi Başlıyor ve Trkycmhrytllbtpydrklcktr r10.net Seo Yarışması” son anlar
- Microsoft’tan ‘kullandığın kadar öde’ modeli
- Ericsson ve Intel bilgisayarınızı koruyor
- Ericsson ve Intel’den dizüstü koruması
- 2008 yılı 1 saniye uzadı!
- İnternet kesilecek mi ?
- LG’den içerde dışarıda görünebilirlik
- Windows XP yine uzatıldı
- Google cadde görüntüleme sistemi özel hayata tehdit mi?
- Windows Vista SP2





