CorelDraw VBA - Formu ve Kod Bilgimizi Geliştirme
Önceki dersimizde GMS içine form eklemeyi, form üzerine yazı alanı, buton eklemeyi artı olarak butondan bir komutu tetiklemeyi öğrenmiştik. Şimdiki dersimizde formumuzu biraz daha geliştirip, form üzerine comboboxlar ekleyip, üzerlerine değer atamayı (font listesi, font boyutu listesi) bu değerleri de yaptıracağımız komuta aktarmayı öğreneceğiz.Baştan belirtmeliyim ki bu ders, önceki ilk 3 VBA konulu dersin okunup, çalışılması sonrasında görülmelidir. İleri düzey VBA kullanıcıları için pek bir sorun olmayacak gibi görünse bile ben her koşulda bu arkadaşların da önceki derslere bakmalarını öneriyorum.
Evet dersimize başlayalım. Önceki derste vermiş olduğum (ders başlığı: CorelDraw VBA'da Form dosya: ilk.gms ) ilk.gms modülümüz içinde bulunan formu aktif hale getiriyoruz ve üzerine 2 adet combobox yerleştiriyoruz;
hemen ardından 2 adet de text nesnesini yerleştiriyoruz.;
Kod penceresine gidip, formumuz yüklenirken gerçekleşmesi gereken olayların tetiklenmesi için biraz kod yazmamız gerekiyor. (form / initialize)
not: kod penceresine çabuk geçmek için "yazı yaz" butonunun üzerine 2 defa seri olarak tıklayabilirsiniz.
evet bu bölümü dolduruyoruz, videoyu kesinlikle seyretmenizi öneriyorum buraya sadece kodları ve önemli yerlerin açıklamalarını yazacağım;
Private Sub UserForm_Initialize() Dim nCount, nNumOfFonts As Integer Dim nDefaultFont As Integer Dim strDefaultFont As String Dim v As Variant With ComboBox2 ComboBox2.AddItem 16 'font boyutlarını sıralatalım ComboBox2.AddItem 32 ComboBox2.AddItem 48 ComboBox2.AddItem 72 ComboBox2.AddItem 100 ComboBox2.AddItem 200 ComboBox2.ListIndex = 0 'ilk açılışta baştaki değeri göstersin (fontboyutu=16) End With 'burada font koleksiyonu üzerinde bir döngü oluşturuyoruz. nNumOfFonts = FontList.Count strDefaultFont = "Times New Roman" 'ilk açılışta varsayılan fontu da belirleyelim 'Tüm font listemizi (windows font klasörüne yüklenmiş) alalım 'Tüm fontları açılır kutumuza yükleyelim nCount = 0 For Each v In FontList ComboBox1.AddItem v 'Ayarlanacak varsayılan bir fontu bulalım If v = strDefaultFont Then 'Burda o fontu ayarlamış oluyoruz nDefaultFont = nCount End If nCount = nCount + 1 Next v ComboBox1.ListIndex = nDefaultFont End Sub
Baştaki form tetiklenmesi kodlarını yazdıktan sonra şimdi de comboboxların içerik değerleri değiştiği zaman bu değişen değerlerin textbox'lara aktarılması için gerekli olan kodları yazalım. (normalde string değerleri combobox üzerinden alabilsek de ben burada özellikle verileri textboxlara aktarttım, fazla bilgiden zarar gelmez değil mi? )
Formumuz üzerindeki ilk combobox'a çift tıklayıp kod penceresinde combobox tıklandığı zaman oluşacak olayın (textbox'a veriyi aktarma) kodlarını da yazalım.
Private Sub ComboBox1_Change() TextBox2.Text = "" TextBox2.Text = ComboBox1.Text 'Font tipi değiştiğinde yazı alanına aktarılsın End Sub Private Sub ComboBox2_Change() TextBox3.Text = "" TextBox3.Text = ComboBox2.Text 'Font boyutu değiştiğinde yazı alanına aktarılsın End Sub
Diğer combobox'a da aynı yöntemle görmüş olduğunuz kodları (üstte) ekliyoruz.
Evet form hazır ama aşağıda (buton'a basıp yaz komutunu verdiğimizde değerleri bu combobox karşısındaki değerlerden okuyacak) sadece 2 küçük yerin değişmesi gerekiyor. (font adı ve boyu / geçen ders konusunda kod satırında: font adı=ArialTur ve boyutu da=35 idi.
Üstte gördüğünüz üzere ArialTur yazan yeri TextBox2, 35 yazan yeri de TextBox3 ile değiştirdim. Burada bir string aktarımı yapmış olduk. Diğer bir deyim ile Textboxlara girilen değerler artık işlem yapılırken bir anlam taşıyorlar.
Bakalım formumuz istediğimiz gibi çalışıyor mu, önce Font değişimine bakalım;
Sonra font boyutunun aktarımı oluyor mu ona da bakalım;
Gördüğünüz üzere comboboxlarda bir sorun yok, fontu ve boyutunu seçelim, yukarıya da bir yazı yazalım.
İşte istenen sonuç; yazı karakteri QuickSilver ve boyutu da 100... Görüntü karşınızda.
Tekrarlıyorum, videoyu dersi okuduktan sonra bir kez daha izlerseniz bayağı bir yararı dokunacaktır.
Başarılar, iyi çalışmalar...