![]() |
![]()
|
|
||||||
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
|
CSI USLANMAM
![]() ![]() |
Resim kutusunun diğer kullanım yerleri
Resim kutusu sahip olduğu birkaç metottan dolayı farklı amaçlar için kullanılabilir. Resim kutusunu boyama yapabileceğimiz , resim çizebileceğimiz yada çıktı alabileceğimiz bir tuval olarak düşünebiliriz. Tek bir kontrol yazıları ve grafikleri görüntülemek için kullanılabilir. Hatta basit animasyonlar bile görüntülenebilir. Print (çıktı) metodu yazıların çıktısını resim kutusunda sanki bir printer (yazıcı) imiş gibi göstermeye olanak sağlar. Print metodu sayesinde yazı çıkışındaki karakterleri kontrol etmek için birkaç font kullanılabilirdir; cls metoduda çıkışı silmek için kullanılabilir. Circle , Line , Point and Pset metodları resim kutusu üzerinde grafikler çizmek için kullanılabilir. Drawwidth , Fillcolor ve Fillstyle gibi özelliklerde grafiklerin dış görünümünü istediğimiz şekilde ayarlamamıza olanak sağlar. Animasyonda paintpicture metodunun kullanımı ve resimlerin resim kutusu içerisinde hareket etmesiyle ve hızlı bir şekilde farklı birkaç resim arasında geçiş olmasıyla oluşturulabilir. Daha Fazla Bilgi için resim kutusunun üzerindeki ilave kontroller ve bilgiler için "Using Visual Basic's Standard Controls." e göz atabilirsiniz. Visual Basic Genel kavramları Resim Kutusu Kontrolünü kullanmak Ayrıca bakınız Resim kutusu kontrolü grafikleri görüntülemek , diğer kontroller için bir kap olarak kullanılmak , grafik metotlarında çıkışı görüntülemek ya da print metodunda yazıyı görüntülemek için kullanılır. Resim 7.41 Resim Kutusu Kontrolü Picture box kontrolü image kontrolüyle aynıdır. Her ikisi de uygulamanızdaki grafikleri görüntülemek için kullanılabilir. Her ikisi de aynı formatları destekler. Bununla beraber Picture box kontrolü image kontrolünde olmayan bazı fonksiyonlar içerir. Örneğin Picture box kontrolü diğer kontroller için kap olarak kullanılabilir ve grafik metotlarını destekler image kontrolünden fazla olarak. Daha Fazla Bilgi için "Working with the Picture Box Control" "Formlar, Controller, ve Menuler" e bakınız Desteklenen grafik formatları Picture box Bitmap,cursor,icon,:-):-):-):-)file,enchanced :-):-):-):-)file , JPEG yada GIF dosyalarını görüntüleyebilir. Daha fazla bilgi için Bu grafik formatlarının daha ayrıntılı tanımlamaları için daha önceki konuda geçen “Resim kontrolünün kullanımı”na bakınız. Resim kutusu kontrolüne bir grafik yüklemek Resimler Picture Box(Resim Kutusu) nun içine tasarım anında Picture özelliği, nin Kontrol özellik penceresinden seçilmesiyle ya da çalışma anında Picture özelliğinin ve resim yükle fonksiyonun kullanılmasıyla yüklenebilir. Set Picture1.Picture = _ LoadPicture("c:\Windows\Winlogo.cur", vbLPLarge, vbLPColor) Bir dizi görüntü aygıtlarını desdeklemek için farklı renk derinklerinde farklı ebatlarda farklı resimler içeren ikon(.ico) vecursor (.cur)dosyalarını görüntülemek isteyebilirsiniz. LoadPicture fonksiyonunun ayarları icon ve cursor dosyalarından istenilen ebatta ve renk derinliğinde resimler seçmenize olanak sağlar .İstenildiği şekilde bir uyuşma sağlanmadığı taktirde LoadPicture fonksiyonu en yakın uyuşma olan dosyayı yükler Picture box kontrolünden grafiği temizlemek için Load Picture fonksiyonunu bir dosya adı kullanmdan kullanınız. Örneğin : Set Picture1.Picture = LoadPicture Bu Picture özelliğine tasarım anında bir resim yüklenmişse bilede bu resmi temizler. Clipboardın kullanımı Ayrıca Picture box a tasarım anında başka uygulamalardan kestiğimiz resimleri yapıştırarak da grafik ekleyebiliriz. Örneğin paint te yapılmış bir Bitmap resmi ekemek isteyebilirsiniz. İlk önce resmi clipboarda kopyalayın ,Picture box kontrolünü seçin klavyeden CTRL+V ya da edit menüsünden yapıştır komutunu kullanınız. Resmi boyutlandırma Varsayılan sayesinde grafikler orijinal boyutlarında Picture boxa yüklenir yani eğer grafik kontrolden daha büyükse resim kesilecektir-picture box kontrolü kaydırma çubuklarını desteklemez.picture box kontrolünü otomatik olarak yeniden boyutlandırılması ve ve girilen grafiği göstermek için autosize özelliğini True olarak ayarlayın.Kontrol grafiği büyütecek yada küçültecektir ondan sonra. İmage kontrolünden farklı olarak ,Picture box kontrolü ,resmin kontrole uyması için resmi büyütemez. Daha fazla bilgi için "Scroll Bar kontrolleri Senaryosu: kayabilir grafik kontrolleri tasarlamak" Daha fazla bilgi için Bu grafik formatlarının daha ayrıntılı tanımlamaları için daha önceki konuda geçen “Resim kontrolünün kullanımı”na bakınız. Resim kutusu kontrolüne bir grafik yüklemek Resimler Picture Box(Resim Kutusu) nun içine tasarım anında Picture özelliği, nin Kontrol özellik penceresinden seçilmesiyle ya da çalışma anında Picture özelliğinin ve resim yükle fonksiyonun kullanılmasıyla yüklenebilir. Set Picture1.Picture = _ LoadPicture("c:\Windows\Winlogo. cur", vbLPLarge, vbLPColor) Bir dizi görüntü aygıtlarını desdeklemek için farklı renk derinklerinde farklı ebatlarda farklı resimler içeren ikon(.ico) vecursor (.cur)dosyalarını görüntülemek isteyebilirsiniz. LoadPicture fonksiyonunun ayarları icon ve cursor dosyalarından istenilen ebatta ve renk derinliğinde resimler seçmenize olanak sağlar .İstenildiği şekilde bir uyuşma sağlanmadığı taktirde LoadPicture fonksiyonu en yakın uyuşma olan dosyayı yükler Picture box kontrolünden grafiği temizlemek için Load Picture fonksiyonunu bir dosya adı kullanmdan kullanınız. Örneğin : Set Picture1.Picture = LoadPicture Bu Picture özelliğine tasarım anında bir resim yüklenmişse bilede bu resmi temizler. Clipboardın kullanımı Ayrıca Picture box a tasarım anında başka uygulamalardan kestiğimiz resimleri yapıştırarak da grafik ekleyebiliriz. Örneğin paint te yapılmış bir Bitmap resmi ekemek isteyebilirsiniz. İlk önce resmi clipboarda kopyalayın ,Picture box kontrolünü seçin klavyeden CTRL+V ya da edit menüsünden yapıştır komutunu kullanınız. Resmi boyutlandırma Varsayılan sayesinde grafikler orijinal boyutlarında Picture boxa yüklenir yani eğer grafik kontrolden daha büyükse resim kesilecektir-picture box kontrolü kaydırma çubuklarını desteklemez.picture box kontrolünü otomatik olarak yeniden boyutlandırılması ve ve girilen grafiği göstermek için autosize özelliğini True olarak ayarlayın.Kontrol grafiği büyütecek yada küçültecektir ondan sonra. İmage kontrolünden farklı olarak ,Picture box kontrolü ,resmin kontrole uyması için resmi büyütemez. Daha fazla bilgi için "Scroll Bar kontrolleri Senaryosu: kayabilir grafik kontrolleri tasarlamak" Picture box kontrolünün kap olarak kullanılması picture box kontrolünü diğer kontroller için bir kap olarak kullanabilirsiniz. Örneğin ,picture box bir MDI formun iç bölgesinde yerleştirildikten sonra genellikle manual olarak araç çubuğu yada konum çubuğu tasarlamak için kullanılır. Daha fazla bilgi için "araç çubuğu yaratmak" içinde "kullanıcı arayüzü yaratmak" konularına bakınız Grafik yöntemleri Resim kutuları formlar gibi daire gibi, satır ve nokta gibi grafik yöntemlerinin çıkışını almak için kullanılabilir. Örneğin Circle (daire) metodunu, kontrollerin autoredraw özelliğini true yaparak picture box içinde bir daire çizmek için kullanabilirsiniz. Picture1.AutoRedraw = True Picture1.Circle (1200, 1000), 750 Autoredraw ayarını true olarak ayarlamak başka bir obje tarafından gizlenen resimlerin tekrar boyutlandırıldığında ya da tekrar gösterildiğinde çizilmesine olanak sağlar Daha fazla bilgi için “grafiklerle ve tektlerle çalışma” belgelerine bakınız Yazdırma yöntemini kullanmak Picture box kontrolünü print metodunu kullanarak ve autoredraw özelliğini true olarak ayarlayarak yazıların çıktısını alabilirsiniz. Örneğin: Picture1.Print "A text string" Print metodu kullanılınca ayrıca font stilini, boyutunu düzenleyebilirsiniz yada currentx, currenty, height,width özelliklerini picture box ın içindeki yazıyı hizalamak için kullanabilirsiniz. Daha fazla bilgi için “yazı ve grafikle çalışmak” ve "yazma metodu" konularına bakınız Lightweight Grafik kontrolleri İmage, Shape ve line kontrolleri lightweight kontrolleri olarak hesaba katılır. Onlar sadece özelliklerin bir subseti olarak desteklenir. Metodlar ve olaylar picture box kontrolünün içinde bulunur. Image kontrollerinin picture boxlar yerine kullanımı Image kontrolü aynı picture box kontrolü gibidir fakat sadece resimleri görüntülemek için kullanılır.Diğer kontroller için kap olarak davranamaz ve picture box ın gelişmiş özelliklerini desteklemez. Resimler sanki picture box ın içindeymiş gibi image kontrolünün içine yüklenir: tasarım anında ,picture özelliğini bir resim yolu ya da oadını ayarlayabilirsiniz. Çalışma anında ise loadpicture fonksiyonunu kullanınız Image kontrolünün picture boxtan farklı olan yanı boyutlandırma hareketidir. Picture box kontrolü autosize özelliğine sahip olduğu müddetçe germe özelliğide vardır.Autosize özelliğini true ya ayarlamak picture box ın resim boyutlarını tekrar boyutlandırmasına sebep olur; varsayılan olan false ayarlayınca ise resmin kırpılmasına neden olur. False olarak kurulması halinde ,image kontrolünün stretch(germe ) özelliği resmin boyutlarını tekrar boyutlandırır. Germe özelliği true ya ayarlanırsa image kontrolünün boyutuna ayarlanmasına neden olur resmin boyutlarının. Ve bu da resmin bazı kısımlarının gösterilmemesine neden olabilir. Daha fazla bilgi için image kontrolü için ek bilgileri "Using Visual Basic's Standard Controls." Da bulabilirsiniz. Kendi butonlarınızı oluşturmak için bir image kontrolünün kullanımı İmage kontrolü ayrıca tıklama olayını fark edebilir, böylece her nerde bir command butonukullanmak isterseniz bu kontrolü kullanabilirsiniz. Bu bir başlık yerine bir resimle buton yaratmanın en uygun yoludur. Birkaç resmi ekranın yüksekliğinin tersine yatay olarak gruplamak -genellikle bir picture box ın içinde – uygulamalarınızda bir araç çubuğu yaratmanıza olanak sağlar. Örnek olarak, test butonları örneği kullanıcıların bir image kontrolünü commanda kontrolünü seçiyormuş gibi seçmelerini gösterir. Form ilk görüntülendiğinde vb kütüphanesinde bulunan üç trafik ışığından birisi görüntülenir. Image kontrolü her tıklandığında farklı bir ikon görüntülenir. Eğer tasarım anında forma göz atarsanız gerçektende üstünde istif edilmiş 3 tane ikon göreceksiniz. image kontrolünün başındaki resmin görünürlük özelliğini false olarak değiştirerek sonraki resmin başta gösterilmesini sağlayabilirsiniz Resim 3.17 trafic ikonlarından birisi İmage kontrolünün etrafında bir sınır yaratmak için, BorderStyle özelliğini 1-Fixed Single olarak ayarlayınız. Not command butonlarından farklı olarak, image kontrolleri tıklandığında içeri doğru çekilmezler. Yani mousedown olayına değişik bir resim koymadığınız sürece tıklandığında basılmış hissi vermeyecektir. Shape ve line kontrollerini kullanmak Bir formun üzerinde grafiksel elemanlar çizmek için shape(şekil) ve line(çizgi) kontrolleri çok kullanışlıdırlar. bu kontroller olayları desteklemezler sırf dekoratif amaçlar içindirler. Shape kontrolünün görünüşünü birkaç özellikle temin edebilirsiniz. Shape özelliğini ayarlamakla, dörtgen, daire, oval, çember, köşeli dörtgen, ya da köşeli kare şekillerini elde edebilirsiniz. Sınır rengi ve doldurma rengi özellikleri rengi değiştrecek şekilde ayralanabilir. Borderstyle, borderwidth, fillstyle ve drawmode özellikleri şeklin nasıl çizileceğini kontrol eder. Line kontrolü shape kontrolüne benzer fakat sadece düz çizgiler çizmek için kullanılır. Grafik kontrollerini kullanmak Visual basic uygulamada grafik efektleri yaratmak için 3 kontrol sunar : • image control • line control • shape control Grafik Kontrolünün avantajları Image, line ve shape kontrolleri tasarım anında grafik oluşturmak için çok kullanışlıdırlar. Diğer bir avantajıda diğer VB kontrollerine göre daha az sistem kaynağı kullanmasıdır ki böylece uygulamanız daha performanslı olur. Grafik kontrollerinin diğer bir avantajı ise grafik metodlarından daha az bir kodla grafik oluşturabilirsiniz. Örneğin circle ve shape metodlarından her birisini formun üzerine bir daire koymak için kullanabilirsiniz. Circle Metodu çalışma anında kodla daire oluşturmayı gerektirir, basitçe formun üzerine shape kontrolü çizerek ve, Tasarım anında uygun özellikleri ayarlayarak. Grafik kontrollerinin sınırlamaları Grafik kontrolleri minimum isteklerde maksimum performans için tasarlanırken, bunu diğer özellikleri kısıtlayarak başarırlar. Grafik kontrolleri: • Diğer kontrollerin üzerinde beliremez • Çalışma anında odaklanma yapılamaz. • Diğer kontroller için kap olarak kullanılamaz • Hwnd özellğine sahip değildir. Daha fazla bilgi için "Using the Graphics Methods" ,l "Using the Image Control," "Using the Line Control," , "Using the Shape Control" , "Using Visual Basic's Standard Controls." , "Cutting Back on Graphics" , "Designing for Performance and Compatibility." e bakınız Grafik metodlarını kullanmak Grafik kontrolerine ek olarak, visual basic grafik oluşturmak için birkaç yöntem daha sağlar. Grafik metodları aşağıda listelenmiştir. Method Description Cls Bütün grfaikleri siler. PSet Pixelin rengini ayarlar Point Belirtilen noktanın rengini verir. Line Dörtgen , çizgi ve içi dolu kutu çizer. Circle Daire , açı ve elips çizer PaintPicture Seçime bağlı konumlardaki grafikleri boyar. Not print metodu ayrıca bir grafik metodu olarakta düşünülebilir çünkü tıpkı pset, line ve cirle metodları gibi Çıkışı objeye yazılır ve hafızadaki resme kaydedilir. Grafik metodunun avantajları Grafik metodları çalışmak için grafik komutlarının çok gerekli olduğu yerlerde çok iyi çalışırlar. Örneğin ızgara çizgileri oluşturmak bir yığın çizgi kontrolü gerektirir bunu birkaç satır grafik komutuyla oluşturabiliriz. Formun değişik boyutlarında line kontrolünün pozisyonunu izlemek line metoduyla tkrar çizmekten daha çok iş gerektirir. Bir formun üzerinde kısaca bir görsel efektin ortaya çıkmasını istediğimizde, bir diyalog görüntülenince çıkan renk çubuğu gibi, başka bir kontrol elemanı kullanmak yerine bu geçici efekt için bir çift kod yazabilirsiniz. Grafik metodları, grafik kontrollerinde etkin olmayan bazı görsel efektler sunar. Örneğin grafik metodlarını kullanarak sadece bölünemez pixelleri boyayabilir ya da yaylar oluşturabilirsiniz. Grafik metodlarıyla oluşturduğunuz grafikler formun üstünde kendi katmanı içinde ortaya çıkar. Bu katman formun üzerindeki bütün kontrollerin aşağısındadır bu yüzden her şeyin arkasında bir grafik çizmek istediğinizde büyük kolaylık sağlar. Daha fazla bilgi için "Layering Graphics with AutoRedraw and ClipControls" e bakınız Grafik metodunun sınırlamaları Grafik metodlarıyla grafikler oluşturmak kod sayfasında yer alır, yani grafik metodunun etkilerini görmek için Uygulamanızı çalıştırmalısınız. Grafik metodları bu yüzden bir arayüzün dizaynında basit elementlerin Oluşturulmasında grafik kontrolleri kadar iyi çalışmazlar Tasarım anında grafik kontrollerinin dış görünümünü değiştirmek kodları grafik metodları için test etmek ve modifiye etmekten daha kolaydır. Daha fazla bilgi için "The MouseDown Event," "The MouseMove Event" "Using Button to Enhance Graphical Mouse Applications" "Responding to Mouse and aaaboard Events." Konularına bakınız Resim objesini kullanmak Resim objesi bazı yönleriyle printer objesine benzer. Bunu göremezsiniz fakat yinede kullanışlıdır. Picture boxı resimleri görüntülediğin görünmez bir sahne olarak düşünebilirsiniz. Örneğin aşağıdaki kod bir Bitmap resim yükler ve picture box kontrolünün picture özelliğini ayarlamak için kullanılır: Private Sub Command1_Click() Dim objPic As Picture Set objPic = LoadPicture("Butterfly. gif") Set Picture1.Picture = objPic End Sub Picture objesi bitmaps, GIF, JPEG i, :-):-):-):-)files, icon, Dosyalarını destekler Resim objelerinin sıralarını kullanmak Çoklu picture kutuları ya da image kontrolleri içeren formlar kullanmadan bir grafik serisini hafızada tutmak için Picture objesinin sıra, dizin özelliğini kullanabilirsiniz. Bu animasyon sırası oluşturmak ya da hızlı resim değişiminin gerekli olduğu yerlerde kullanmak için uygundur. Modül seviyesinde deklare edilen dizi : Dim objPics(1) As Picture Aşağıdaki kodu Form_Load olayına ekleyiniz: ' Load bitmaps int the Picture object array. Set objPics(0) = LoadPicture("Butterfly1.gif") Set objPics(1) = LoadPicture("Butterfly2.gif") Sonrada time olayında resimleri değiştrebilirsiniz: Static intCount As Integer If intCount = 0 Then intCount = 1 Else intCount = 0 End If ' Use the PaintPicture method to display the bitmaps ' on the form. PaintPicture objPics(intCount), 0, 0 X ve y koordinatlarına artma ilmikleri ekleyerek kolayca formda karşıdan karşıya uçan kelebek resimleri Oluşturabilirsiniz Windows APIsi yerine Picture Objesini kullanımı Windows apilerinde bitmaplar, ikonlar, :-):-):-):-)filesler ile birçok şey yapılabilir fakat picture objesi bunların birçoğunu sizin için zaten yapar. Yani her nezaman mümkünse siz en iyisi picture nesnesini kullanın Windows API leri yerine. Ayrıca picture nesnesi Windows API lerin desteklemediği. jpg ve. gif leride kullanmanıza olanak sağlar. Picture handle ve picture box arasında direkt bir ilişki yoktur. Resim kutusunun hDC özelliği, picture box kontrolünün aygıt içeriği ne işletim sistemi tarafından sağlanan bir kimliktir. Picture nesnesinin handle özelliği aslında GDI nesnesinin picture özelliğinide kapsayan özelliğidir. Bir pencere üzerindeki resimleri boyamak için birbirinde tamamen farklı iki yol vardır. Bir nesnenin hDC si üzerinde bitblt ya da stretchblt yöntemlerini uygulayabilirsiniz. Eğer bir image kontrolünüz varsa sadece paintpicture yöntemini kullanabilirsiniz çünkü image kontrollerinin bir hDC si yoktur. Daha fazla bilgi için "Accessing DLLs and the Windows API" ya bakınız Yazı ve Grafikleri clipboard nesnesi ile transfer etmek Clipboard nesnesinin özelliği ya da olayı yoktur fakat sahip olduğu birkaç metod sayesinde çevre elemanlarından dataları alıp klipboarda transfer etmeye olanak sağlar. Clipboard nesneleri 3 bölüme ayrılır. Gettext ve Settext metodları yazı transfer etmek için kullanılır. Getdata ve setdata meodlarıda grafik transfer etmek için kullanılır. Getformat ve Clear metodları ise her ikisiylede çalışır. Clipboard hakkında daha fazla öğrenmek için aşağıdaki konulara bakınız: • Kesme, kopyalama ve yapıştırma: GetText and SetText metodları hakkındadır • Clipboard da çoklu tektlerle çalışma: tekst dışındaki formatlar hakkındadır • Clipboarddaki veri fromatlarını kontrol etmek: GetFormat metodu ile klipboarddaki datanın silinmesi hakkındadır Daha fazla bilgi için "OLE Drag and Drop" "Responding to Mouse and aaaboard Events." Konularına bakınız. Clipboard da birçok formatla çalışmak Aslında farklı formatlardaki her parçayı uzunluğu kadar clipboard üzerinde aynı zamnda yerleştirebilirsiniz dataların paçaları olarak. Bu kullanşlıdır çünkü hangi uygulamanın datayı yapıştırıyor olacağını bilemezsiniz, farklı formatlardaki veriyi desteklemesi diğer uygulamaların kullanabileceği bir formatta ortaya çıkarma şansını çoğaltır. Diğer clipboard metodları - GetData, SetData ve GetFormat — formatı belirlenmiş bir numaranın desteklendiği daha çok datalarla çalışmanıza olanak sağlar. Bu formatlar aşağıdaki tabloda ugun numaralarla tanımlanmıştır. Sabit Tanımlama vbCFLink Dinamik veri takas bağlantısı vbCFText Text. Examples earlier in this chapter all use this format. vbCFBitmap Bitmap. vbCF:-):-):-):-)file :-):-):-):-)file. vbCFDIB Device-independent bitmap. vbCFPalette Renk paleti Son 4 formatı picture boxtan kesilen ve yapıştırılan bilgiler için kullanabilirsiniz. Aşağıdaki kod genellikle standart kontrollerle çalışan kes, yapıştır ve kopyala komutlarının çalışmasına olanak sağlar. Private Sub mnuCopy_Click () Clipboard. Clear If TypeOf Screen. ActiveControl Is TextBox Then Clipboard. SetText Screen. ActiveControl. SelText ElseIf TypeOf Screen. ActiveControl Is ComboBox Then Clipboard. SetText Screen. ActiveControl. Text ElseIf TypeOf Screen. ActiveControl Is PictureBox _ Then Clipboard. SetData Screen. ActiveControl. Picture ElseIf TypeOf Screen. ActiveControl Is ListBox Then Clipboard. SetText Screen. ActiveControl. Text Else ' No action makes sense for the other controls. End If End Sub Private Sub mnuCut_Click () ' First do the same as a copy. mnuCopy_Click ' Now clear :-):-):-):-):-):-):-)s of active control. If TypeOf Screen. ActiveControl Is TextBox Then Screen. ActiveControl. SelText = "" ElseIf TypeOf Screen. ActiveControl Is ComboBox Then Screen. ActiveControl. Text = "" ElseIf TypeOf Screen. ActiveControl Is PictureBox _ Then Screen. ActiveControl. Picture = LoadPicture() ElseIf TypeOf Screen. ActiveControl Is ListBox Then Screen. ActiveControl. RemoveItem Screen. ActiveControl. ListIndex Else ' No action makes sense for the other controls. End If End Sub Private Sub mnuPaste_Click () If TypeOf Screen. ActiveControl Is TextBox Then Screen. ActiveControl. SelText = Clipboard. GetText() ElseIf TypeOf Screen. ActiveControl Is ComboBox Then Screen. ActiveControl. Text = Clipboard. GetText() ElseIf TypeOf Screen. ActiveControl Is PictureBox _ Then Screen. ActiveControl. Picture = _ Clipboard. GetData() ElseIf TypeOf Screen. ActiveControl Is ListBox Then Screen. ActiveControl. AddItem Clipboard. GetText() Else ' No action makes sense for the other controls. End If End Sub Boyama grafiklerin isteğe bağlı konumlarda kullanılması Formun üzerindeki ya da picture box un üzerindeki grafikleri isteğe bağlı olarak boyayabilirsiniz. Ve paintpicture metodu ilede printere a gönderbilirsiniz. Paintpicture metodu için söz dizimi şöyledir: [object.]PaintPicture pic, destX, destY[, destWidth[, destHeight[, srcX _ [, srcY[, srcWidth[, srcHeight[, Op]]]]]]] Hedef nesnesi, pic resminin sunulduğu form, picture box ya da yazıcı nesnesidir. Eğer obje atlanırsa, aktif form varsayar. Pic argumenti formun ya da kontrolün picture özelliğinden olan i resim nesnesi olmalıdır. Destx ve DestY argumentleri resmin sunulacağı objenin scalemodunda yatay ve diaaa olarak konumlandırılırlar. Destwidth ve destheight argumentleri resmin içinde sunulacağı hedef nesnesinin genişliğini ve yüksekliğini ayarlar. SrcX ve srcY argumentleri opsiyoneldir ve resmin üst sol köşesinin kesilen kısmının x ve y koordinatlarını tanımlar. Opsiyonel op argumenti raster operasyon tanımlar ( AND ve XOR gibi) ki bu sanki hedef nesnenin üzerinde ücra ediliyormuş gibi gözükür. Paint picture metodu bir dörtgen grafik bloğunu bir pozisyondan diğerine taşırken geniş bir tür bit operasyonunu icra etmek için Bitblt Windows API sinin yerine kullanılır. Örneğin, pintpicture metodunu kullanarak aynı bitmapin çoklu kopyalarını oluşturabilir ve onları form üzerinde döşeyebilirsiniz. Bu metodu kullanmak resim kontrollerini bir form üzerinde taşımaktan daha hızlıdır. Aşağıdaki kod bir rsim kontrolünün 100 tane kopyasını döşer ve her resmin destwidth için bir negatif kopyasını destekleyerek yatay olarak döndürür. For i = 0 To 10 For j = 0 To 10 Form1.PaintPicture picF. Picture, j * _ picF. Width, i * picF. Height, _ picF. Width, -picF. Height Next j, i Daha fazla bilgi için "PaintPicture Method" belgesine başvurunuz PaintPicture Metodu Forma, picturebaxa yada printer a bir grafik dosyasının içeriğini çizer (.bmp, .wmf, .emf, .cur, .ico, or. dib) Sözdizilimi object. PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode PaintPicture metodunun sözdizilimi şu parçalardan oluşur: Parça Tanımlama Nesne Seçime bağlıdır Resim Gereklidir. Grafik kaynağı nesnenin üzerine çizilecektir. Bir formun ya da picture box ın picture özelliği olmalıdır x1, y1 Gereklidir. Tek doğrulu değerler nesnenin üzerinde çizilecek resmin hedef kordinatları nı gösterir. Genişlik1 Seçime bağlıdır. Tek doğrulu değerler resmin hedef genişliğini gösterir Yükseklik1 Seçime bağlıdır. Tek doğrulu değerler resmin hedef yüksekliğini gösterir x2, y2 Seçime bağlıdır. Resmin içinde kesilecek olan yerlerin tek doğrulu koordinatlarını gösterir. Genişlik2 Seçime bağlıdır. Resmin içinde kesilen bölgenin kaynak genişliğini tek doğrulu değerlerle gösterir. Yükseklil2 Seçime bağlıdır. Resmin içinde kesilen bölgenin kaynak yüksekliğini tek doğrulu değerlerle gösterir. Opcode Seçime bağlıdır. Sadece bitmapler ile kullanılan uzun bir değer ya da koddur. Opkodların kullanımında bazı sınırlamalar vardır. Mesela eğer kaynak resim icon ya da :-):-):-):-)file ise vbSrcCopy den başka bir opcode kullanamazsınız. Görüşler Hedef yükseklik (yükseklik1) ve veyada hedef genişlik( genişlik1) için negatif değerler kullanarak bir bitmapi yatay ya da diaaa olarak döndürebilirsiniz. İstediğin kadar çok argümentin kuyruğunu yok sayabilirsiniz. Eğer bir argumenti ya da argumentleri yok sayarsanız en son belirttiğinizle arasına virgül koymamalısınız. Şunuda bilin ki picturebox kontrolünü kullanrak bir bmp yüklemekle, Windows API function BitBlt() u kullanıp Bir resmi eklemek arasında fark vardır. Bir resmi bitblt yaptığımızda picturebox kontrolü sanki loadpicture Metodunu kullanıyormuşuz gibi resmi yeniden boyutlandıramaz. Ayrıca resmin boyutlarına ayarlamak için scalewidth ve scaleheight metodlarıda çalışmaz. Eğer picturebox kontrolünün bitblt den sonra resmi yeniden boyutlandırmasını istiyorsanız bunu elle kod yazarak yapmalısınız. Aşağıda buna bir örnek vardır: Sub ResizePictureBoxToImage(pic as PictureBox, twipWd _ As Integer, twipHt as Integer) ' This code assumes that all units are in twips. If ' not, you must convert it to twips before calling ' this routine. This also assumes that the image ' was blt'ed to 0,0. Dim BorderHt as Integer, BorderWd as Integer BorderWd = Pic. Width - Pic. ScaleWidth BorderHt = Pic. Height - Pic. ScaleHeight pic. Move pic. Left, pic. Top, twipWd + BorderWd, _ twipHt + BorderHt End Sub
__________________
[Linkleri üyelerimiz görebilir.Üyeyseniz Mailinizi OnaylayınBurayı tıklayarak üyemiz olabilirsiniz.]
Benim yaradılışımda bir fevkalâdelik varsa, o da Türk olarak dünyaya gelmemdir. Mustafa Kemal Atatürk Tarihini bilmeyenin coğrafyasını başkaları ÇİZER... |
|
|
|
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | UslanmaM | Cevaplar | Son Mesaj |
| Visual Basic'te veritabanı uygulamaları | CENGiZ1 | visual basic | 3 | 12-12-2007 11:28 PM |
| sigara ile ilgili bir resim ben çok begendim | ReNo | Yaşam Haberleri | 0 | 03-18-2007 09:34 PM |
| Bir resim parçasından doku oluşturma | BoDyGuArD | Photoshop | 0 | 03-17-2007 11:15 AM |
| Ramzanla ilgili Resim | ABYSS | Dini Resimler | 0 | 03-16-2007 02:12 PM |