6) Menüler, Alt Prosedürler ve Alt Fonksiyonlar

Benzer belgeler
7) Çoklu Formlar. Şekil7.1. Araç kutusundaki Add Form butonuna basarak projeye yeni bir form ekleyiniz.

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Timer İle arka plan renk değişimi

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

BİLGİSAYAR PROGRAMLAMA

düğmesine ile bir sayfa yukarıya, düğmesi ile bir sayfa aşağı gidebilirsiniz.

5. KARAR VERME VE KOŞULLAR

MICROSOFT WORD Şekil 1

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

MİCROSOFT WORD. Araç çubukları: menü çubuğundan yapabileceğimiz işlemleri daha kısa zamanda araç çubukları ile yapabiliriz.

KOCAELİ TEKNİK LİSESİ ELEKTRİK ELEKTRONİK BÖLÜMÜ OTOMASYON ATÖLYESİ EKTS (Elektrik Kumanda Teknikleri Simülatörü ) DERS NOTU. Kaynak :

UYGULAMALAR. İkinci liste kutusu (List 2) Birinci liste Kutusu (List 1) Metin Kutusu

a. Giriş sekmesi: 1. Paragraf bölümünde Madde İşaretleri veya Numaralandırma seçeneklerinden istediğinize tıklayın.

Diziler İndisli Değişkenler

Bu düğme tıklandığında karşınıza yandaki gibi bir diyalog kutusu daha gelecektir.

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

BİLGİSAYAR DESTEKLİ TASARIM II

1. MİCROSOFT EXCEL 2010 A GİRİŞ

SAB 103 TEMEL BİLGİSAYAR KULLANIMI

Kelime işlemcilerin işlevlerini öğrenmek. Başlıca kelime işlemcileri tanımak. Microsoft Word 2010 programı hakkında temel bilgileri öğrenmek.

HSancak Nesne Tabanlı Programlama I Ders Notları

Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım.

BİLGİ GİRİŞ VE MESAJ PENCERELERİ. 1-Sadece kullanıcıya mesaj vermek için kullanılır.

Açılan programın pencere görünümü aşağıdaki gibidir. 2. Araç Çubuğundan kaydet düğmesi ile

BÖLÜM 23 TD F8 F4 SHIFT ESC ENTER M1.7 M1.6 M1.5 M1.4 M1.3 M1.2 M1.1 M1.0 F8 F7 F6 F5 F4 F3 F2 F1. Shift + F1

Bilgisayar. Bilgisayarın Özellikleri. Giriş İşleme Çıkış. Bilgisayar Nedir? Bilgisayarın Çalışma Prensibi

CAEeda TM GENEL TANITIM. EDA Tasarım Analiz Mühendislik

Yapı Kredi Bankası Emekli Sandığı eprovizyon Sistemi Kullanma Klavuzu

Android Ders Notları

Hizalama Word dokümanlarınızda oluşturduğunuz veya oluşturacağınız metinlerin hizalamasını yapabilirsiniz. Bu işlem için:

İçindekiler. Akıllı Tahta Uygulaması (ATU) Kullanma Kılavuzu. İçindekiler. Bölüm 1: Uygulama Hakkında Genel bilgi 2

MICROSOFT WORD Şekil 1

Kopyalama ve Taşıma konularıyla ilgili daha değişik uygulamalar yaparak bu konunun pekiştirilmesini sağlamanız yararınıza olacaktır.

Kullanım Kılavuzu

NB Macro Kullanımı Hakkında Genel Bilgiler

İleri Seviye Excel Çözümleri

ÖĞRENME FAALİYETİ 2 ÖĞRENME FAALİYETİ 2

Bloglar için en çok tercih edilen düzen 1.düzendir. Yani En son yazılarımın listesi. Sizlerde ödeviniz için bu düzeni seçebilirsiniz.

Microsoft FrontPage Web Sitesi Hazırlama. Ögr.Gör.N.Nilgün Çokça

Microsoft Word 2010 ara yüzündeki bölümler aşağıda gösterilmiştir.

WORD KULLANIMI

BİLGİSAYARDA OFİS PROGRAMLARI BİÇİMLENDİRME

MATLAB KURULUM KILAVUZU

12. Kat Oluşturma. Bu konuda mevcut bir katın bilgilerini kullanarak nasıl yeni katlar oluşturulabileceği incelenecektir.

ÖĞRENME FAALİYETİ 3 ÖĞRENME FAALİYETİ 3

UFRS ANALİZ DOKÜMANI

1 Organizasyon Tanımlama

EndNote Web Hızlı Başvuru kartı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

AOSB 2017 EĞİTİM PROGRAMI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

Matematiksel Operatörler

Admin. Admin.

HESAP MAKİNASI YAPIMI

BÖLÜM 11. Montaj Konfigürasyonları

MATRİKS TRADER DERİNLİKLİ EMİR EKRANI

CAEeda ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik

Teknik Resim Çıkartılması

Bu Hafta Öğreneceklerimiz

WEB E-POSTA AYARLARI. Outlook 2003 Ayarı ( Resimli Anlatım )

BÖLÜM 1 GİRİŞ 1.1 GİRİŞ

Resim 7.20: Yeni bir ileti oluşturma

ZİRVEDRİVEWEB YAZILIMI KULLANIM KILAVUZU


BÖLÜM KATMAN OLUŞTURMA (LAYER) Command line: Layer (veya transparent komutu için 'Layer kullanın)

İSTANBUL ECZACI ODASI BİLGİ İŞLEM BİRİMİ

Avrasya Üniversitesi. Tuncay AYDEMİR

IPACK LADDER. Arayüz Dökümantasyonu

Ecza Depolarına Ait E-Fatura Aktarım Modülü

Genel Programlama II

Ayarları Kaydet: Barkod tasarımı bölümünde yapmış olduğunuz ayarlamalarınızın kaydedilmesini sağlar.

OPTION BUTTON ve ELSEIF UYGULAMALARI

Ecat 8. Hakbim Bilgi İşlem A.Ş. Versiyon

İSTİHDAM VE SOSYAL UYUM İÇİN DİJİTAL BECERİLER

7 Temmuz Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar

MATRİKS VERİ TERMİNALİ GELİŞMİŞ ALARM

LAYOUT ORTAMINDA ÇALIŞMA:

IOF Eventor için Sporcu Kılavuzu


BİLGİSAYAR PROGRAMLAMA DERSİ

Kişisel Web Sayfası Tasarım Sistemi

ITEC186 Bilgi Teknolojilerine Giriş

BU CİHAZ BİLGİSAYAR BAĞLANTILI SİSTEM OLMAYIP, BAĞLI OLDUĞU BİLGİSAYAR İLE DEVAMLI İLETİŞİM YAPMAMAKTADIR. Mali Onaylı Yazarkasa

Donatlar-NotePad DONATILAR

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

HSancak Nesne Tabanlı Programlama I Ders Notları

BİLGİSAYAR UYGULAMALARI BÖLÜM 2

CAPTİVATE İLE ETKİLİ SUNUM HAZIRLAMA ADOBE CAPTİVATE CS5 PROGRAMI DEĞERLENDİRME SORULARI

Eğitmen. Öğretmen/Eğitmen.

Metin Tabanlı İçerik Oluşturma Araçları

Animasyon Teknikleri, Ses ve Video İşlemleri 1 / 18

BİLGİSAYAR PROGRAMLAMA DERSİ

Resim 1. Access açılış sayfası. Resim 2. Access veri tabanı düzenleme sayfası

Transkript:

6) Menüler, Alt Prosedürler ve Alt Fonksiyonlar Menüler Şüphesiz bilgisayarınızla çalışırken menüleri oldukça yoğun kullanmışsınızdır. Menüler (Menus) menü isimleriyle birlikte bir menü çubuğundan oluşur ve her biri menü komutlarının bir listesini göstermek amacıyla aşağıya doğru açılırlar. Menü komutlarını, komut tuşlarının yerine veya ona ek olarak bir prosedürü aktif etmek amacıyla kullanabilirsiniz. Menü komutları özellikleri ve olayları olan gerçekte kontrollerdir. Her menü komutu bir komut tuşuna benzer olarak Click olayına ve Name özelliğine sahiptir. Visual Basic menü editor ünü kullanarak formunuz için bir menü yaratmak oldukça kolaydır. Menünüz pencerenin üst kısmında bulunacak ve standart Windows menülerine benzeyecektir. Menü editörünü kullanmak için Tools menüsünden menü editor ünü seçiniz veya araçlar kutusundan kısayol tuşuna basınız. (Şekil6.1) Şekil 6.1. Menu Editor araçkutusu tuşu Menülerin Tanımlanması Menülerinizi oluşturmak için Menu Editor penceresini kullanacaksınız. Şekil 6.2 Menu Editor penceresini göstermektedir. Şekil 6.2. Menu Editor penceresiyle menülerin tanımlanması

Caption Caption özelliği ekranda göstermek istediğiniz kelimeleri tutar ( tıpkı bir etiket ve komut tuşunun Caption özelliğinde olduğu gibi). Bir menü oluşturmaya ilk menünüzdeki birimin Caption özelliğinin girilmesiyle başlayınız. Windows standartlarını yerine getirmek amacıyla ilk menünüzü klavye kısayol erişim tuşuyla beraber File olarak oluşturunuz. Daha önce öğrendiğiniz gibi klavye kısayol erişim tuşunu belirlemek amacıyla Ve (&) imini kullanınız. Name Diğer kontrollerle benzer olarak Name kutusu menü kontrolünün ismini göstermektedir. İsim bir gerekliliktir. İsim Verme Standartları Bir menü isminin üç karakterlik ön eki mnu dir. Böylece File menüsünün ismi mnufile olacaktır. Bir menüdeki komutlar için önek artı menünün ismi ve artı komutun ismini kullanınız (Açık ve uyumlu olursa uzun isimleri kısaltabilirsiniz). File menüsündeki Print komutunun ismi mnufileprint olacaktır. Exit komutu mnufileexit olacak ve kullanıcı seçtiğinde mnufileexit_click olayını tetikleyecektir. Altmenüler Menü isminden aşağıya doğru uzanan komut listesine menü denir. Menü üzerindeki bir komut öteki pop-up şeklinde ortaya çıkan öteki komutlar listesine sahipse bu yeni listeye altmenü (submenu) denir. Komutun sağ tarafındaki içi doldurulmuş üçgen menü komutunun bir altmenüye sahip olduğunu gösterir (Şekil 6.3). Şekil 6.3. Menü içerisindeki komutta içi doldurulmuş üçgen altmenünün varolduğunu gösterir. Menü isimlerini, menü komutlarını ve altmenü komutlarını paragraf başı düzeyiyle belirlersiniz. Menü isimleri liste kutusunun sol tarafında görünür; bir menü komutu yaratmak için sağ ok tuşunun kullanılmasıyla bir paragraf başı düzeyi yapılır. Altmenüler için sağ okla iki düzey paragraf başı yapılır. Paragraf başı liste kutusunda (.) olarak gösterilir.

Menü Liste Kutusu Menü liste kutusu yaratmış olduğunuz menülerin bir listesini ve onların paragraf başı düzeylerini gösterir. Liste kutusundaki bir birimi onun ismine tıklayarak ve ok tuşlarını kullanarak (Şekil 6.2 ye bakınız) onu aşağıya veya yukarıya, sağa veya sola hareket ettirebilirsiniz. &File.... E&xit &Help.... &About Ayraç Çizgisi Bir menü içerisinde çok sayıda komuta sahip olduğunuzda komutları amaçlarına göre gruplandırmanız daha iyi olacaktır. Menünün içerisine menü boyunca bir çizgi çeken ayraç çizgisi (separator bar) yaratabilirsiniz. Ayraç çizgisi tanımlamak için Caption kısmına bir tire (-) koyup ona bir isim veriniz. Her ne kadar ayraç çizgilerine kodlarda referans verilmeyip ve bir Click olayına sahip olmasalar da yine de tekil bir isim vermelisiniz. İlk ayraç çizginize mnusep1 ve ikincisine mnusep2 ismini veriniz ve bu şekilde devam etsin. Adım Adım Bir Menü Yaratılması Aşağıdaki menü parçalarına sahip bir menü yaratacağız: File Exit Help About Adım 1: Menü Editör penceresini Tools menüsünden Menu Editor ü seçerek veya Menü Editor araçkutusuna tıklayarak görüntüleyiniz. Adım 2: İlk menü için Name kısmına mnufile ve Caption kısmına &File giriniz (Şekil 6.4). Adım 3: Next tuşuna veya Enter tuşuna basınız; metin kutuları silinecek ve ilk menünün ismi menü liste kutusunda görünecektir (Şekil 6.5). Adım 4: Bir menü komutu için paragraf başı düzeyini ayarlayan sağ ok tuşuna basınız. Adım 5: Caption metin kutusuna odağı getirmek için tıklayınız ve daha sonra Exit menü komutu için Name ve Caption kısmını doldurunuz (Şekil 6.6). Next veya Enter tuşuna tıklayınız. Adım 6: Önceki paragraf başı düzeyine geri dönmek için sol ok tuşuna basınız. Adım 7: Help menüsünü ve About komutunu yaratmak için adımları tekrarlayınız (Şekil 6.7). Adım 8: Bitirdiğinizde OK tuşuna tıklayınız. Yeni menü formunuzda görünecektir.

Şekil 6.4. İlk menünün Caption ve Name özelliğinin oluşturulması Şekil 6.5. İlk menü ismini girdikten sonra metin kutuları silinecek ve ilk menünün Caption ı menü liste kutusunda görünecektir.

Şekil 6.6. Exit menü komutu için Name ve Caption girilmesi Şekil 6.7. Tamamlanmış menünün menü liste kutusunda görünmesi

Menü Komutlarının Kodlanması Formunuzun menü çubuğunu yarattıktan sonra artık o tasarım anında formun üzerinde görünecektir. Sadece herhangi bir menü komutunu seçin kontrolün Click olay prosedürü kod girişi yapabileceğiniz kod penceresinde görünecektir. Örneğin tasarım aşamasında formunuzun File menüsünü açınız ve Exit tuşunu seçiniz. mnufileexit_click prosedürünün görüntülenmesiyle birlikte kod penceresi açılacaktır. Adım 1: Menüyü aşağı doğru açarak Exit kelimesine tıklayınız böylece Exit için kod yazabilirsiniz. Açıklama girip daha sonra End ifadesini giriniz. Adım 2: Help menüsündeki About komut tuşunun Click olayının prosedüründe bir MsgBox ifadesi kullanınız. Mesaj stringi adınızı göstersin (Şekil 6.8). Şekil 6.8. About Box için bir mesajın gösterilmesi Bir Menünün Modifiye Edilmesi Formun tasarım aşamasında ve Menu Editor penceresinin gösterilmesiyle yaratmış olduğunuz bir menü çubuğunda rahatlıkla değişikler yapabilirsiniz. Tüm menünüz pencerede görünecektir. Liste kutusundaki herhangi bir menü parçasını tıklayarak seçebilirsiniz ve bilgisi eğer gerekliyse değişiklikler yapabileceğiniz pencerenin üzerinde görünecektir. Seçilen parçayı silmek için Delete tuşuna veya seçimden önce bir boş satır girmek istiyorsanız Insert tuşuna basabilirsiniz. Herhangi bir parçanın paragraf başı düzeyini değiştirmek niyetiyle ilk önce onu seçersiniz ve daha sonra sağ ve sol ok tuşlarına basarsınız. Liste içerisindeki bir parçayı yukarı ve aşağı taşımak için önce onu seçersiniz daha sonra yukarı ve aşağı ok tuşlarına tıklarsınız. Örnek Menüye Ekleme Yapılması Önceki örnek projemize yeni komutlar ve menüler eklemek amacıyla menu editor ünü ekrana getiriniz. Listeden &Help e tıklayınız ve &Help üzerine boş bir satır ekleyen Insert tuşuna tıklayınız (Şekil 6.9). Aşağıdaki parçaları menünüze ekleyiniz (Her bir parça için yeni bir satır girmelisiniz). Ayraç çizgisi de dahil olmak üzere her bir menü parçasında paragraf başı yapmak için sağ ok tuşuna tıkladığınızdan emin olunuz. &Edit.... &Color........ &Font

Şekil 6.9. &Help üzerine boş bir satır girmek için Insert tuşuna tıklayınız. Cheked ve Enabled Bir menü komutu yanında bir onay (checked) işareti veya pasif (disabled) olarak görünebilir (Şekil 6.10). Pasif parçaların seçilme şansı yokken veya açık gri olarak görünürken bir aktif (enabled) menü parçası koyu bir metin olarak görünür ve seçilme olanağı vardır. Bir menü komutunun yanına yerleştirilmiş onay işareti genellikle o anki seçimi gösterir. Şekil 6.10. Menü komutları pasif veya onaylı olabilir. Bir onay işareti genellikle o anki seçimi gösterir. Onay işareti genellikle açık veya kapalı olabilecek menü komutları üzerindeki seçimlerde kullanılır. Örneğin, Bold seçimi için, onay işareti Bold komutunun o anda seçili olduğunu gösterecektir. İkinci seferde Bold komutunun seçilmesi onay işaretini kaldıracak ve Bold seçimi kapalı hale gelecektir.

Onay İşaretinin Açık veya Kapalı Olarak Değiştirilmesi Açık veya kapalı olabilecek bir menü seçimi yarattıysanız o anki durumu göstermesi için bir onay işareti kullanmalısınız. Menu editor penceresinden (Şekil 6.2 ye bakınız) onay işaretinin başlangıç durumunu ayarlayabilirsiniz. Menü parçasının Checked özelliğini kullanarak kodlarla onun o anki durumu üzerinde oynama yapabilirsiniz. Private Sub mnuformatbold_click ( ) If mnuformatbold.checked = True Then mnuformatbold.checked = False txtdeğiştirilebilir.font.bold = False Else mnuformatbold.checked = True txtdeğiştirilebilir.font.bold = True End If Windows Menüleri İçin Standartlar Windows altında çalışan uygulama yazdığınızda programlarınız Windows standartlarını takip etmelidir. Eğer klavye kısa yolları içeriyorsa her zaman klavye erişim tuşları içermeli, yazma işlemi için Ctrl + P gibi standart tuşlar kullanılmalı. Ayrıca menü çubuğunun sol ucunda File menüsünün yerleştirilmesi ve menünün Exit komut tuşuyla sonlanması; bir Help menüsüne sahipseniz bunun menü çubuğunun sağ köşesinde olması gibi Windows standartlarını takip ediniz. Amacınız insanların kafalarını karıştırmak değilse menülerinizin planını diğer Windows programlarına benzeyecek şekilde yapınız. Genel Diyalog Kutuları Renkler ve fontlar, yazdırma, açma ve kaydetme gibi görevleri belirleyen önceden tanımlanmış standart diyalog kutularını projelerinizde kullanabilirsiniz. Genel diyalog (Common dialog) kontrolü Windows ortamının bir parçası olan diyalog kutularını projenizde kullanmanıza imkan veren özelleştirilmiş bir kontroldür. Genel diyalog kontrolünü kullanmak için ilk önce kontrolü formunuza yerleştirmeniz gerekir (Şekil 6.11). Kontrolün büyüklüğünü değiştiremezsiniz ve program çalıştığında görünür olmayacağından yerinin de önemi yoktur. Kod yazımında, standart diyalog kutularından birini göstermek istediğiniz zaman kontrolün metotlarına ve özelliklerine referans verirsiniz. Bir çeşit diyalog kutusundan daha fazlasını kullanmayı planlasanız bile formunuzun üzerinde bir tane genel diyalog kutusundan daha fazlasına gerek duymazsınız; kontrole referans verdiğiniz her zaman hangi diyalog kutusunu istediğinizi belirlersiniz.

Genel diyalog kontrolü Genel diyalog aracı Şekil 6.11. Form üzerine kontrolü yerleştirmek için araç kutusundaki genel diyalog aracını kullanınız. Genel diyalog kontrolü araç kutunuzda görünmeyebilir. Özelleştirilen bir kontrol olduğundan dolayı kullanmadan önce onu Visual Basic içersine eklemelisiniz. Özelleştirilen kontroller.ocx uzantısıyla dosyalarda saklanırlar. Project menüsünü açınız ve Compenents seçiniz; listenin içerisinde Microsoft Common Dialog Control 6.0 ı göreceksiniz (Şekil 6.12). Yanında bir onay iminin göründüğünden emin olunuz, bu araç araç kutunuzda görünmelidir. Şekil 6.12. Araç kutunuzda genel diyalog aracını görünür yapmak için Components diyalog kutusundan Common Dialog kontrolünü seçiniz.

Genel diyalog kontrolüne isim verdiğinizde dlg yi önek olarak kullanınız. Genel Diyalog Kutusunun Kullanılması Formunuza genel diyalog kutusu yerleştirdikten sonra çalışma anında diyalog kutularından herhangi birini gösterebilirsiniz. Kod yazımında hangi kutuyu istediğinizi Show metodu ile belirlersiniz. Show Metot Genel Form NesneAdı.ShowMetot Metot aşağıdakilerden biri olabilir: Diyalog Kutusu Open Save As Color Font Print Metot ShowOpen ShowSave ShowColor ShowFont ShowPrint Örneğin dlggenel isimli bir genel diyalog kutusuna sahip olduğunuzu varsayalım ve mnueditcolor isimli bir menü parçanız olsun. Menü komutunun Click olayında Color diyalog kutusunu gösterebilirsiniz: Private Sub mnueditcolor_click( ) Color diyalog kutusunun gösterilmesi dlggenel.showcolor Color diyalog kutusunu gösterir Şekil 6.13. Color genel diyalog kutusu

Kullanıcı Color menü seçeneğine tıkladığında renk seçimiyle ilgili Windows diyalog kutusu (Şekil 6.13) ekrana gelir. Diyalog Kutusundaki Bilginin Kullanılması Color diyalog kutusunun gösterilmesi herhangi bir renk değişimine neden olmaz. Program kodunuzda bunu dikkate almalısınız. Olan şey kullanıcının seçimi erişebileceğiniz özelliklerde saklanır. Projenizdeki kontrollerin özelliklerine bu değerleri atayabilirsiniz. Color Diyalog Kutusu Kullanıcı tarafından seçilen renk Color özelliğinde saklanır. Bu özelliği bir kontro veya form gibi başka bir nesneye atayabilirsiniz. frmana.backcolor = dlggenel.color Basic ifadeleri sırayla yürüttüğünden ShowColor metodu ile diyalog kutusunu önce gösterirsiniz (Yürütmeye kullanıcı diyalog kutusuna cevap verinceye kadar ara verilir). Daha sonra Color özelliğini kullanabilirsiniz: Private Sub mnueditcolor_click ( ) Color diyalog kutusunun gösterilmesi dlggenel.showcolor Diyalog kutusunun rengini forma atar frmana.backcolor = dlggenel.color Color diyalog kutusu gösterildiğinde varsayılan renk olarak siyahı gösterir. Eğer kutunun başlangıçta formun o anki seçili rengini göstermesi isteniyorsa kontrolün Flags özelliği cdlccrgbinit olarak ayarlanmalı ve diyalog kutusu gösterilmeden önce onun Color özelliği ayarlanmalıdır. Private Sub mnueditcolor_click ( ) Başlangıç renginin ayarlanması ve rengin seçimi With dlggenel.flags = cdlccrgbinit.color = frmana.backcolor.showcolor End With Diyalog kutusunun rengini forma atar frmana.backcolor = dlggenel.color

Font Diyalog Kutusu ShowFont metodunu kullanmadan önce kontrolün Flags özelliğini ayarlamalısınız. Bu kod adımı liste kutusuna fontların yüklenmesini sağlar. Flags özelliğinin değeri cdlcfscreenfonts, cdlcfprinterfocus veya cdlcfboth olabilir. Flags özelliğini ayarlamayı unutursanız, çalışma anında There are no fonts installed. hata mesajı ile karşılaşırsınız. Genel diyalog kontrolünün font özellikleri kullanılan diğer kontrollerden farklıdır. Bir font nesnesinin bir grup özelliği yerine her font özelliği ayrıca listelenir. Diğer Kontrollerin Genel Diyalog Kontrolünün Değerler Font Nesnesi Font Özelliği Font.Bold FontBold True or False (Boolean) Font.Italic FontItalic True or False (Boolean) Font.Name FontName Sisteme bağımlı Font.Size FontSize Fonta bağımlı Font.StrikeThrough FontStrikeThru True or False (Boolean) Font.Underline FontUnderline True or False (Boolean) Büyüklük ve diğer özellikleri atamadan önce FontName özelliğini atayınız. Aşağıdaki kod bir etiketin fontunun değiştirmek için kullanıcıya imkan vermektedir. Private Sub mnueditfont_click ( ) Font diyalog kutusunu gösterilmesi With dlggenel.flags = cdlcfscreenfonts.showfont End With Diyalog kutusunun fontunun etikete atanması With lblişçi.font.name = dlggenel.fontname.bold = dlggenel.fontbold End With Kullanıcı Font menü komutuna tıkladığında, Font diyalog kutusu ekranda görünür (Şekil 6.14).

Mevcut Değerlerin Ayarlanması Şekil 6.14. Font genel diyalog kutusu Font veya renkler için genel diyalog kutusunu çağırmadan önce değiştirilecek olan nesnenin var olan özellik değerlerinin atanması önerilmektedir. Bu adım diyalog kutusunda o anki mevcut değerlerin gösterilmesini sağlayacaktır. Ayrıca kullanıcı Cancel butonunu tıkladığında nesnenin var olan özelliğinin değişmeden kalmasını sağlayacaktır. Private Sub mnueditfont_click ( ) Font diyalog kutusunu gösterilmesi ve etiket ayarındaki değişikliklerin yapılması Mevcut değerlerin diyalog kutusuna atanması With dlggenel.fontname = lblişçi.font.name.fontbold = lblişçi.font.bold.fontitalic = lblişçi.font.italic.fontsize = lblişçi.font.size End With Font diyalog kutusu metodunun ayarlanması With dlggenel.flags = cdlcfscreenfonts.showfont End With Diyalog kutusunun fontunun etikete atanması With lblişçi.font.bold = dlggenel.fontbold.italic = dlggenel.fontitalic.name = dlggenel.fontname.size = dlggenel.fontsize End With

Genel Prosedürlerin Yazılması Sıklıkla birden çok prosedürün aynı işlemi yerine getirdiği programlama durumlarıyla karşılaşacaksınız. Bu durum kullanıcı aynı şeyi yerine getiren bir menü seçimi veya bir komut tuşu seçtiği zaman ortaya çıkabilir. Kodu yeniden yazmak yerine genel prosedür içerisinde yeniden kullanılabilir kodu yazabilirsiniz ve onu iki olay prosedüründen de çağırabilirsiniz. Genel prosedürler ayrıca büyük miktardaki kodun belirli görevleri yerine getiren ufak parçalara ayrılmasında yararlıdırlar. Hesaplamalarınızı küçük parçalara ayırarak ileride programda yapılması gerekecek bir değişikliği daha kolaylaştırmış olursunuz. Örneğin bankanın çeşitli kriterli göz önünde tutarak vereceği kredi miktarını hesaplayan bir programda, kriterlerden birinin verilen kredi miktarındaki etkisinin değiştirilmesi gerekmiş olsun. Bu durumda tüm hesaplamaları bir kerede yerine getiren program yerine sadece o kriterin etkisini hesaplayan bir prosedürün bulunması daha güzel olmaz mıydı? Yeni Bir Alt Prosedürün Yaratılması Bir forma yeni bir genel prosedür eklemek için: Adım 1: Formun kod penceresini açınız. Adım 2: Tools menüsünden Add Procedure seçiniz. Adım 3: Add Procedure diyalog kutusuna bir isim giriniz (Şekil 6.15). Şekil 6.15. Form modülünüze yeni bir genel prosedür eklemek için Add Procedure diyalog kutusunu kullanınız. Adım 4: Scope için Private seçiniz. Bir prosedürün public seçilmesi diğer proje modülleri tarafından da erişilebilir olmasını sağlar. Adım 5: OK tuşuna basınız. Bu örnekteki genel alt prosedürde, RenkSeçimi alt prosedürünün herhangi bir olaya bağlanmadığına dikkat ediniz. Private Sub RenkSeçimi ( ) Kullanıcıya bir renk seçimi için izin verilmesi dlgrenk.showcolor

Yeni prosedürün kodlanması kodlamış olduğumuz diğer prosedürlere benzemektedir, fakat henüz bir olaya bağlanmadılar. Bu yüzden bu kod diğer bir prosedürden bu prosedürü özellikle çağırmadığımız sürece yürütülemezler. Alt prosedürü çağırmak için sadece, bu durumda RenkSeçimi olan, prosedür ismini veririz. Private Sub cmdmesajıdeğiştir_click ( ) Mesajın rengini değiştirir RenkSeçimi lblmesaj.forecolor = dlgrenk.color Private Sub cmdbaşlığıdeğiştir_click() 'Başlığın rengini değiştirir RenkSeçimi lblbaşlık.forecolor = dlgrenk.color Değişkenlerin Prosedürlere Geçirilmesi Çoğu zaman bir prosedür içerisindeki bir değişkenin değerinin kullanılması ihtiyacı hissedilir ve birinci prosedür tarafından çağrılan ikinci bir prosedürde de bu durum geçerlidir. Böyle bir durumda değişkeni modül değişkeni olarak deklare edebilirsiniz, fakat bu yaklaşım değişkeni tüm öteki prosedürler tarafından da görünür olmasını sağlar. Bir değişkenin alanını mümkün olduğunca dar tutabilmek için onu yerel olarak deklare edilmesi ve herhangi bir çağrılan prosedüre geçirilmesi düşünülmelidir. Bir örnek olarak, diyalog kutusu göründüğünde orijinal rengi göstermesi amacıyla önceki RenkSeçimi alt prosedürünün yeteneği geliştirilecektir. RenkSeçimi prosedürü çeşitli yerlerden çağrılabileceğinden orijinal renk prosedüre geçirilmelidir. Visual Basic in renkleri uzun tamsayı değişkenleri olarak sakladığına dikkat ediniz. Private Sub RenkSeçimi(lngGelenRenk As Long) 'Kullanıcıya bir renk seçme imkanı verir With dlgrenk.flags = cdlccrgbinit.color = lnggelenrenk.showcolor End With Private Sub cmdmesajıdeğiştir_click() 'Mesajın rengini değiştirir Dim lngorjinalrenk As Long lngorjinalrenk = lblmesaj.forecolor RenkSeçimi lngorjinalrenk

lblmesaj.forecolor = dlgrenk.color Private Sub cmdbaşlığıdeğiştir_click() 'Başlığın rengini değiştirir Dim lngorjinalrenk As Long lngorjinalrenk = lblbaşlık.forecolor RenkSeçimi (lngorjinalrenk) lblbaşlık.forecolor = dlgrenk.color Bu örnekte RenkSeçimi prosedürünün parantez içerisinde bir argümana sahip olduğuna dikkat ediniz. Bu yazım kuralı, çağrıldığı zaman bir argümanın sunulması gerektiğini göstermektedir. Bir alt prosedür tanımı bir argüman tanımladığında bu prosedüre herhangi bir çağrı argümanı sunmak zorundadır. Ek olarak, argüman değeri iki yerde de aynı veri tipi olmalıdır. İki çağırma prosedüründe de (cmdbaşlığıdeğiştir_click, cmdmesajıdeğiştir_click) lngorjinalrenk değişkeninin uzun tamsayı olarak deklare edildiğine dikkat ediniz. Diğer önemli bir nokta iki yerde de argümanın ismi aynı olmak zorunda değildir. RenkSeçimi alt prosedürü uzun tamsayı değeri her nereye geçirilirse onu alacak ve ona prosedürün içerisindeki lnggelenrenk olarak referans verecektir. Alt prosedürün içerisinde ve çağrına prosedürde birden çok argüman belirleyebilirsiniz. Argümanların sayısı, sırası ve veri tipleri her iki yerde de uyuşmak zorundadır. Takip eden sonraki bölümlerde çoklu argümanların bazı örneklerini göreceksiniz. Argümanların ByVal veya ByRef Olarak Geçirilmesi Bir değeri bir prosedüre geçirmek istediğiniz zaman onu ByVal veya ByRef (by value veya by reference) olarak geçirebilirsiniz. ByVal argüman değerinin bir kopyasını prosedüre gönderir böylece prosedür orjinal değeri değiştiremez. ByRef değerin hafızada saklandığı yeri göstererek bir referans gönderir ve çağrılan prosedürün argümanının orijinal değerinin değiştirilmesine izin verir. Argümandan önce ByVal veya ByRef anahtar kelimesinin kullanılmasıyla argümanı nasıl geçirmek istediğinizi belirleyebilirsiniz. ByVal veya ByRef olarak belirlemezseniz argüman referanslı olarak geçirilecektir. Private Sub RenkSeçimi (ByVal lnggelenrenk As Long) Alt Prosedürlere Karşı Fonksiyon Prosedürler Yeni bir prosedür girdiğinizde bir fonksiyon prosedürü veya bir alt prosedür yaratmak için seçim yapabileceğinizi hatırlayınız (Şekil 6.15). Şimdi bu iki çeşit prosedür arasındaki farklılığı ele alalım. Bir alt prosedür (sub procedure) eylemleri yerine getiren prosedürdür. Bir fonksiyon prosedür (function procedure) bir eylemi yerine getirebilir fakat aynı zamanda çağrıldığı noktadan bir değer (return value) geri döndürür.

Fonksiyon Prosedürlerin Yazılması Daha önce FormatNumber fonksiyonu ve Val fonksiyonu gibi önceden tanımlanmış fonksiyonlar kullandık. FormatNumber fonksiyonu formatlanmış karakterleri geri döndürür; Val fonksiyonu isimlendirilmiş argümanın sayısal değerini döndürür. Bir programcı olarak, farklı birkaç prosedür ve program tarafından ihtiyaç duyulan bir değeri hesaplama gereği duyabilirsiniz. Bir değeri hesaplayacak olan kendi fonksiyonunuzu yazabilir ve ihtiyaç duyulan yerlerden bu fonksiyonu çağırabilirsiniz. Örnek olarak, bir satış elemanının komisyonunu hesaplayan ve geri döndüren Komisyon adlı fonksiyon prosedürünü yaratacağız. Yeni Komisyon fonksiyonu yaratmak için, bir alt prosedür yaratmadaki aynı adımları izleyin. Add Procedure diyalog kutusundan (Şekil 6.15) OK komut tuşunu seçmeden önce Fuction seçim tuşunu seçiniz. Komisyon isimli bir fonksiyon prosedürü girdiğinizde yeni kod pencereniz şu ifadeleri içerecektir: Private Function Komisyon ( ) End Function Bu prosedürün ilk ve son satırdaki Sub yerine Function kelimesinin gelmesi hariç bir alt prosedüre aynen benzemektedir. Fonksiyonlarında argümanlara sahip olduklarını hatırlayınız. Fonksiyonu çağırdığınızda parantezin içerisine bir değer veya değerler yerleştirerek, bir fonksiyona argümanlar sunabilirsiniz. Argümanları ByVal veya ByRef olarak geçirmeyi tercih edebilirsiniz. Fonksiyonu yazarken, fonksiyonun ihtiyacı olan argümanları deklare edersiniz. Her argümana bir isim ve veri tipi verirsiniz. Argümana verdiğiniz isim fonksiyonun içersinde kullandığınız ve argüman değerine referans eden bir belirteçtir. Örnekler Private Function Komisyon (ByVal cursatışmiktarı As Currency) Private Function Ödeme (curoran As Currency, cursaat As Currency, _ curmiktar As Currency) Fonksiyon prosedürlerinde girdiğiniz argüman listesi, argümanların sayısını, onların tipini ve sırasını kurar. Çoklu argüman kullandığınızda, tıpkı önceden tanımlanmış Visual Basic fonksiyonlarını kullandığınızdaki gibi argümanların sırası önemlidir. Bir alt prosedürün kodlanması ve bir fonksiyonun kodlanmasındaki ana farklılık, fonksiyon prosedüründe dönen değeri de ayarlamanız gerektiğidir. Bu dönen değer Visual Basic in fonksiyon adıyla aynı adı verdiği bir değişkenini içersine yerleştirilir. Önceki örneklerin ilkinde, değişken ismi Komisyondur. Fonksiyonun bir yerinde fonksiyon isminin aldığı değeri ayarlamanız gerekir. Ayrıca fonksiyon isminden sonra As cümleciğini ekleyerek dönen değerin veri tipini de belirleyebilirsiniz. Bu örnekteki dönen değerin veri tipi Currency olduğundan fonksiyon adı curkomisiyon olarak değiştirildi.

Komisyon Fonksiyonunun Yazılması O anki komisyonu hesaplamak için bu fonksiyon prosedürünü kodlayınız. Private Function curkomisyon ( ByVal cursatışmiktarı As Currency) As Currency Satışların komisyonunu hesaplar If cursatışmiktarı < 1000 Then curkomisyon = 0 ElseIf cursatışmiktarı <= 2000 Then curkomisyon = 0.15 * cursatışmiktarı Else curkomisyon = 0.2 * cursatışmiktarı End If End Function Komisyon Fonksiyonunun Çağrılması Projenizdeki başka bir prosedürde, bir ifade içerisinde onu kullanarak fonksiyonunuzu çağırabilirsiniz. Dim cursatışlar As Currency If IsNumeric(txtSatışlar.Text) Then cursatışlar = Val(txtSatışlar.Text9 lblkomisyon.caption = curkomisyon (cursatışlar) End If Önceki örnekte, fonksiyonun içerisindeki isimlendirilmiş argümanın fonksiyon tanımındaki isimlendirilmiş argüman ile aynı isme sahip olmadığına dikkat ediniz. Fonksiyon çağrıldığında cursatışlar ın bir kopyası fonksiyona geçirilir ve isimlendirilmiş argümana, şu anki durumda cursatışmiktarı, atanır. Hesaplamalar yapılırken (fonksiyonun içerisinde) cursatışmiktarı na her referans da cursatışlar değeri kullanılmaktadır. Bir Fonksiyonu Çoklu Argümanlarla Yazma Ödeme fonksiyonu gibi bir fonksiyonu çoklu argümanlarla yazmada, argümanların listesi parantezin içine alınır. Aşağıdaki örnek çağırmanın içerisinde üç argümana ihtiyaç duyulduğunu göstermektedir: İlk argüman faiz oranı, ikincisi zaman ve üçüncüsü borç alınan miktardır. Tüm argüman değerleri currency veri tipine sahip olacak ve dönen değerde currency olacaktır. Aşağıdaki formülasyona dikkatli bir şekilde bakınız ve parantez içerisindeki belirteçlerin nasıl kullanıldıklarına dikkat ediniz. Private Function curödeme (curfaiz As Currency, curzaman As Currency, _ curmiktar As Currency) As Currency Amortize edilmiş borçtaki aylık ödemeyi hesaplar Fonksiyonun dönen değerini ayarlar curödeme = curmiktar * (1 + curfaiz/12) ^ (curzaman * 12) End Function

Çoklu Argümana Sahip Bir Fonksiyonu Çağırma Bu fonksiyonu başka bir prosedürden çağırmak için şu ifadeleri kullanınız: curfaiz = Val (txtfaiz.text) curzaman = Val (txtzaman.text) curmiktar = Val (txtmiktar.text) lblödeme.caption = curödeme (curfaiz, curzaman, curmiktar) Sonuçları, metin kutularının Val özelliğine geçiş yaparak, fonksiyonları yuvalandırarak formatlayabilirsiniz: lblödeme.caption = FormatCurrency (curödeme (Val (txtfaiz.text), _ Val (txtzaman.text), Val (txtmiktar.text)))