8) Listeleme, Döngüler Ve Yazdırma



Benzer belgeler
Bu uygulama, MSGBOX fonksiyonun ve Form nesnesinin QueryUnload olayının kullanımı ile ilgili bir uygulamadır.

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

Uygulama 1) Aşağıdaki genel (global) değişken tanımlamalarını VB üzerinde yapınız. Süre 10 dak.

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

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

INPUTBOX() ile Veri Girişi

BİLGİSAYAR PROGRAMLAMA

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

Window Script Host. Message Box Kullanımı. Pupup(Acilir)Message Kullanımı. Arslan ACAR

5. KARAR VERME VE KOŞULLAR

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

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.

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

GİRİ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ

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

TEMEL EXCEL. 1 - Excel e Giriş

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Temel Bilgisayar (Basic Computer) Word e Giriş (Introduction to Word)

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

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

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

Excel Formüller ve Fonksiyonlar. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

HESAP MAKİNASI YAPIMI

Diziler İndisli Değişkenler

3. BELGE DENETİMİ. Bu bölümde belge denetimi için gerekli olan yazım, dil bilgisi ve dil ayarlarını öğreneceğiz.

MODÜL BİLGİ SAYFASI KODU :

Microsoft Excel. Çalışma Alanı. Hızlı Erişim Çubuğu Sekmeler Başlık Formül Çubuğu. Ad Kutusu. Sütunlar. Satırlar. Hücre. Kaydırma Çubukları

İÇİNDEKİLER BİRİNCİ BÖLÜM BİLGİSAYARDA BELGE AÇMAK VE TEMEL İŞLEMLER YAPMAK

How to ASP Language. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. Hafta V

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY

3. Aşağıdakilerden hangisi B5 hücresinin değerini getirir (Kopyalar)? a-) =B5 b-) B5 c-) =B(5) d-) =5B

PAKET PROGRAMLAR DERSİ

Web sayfalarında yapılan her çalışma ve düzenleme tablolar aracılığı ile yapılır. Dolayısıyla çoğu web sayfalarında tablo kullanmak zorunluluktur.

<html> <head> <title>sayfa Başlığı</title> </head> <body> Bu benim ilk sayfam <b>bu metin koyu</b> </body> </html>

MS Excel. Excel Microsoft Office in bir parçasını oluşturur. Office 2007, Office 2010, Office 2013, Office 2016

Matematiksel Operatörler

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

MİCROSOFT WORD PROGRAMI ÇALIŞMA KAĞIDI

TEMEL STRING İŞLEMLERİ


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:

Donatlar-NotePad DONATILAR

WOLVOX Hızlı Satış. AKINSOFT WOLVOX 7 Hızlı Satış Yardım Dosyası

Timer İle arka plan renk değişimi

Print Komutu ile Değişkenleri Yazdırmak

Renk kalitesi kılavuzu

08224 Sunucu İşletim Sistemleri

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

ARGOBAR LİTE IN PROGRAMININ KULLANIMI Argobar Lite programı çalıştırıldığında programın ilk görüntüsü aşağıdaki gibidir.

Microsoft Office paketlerinin son sürümü olan Office 2010 sürümü ile;

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

22. Ölçü ve Kot Eklemek

Bö lü m 6: Kelime İ şlemciler

2. SCADA PROGRAMI. TEOS' un size sunduğu bir çok hizmet içerisinde en önemlilerini şöyle sıralayabiliriz:

2-VİSUAL BASİC E GİRİŞ

ÜNİTE ÜNİTE MICROSOFT POWER POINT - I TEMEL BİLGİ TEKNOLOJİLERİ İÇİNDEKİLER HEDEFLER

ÖNDER BİLGİSAYAR KURSU. Microsoft Office Kursu Eğitim İçeriği

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Gidilen sayfadan bir önceki sayfaya geçilir. Şekil Git İşlemi diyalog kutusu

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

Python Programlama Dili

MİCROSOFT OFFİCE EXCEL SORULARI

8.Sayfa ve 9.Yazım 10.Belge Görünüm 11.Ekran Yakınlaştırma Sözcük Sayısı Denetimi Düğmeleri ve Uzaklaştırma

MT 373 Visual Basic Programlama Dersi

Word Otomatik Düzelt

BĐLGĐSAYARDAN BAĞIMSIZ YAZDIRMA ĐŞLEMĐ

AKINSOFT Barkod 4. AKINSOFT Barkod 4 Yardım Dosyası. Doküman Versiyon : Tarih : Sayfa-1. Copyright 2010 AKINSOFT

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

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

MS Publisher Kullanım Hatırlatmaları

3. Metin ve Görünüm Etiketleri


GRAFİK TASARIM. ACTION SCRIPT 3.0 Ders1 YARD. DOÇ. DR. MEHTAP YALÇINKAYA

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

İŞLETMELERDE BECERİ EĞİTİMİ DERSİ MİCROSOFT WORD 2007 ÇALIŞMALARI

ÖĞRENME FAALİYETİ 5 ÖĞRENME FAALİYETİ 5 5. TABLO İŞLEMLERİ

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

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

Frontpage ile Çerçeve Sayfası Yaratmak

İÇİNDEKİLER 1. BÖLÜM: VISUAL BASIC E İLK ADIM

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

ELEKTRONİK TABLOLAMA Aritmetiksel işlemler ve mantısal karşılaştırmaların yapıldığı programlar elektronik tablolama programlarıdır.

HSancak Nesne Tabanlı Programlama I Ders Notları

adresinden ÖĞRETİM ÜYESİ GİRİŞİ

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

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

OfficeExcelProgramıAnlatımı

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

Word programını kullanırken kullanılan ve bilgisayarı kullanma da hemen her yerde de kullanılabilen bazı kısayollar aşağıdaki gibidir.

Karakter Değişkenlere İlişkin Komutlar

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

AOSB 2017 EĞİTİM PROGRAMI

Transkript:

8) Listeleme, Döngüler Ve Yazdırma Genellikle kullanıcılara bir grup liste elemanı içersinden seçim yapma imkanı verilir. Form üzerinde listeler göstermek için Windows un liste kutusu ve kombo kutusu kontrollerini kullanabilirsiniz. Birimleri bir listeye eklemede tasarım zamanını, çalışma zamanını veya belki bu ikisinin bir kombinasyonunu seçebilirsiniz. Birkaç stilde liste kutuları bulunmaktadır. Seçeceğiniz stil tasarım ve yer kıstasları tarafından belirlenmektedir. Aynı zamanda kullanıcıya birimleri listeye ekleyebilip ekleyemeyeceğinin seçim şansının verilmesi de diğer bir unsurdur. Liste Ve Kombo Kutuları Liste ve kombo kutusu kontrollerinin her ikisi de size kullanıcının bir seçim yapabileceği bir liste kutusuna sahip olma imkanını verir. Şekil 8.1 kontrolleri yaratmak için araç kutusunu göstermektedir; Şekil 8.2 simple list boxes, simple combo boxes, dropdown combo boxes ve dropdown lists içeren birkaç farklı liste ve kombo kutularını göstermektedir. Şekil 8.2 daki formun sol tarafındaki liste kutularının hepsi liste kutusu aracı ile yaratılmıştır; formun sağındaki kutuların hepsi ise kombo kutusu aracı ile yaratılmıştır. Kombo kutularının üç farklı sitilinin olduğuna dikkat ediniz. Kombo kutusu Liste kutusu Şekil 8.1. Formunuzda liste kutuları ve kombo kutuları yaratmak için kombo kutusu aracını ve liste kutusu aracını kullanınız. Liste ve kombo kutularının çoğu özelliği benzerdir ve aynı tarzda işletilirler. Bir istisna bir kombo kutusu kontrolünün liste kutusunun kullanıcının giriş yapacağı bir metin kutusuna sahip olup olmayacağını ve listenin aşağı doğru açılıp açılmayacağını belirleyen Style özelliğine sahip olmasıdır (Şekil 8.2). Diğer bir istisna kombo kutuları tasarım aşamasında var

olan Text özelliğine sahip olmalarıdır; Liste kutularının Text özelliği sadece program yürütülmesi esnasında olanaklı olmaktadır. Liste ve kombo kutularının her ikisi de çok kullanışlı bir özelliğe sahiptir. Eğer kutu bir kerede listedeki tüm birimleri göstermek için çok küçükse VB otomatikman bir kaydırma çubuğu ekler. Kaydırma çubuğundaki kaydırma kutusunun yeriyle ilgilenmenize gerek kalmaz, kaydırma otomatikman ayarlanmaktadır. Dropdown combo box (Style 0) List boxes Simple combo (Style 1) Dropdown list (Style 2) Şekil8.2. Çeşitli liste kutusu kontrolleri ve kombo kutusu kontrolleri Forma bir liste kutusu eklediğinizde kutuyu nasıl işletmek istediğinize ve sahip olduğunuz alana göre bir stil seçiniz. Kullanıcının var olan bir listeden seçim yapmasını mı istiyorsunuz? Öyleyse simple list box veya dropdown list (kombo kutusu style 2) kullanınız. Kullanıcının gerek duyarsa yeni bir giriş yapmasına olanak mı vermek istiyorsunuz? Bu durumda metin kutusu eklentili şu iki stilden birini seçiniz: dropdown combo box (style 0) veya simple combo box (style 1). Tasarım aşamasında bir liste veya kombo kutusu yarattığınızda kontrolün büyüklüğünü de belirlersiniz. Liste kutuları için kontrolün tasarım aşamasında Visual Basic, Name özelliğini gösterir kombo kutuları için Text özelliğini gösterir. Bir liste kutusunu veya dropdown list (kombo kutusu style 2) i tasarım aşamasında boş göstermek için zaman harcamayın; kutu çalışma anında boş görünecektir. Dropdown combo box ve Simple combo (style 0 ve 1) tasarım esnasında ayarlayabileceğiniz Text özelliğine sahiptir. Liste ve Kombo kutularına isim verdiğinizde lst ve cbo öneklerini kullanınız. Listenin Doldurulması Liste ve kombo kutusunu doldurmak için birkaç farklı metot kullanabilirsiniz. Eğer tasarım aşamasında listenin içeriğini biliyorsanız ve liste asla değişmeyecekse Properties penceresinde liste birimlerini tanımlayabilirsiniz. Eğer programın yürütülmesi esnasında birimleri listeye eklemek zorundaysanız, bir olay prosedürü içerisinde AddItem metodunu kullanacaksınız.

Properties Penceresinin Kullanımı List özelliği bir kombo veya liste kutusunun liste elemanlarını tutar. Tasarım esnasında List özelliğini tanımlamak için kontrolü seçiniz ve Properties penceresinden List özelliğine geliniz (Şekil 8.3). Boş listeyi açmak için aşağı oka basınız ve ilk liste birimini giriniz. Daha sonra Ctrl + Enter ile bir sonraki liste birimine geçiniz. Liste birimleri bitene kadar Ctrl + Enter a basmaya ve liste elemanlarını girmeye devam ediniz (Şekil 8.4). Son liste biriminde Ctrl + Enter a basmayın yoksa listenizde fazladan boş bir satıra sahip olursunuz. Enter a basın veya listenin dışında herhangi bir yeri klikleyin. Şekil8.3. Liste birimlerini girmek için bir liste kutusunun List özelliğini seçiniz. Şekil8.4. Her liste birimini giriniz ve Ctrl + Enter a basınız

AddItem Metodunun Kullanılması Liste kutusuna çalışma anında bir birim eklemek için AddItem metodunu kullanınız. Bir listeye kombo kutusunun üstündeki metin kutusunun içeriğini, bir değişkeni, bir sabiti veya başka bir kontrolün özelliğini eklemek isteyebilirsiniz. AddItem Metot Genel Form Nesne.AddItem Değer [, Indeks] Değer listeye eklenecek değerdir. Değer string bir ifadeyse bu takdirde tırnak işaretiyle çerçevelenmelidir. Opsiyonel indeks yerleştirilecek olan yeni birimin liste içersindeki pozisyonunu belirler; liste içersindeki ilk birim 0 indeksine sahiptir. İndeksi atlarsanız yeni birim genellikle yeni birim listenin en sonuna gider, bununla birlikte kontrolün Sorted özelliğini True yaparak yerleşimi değiştirebilirsiniz. Böylece yeni birim liste içerisine alfabetik olarak yerleştirilecektir. AddItem Metot Örnekler lstokullar.additem Harvard lstokullar.additem Stanford lstokullar.additem txtokullar.text cboanabilim.additem cboanabilim.text cboanabilim.additem stranabilim Kullanıcı kombo kutusunun metin kısmına yeni bir değer girdiğinde, bu değer listeye otomatikman eklenmez. Yeni girilen metini listeye eklemek istiyorsanız AddItem metodunu kullanın: cbokahve.additem cbokahve.text Listenin Temizlenmesi Çalışma anında birimlerin eklenmesine ek olarak ayrıca listedeki tüm elemanları silebilirsiniz. Bir kombo veya liste kutusunu boşaltmak için Clear metodunu kullanınız. Clear Metot Genel Form Nesne.Clear Clear Metot Örnekler lstokullar.clear cboanabilim.clear

ListIndex Özelliği Bir proje çalışırken ve kullanıcı listeden bir birim seçtiğinde, o birimin indeks numarası liste kutusunun ListIndex özelliğinde saklanır. Liste içerisindeki ilk birimin ListIndex inin 0 olduğunu hatırlayınız. Eğer seçili bir liste elemanı yoksa ListIndex özelliği -1 olarak atanır. Kodlar içersinde ListIndex özelliğini liste içersindeki bir birimi seçmek veya tüm birimleri seçmemek için kullanabilirsiniz. Örnek lstkahveçeşitleri.listindex = 3 lstkahveçeşitleri.listindex = -1 Liste içerisindeki dördüncü birimi seçer Liste içersindeki hiçbir birimi seçmez ListCount Özelliği Uygulamalar bir kombo veya liste kutusunun ListCount özelliğini liste içersindeki birimlerin sayısını saklamak amacıyla kullanırlar. Bu bölümde daha sonra liste içerisindeki her elemanı işleme dahil etmek için ListCount özelliğini kullanacağız. ListCount ayrıca projenizdeki bazı durumlarda listedeki birim sayısını göstermek istediğinizde oldukça kullanışlı olmaktadır. Unutmayınız ki ListIndex 0 ile başladığından dolayı ListCount her zaman en büyük ListIndex den bir fazladır. Örneğin liste içerisinde 20 birim varsa ListCount 20 ve en büyük ListIndex i 19 dur. Örnek inttoplambirim = lstbirim.listcount List Özelliği Listeden bir birimi gösterme ihtiyacı duyuyorsanız List özelliğinin bir birimine referans verebilirsiniz. Bir liste veya kombo kutusunun List özelliği tüm liste elemanlarının metin bilgisini tutar. İndeks kullanarak hangi birimi istediğinizi belirleyebilirsiniz. Bu teknik bir liste elemanını başka bir yerde gösterme ihtiyacı duyduğunuzda yararlı olabilmektedir. List Özelliğinin Kullanılması Genel Form Nesne.List (indeks) [ = Değer] İlk liste elemanının indeksi 0 dır, böylece en büyük indeks ListCount 1 dir. Bir liste elemanının değerini çağırabilir veya bir elemana farklı bir değer verebilirsiniz. Liste Özelliğinin Kullanılması - Örnekler lstokullar.list (5) = Dokuz Eylül Üniversitesi lblanabilimdalınız.caption = cboanabilimdalı.list(intindeks) lblseçilianadal.caption = cboanabilimdalı.list(cboanabilimdalı.listindex)

Bir liste içerisindeki o andaki seçili birime referans vermek için List özelliğiyle ve ListIndex özelliğini birleştirmeniz gerekmektedir: strseçiliürün = lstürün.list (lstürün.listindex) Text özelliğini kullanarak da seçili liste elemanına referans verebilirsiniz: strseçiliürün = cboürün.text Listeden Bir Birimin Kaldırılması Daha önce bir listedeki tüm elemanların nasıl silineceğini öğrendiniz. Bununla birlikte listeden herhangi bir elemanı da silmek isteyebilirsiniz. Listeden bir elemanı silmek amacıyla RemoveItem metodunu kullanınız. RemoveItem Metotu Genel Form Nesne.RemoveItem İndeks İndeks hangi birimin kaldırılacağını belirlediği için gereklidir. İlk liste elemanının indeksi 0 ve son liste elemanının indeksi ListCount 1 dir. RemoveItem Metot Örnekler lstadlar.removeitem 0 Listedeki ilk elemanı kaldırır cbookullar.removeitem intindeks intindeks pozisyonundaki birimi kaldırır cbokahve.removeitem cbokahve.listindex O andaki seçili birimi kaldırır Liste ve Kombo Kutusu Olayları Bu bölümde liste ve kombo kutuları olayları için olay prosedürleri yerine getireceğiz. Bazı yararlı olaylar Change, GotFocus ve LostFocus dur. Not: Şimdiye kadar bu olayları kullanmamış olsak da diğer kontrollerde aynı olaylara sahiptir. Örneğin metin kutusunun Change olayı için olay prosedürü kodlayabilirsiniz. Change Olayı Kullanıcı bir kombo kutusunun (style 0 ve 1) metin kutusu bölümüne bir metin girdiğinde Change olayı ortaya çıkar. Her tuş vuruşu başka bir change olayının ortaya çıkmasına neden olur. Bu olay daha sonra girilen değer ile liste içersindeki birimleri eşleştirmek için kullanılacaktır. Liste kutuları metin kutuları ile birleştirilmediği için liste kutusu Change olayına sahip değildir. GotFocus Olayı Bir kontrole geçiş yapıldığında GotFocus olayı meydana gelir. Kullanıcı bir kontrolden diğerine tab ile dolaşırken her kontrol için GotFocus olayı ortaya çıkar.

LostFocus Olayı Ayrıca bir kontrolün LostFocus olayı içinde kod yazabilirsiniz. LostFocus olayı kontrolden odak kaybolduğunda ortaya çıkar. Genellikle LostFocus olayı girdi verilerinin geçerliliğinin sınanması için kullanılmaktadır. Do/Loops Şimdiye kadar bir prosedür içersindeki aynı adımları onları ikinci kez çağırmaksızın tekrarlamanın yolu yoktu. Bilgisayar her yeni veri kümesi için prosedürdeki komutları çağırmadan onu çok defa tekrarlayabilme yeteneğine sahiptir. Bir komut setini tekrarlama işlemine döngü denir. Döngüdeki ifadelerin bir tek yürütümüne iterasyon denmektedir. Bu kısımda Do/Loop döngüsünü daha sonra başka bir döngü türü olan For/Next döngüsünü öğreneceksiniz. Do/Loop belirleyeceğiniz bir koşulu temel alarak terk edilir. Do/Loop döngüsünün yürütülmesi bir koşul doğru olduğu sürece veya bir koşul doğru olana kadar devam eder. Koşulu döngünün sonuna veya başına yerleştirmeyi tercih edebilirsiniz. Do/Loop döngüsünü iterasyon sayısı tam olarak bilinmediğinde kullanınız. Do ve Loop ifadelerini aynı düzeyde hizalayınız ve bunlar arasındaki tekrarlanacak kod satırları için bir sekme içeri giriniz. Do Ve Loop İfadeleri Genel Form Do {While / Until} Koşul Döngüdeki ifadeler Loop veya Do Döngüdeki ifadeler Loop {While / Until} Koşul Do/Loop döngüsünün ilk formu döngünün üst kısmının tamamlanmasını test etmektedir. Öntest (Pretest) olarak da adlandırılan bu çeşit döngüyle ilk sefer test edildiğinde çıkış koşulu doğruysa döngü içersindeki ifadeler asla yürütülemeyebilinir. Örnek inttoplam = 0 Do Until inttoplam = 0 döngüdeki ifadeler Loop

İlk kez test edildiğinde koşul inttoplam 0 olduğundan, koşul doğrudur ve döngü içersindeki ifadeler yürütülmeyecektir. Kontrol Loop ifadesini takip eden ifadelere geçecektir. Do/Loop döngüsünün ikinci formu döngünün alt kısmının tamamlanmasını test etmektedir. Bunun anlamı döngü içersideki ifadelerin her zaman en az bir kere yürütüleceğidir. Bu çeşit döngü bazen Sontest (posttest) olarak adlandırılır. Örneği sonteste çevirerek farklılığı görebiliriz. inttoplam = 0 Do döngüdeki ifadeler Loop Until inttoplam = 0 Bu durumda döngü içersindeki ifadeler en az bir kere yürütülecektir. inttoplam değerinin döngü içersinde değişmediğini varsayarsak koşul (inttoplam = 0) ilk kez test edildiğinde doğru olacak ve kontrol Loop ifadesini takip eden ilk ifadeye geçiş yapacaktır. Şekil 8.5 While ve Until in ikisini de kullanarak öntest ve sontest döngülerinin akış diyagramını göstermektedir. Öntest Do While Öntest Do Until Döngü Koşulu Doğru Döngü Koşulu Yanlış Yanlış Döngüdeki İfadeler Doğru Döngüdeki İfadeler Döngü Tamalandı Döngü Tamalandı

Sontest Loop While Sontest Loop Until Döngüdeki İfadeler Döngüdeki İfadeler Döngü Koşulu Doğru Döngü Koşulu Yanlış Yanlış Doğru Şekil8.5. Öntest ve Sontest döngülerinin akış diyagramı Do ve Loop İfadeleri Örnekler Do Until intbirimindeks = lstbirimler.listcount 1 Döngüdeki ifadeler Loop Do While curmiktar > = 10 And curmiktar < = 20 Döngüdeki ifadeler Loop Do Döngüdeki ifadeler Loop Until inttoplam > 0 Boolean Veri Tipi Daha önce sadece True veya False değerlerini tutan Boolean veri tipini görmüştük. Bir döngü içersindeki koşulları test etmede ve oluşturmada Boolean değişkenlerinin oldukça faydalı olacağını göreceksiniz. Boolean değişkenini belirli bir koşul ortaya çıktığında True olacak şekilde ayarlayabilir ve sonra değişken True olana kadar döngü koşuluna devam edilmesini sağlayabilirsiniz.

Boolean değişken kullanılmasına örnek bir liste içersinden belirli bir değerin aranmasının istenmesidir. Bu birim bulunabilir veya bulunamayabilinir ve bir eşdeğer bulunduğuna bakarak çıkmak isteyebilirsiniz. Boolean değişkeninin kullanılması genellikle üç adımlık bir süreçtir. İlk olarak değişken boyutlandırılmalıdır ve başlangıç değeri ayarlanmalıdır (veya False, VB varsayılan ayarını kullanın). Daha sonra belirli bir durum ortaya çıktığında değişkeni True olarak ayarlayınız. Döngü koşulu True değeri için kontrol edilebilir. Dim blnbirimbulundu as Boolean blnbirimbulundu = False Do Until blnbirimbulundu... True değerini kontrol eder Do/Loop Döngüsünün Liste Kutusuyla Kullanılması Bu basit örnek Boolean değişkeni ile Do/Loop döngüsünü birleştirmektedir. Döngünün içersinde listenin her elemanı txtyenibirim ile eş bulma amacıyla karşılaştırılmaktadır. Döngü bir eş bulununca veya tüm birimler test edilince terk edilecektir. Kodları takip ederek bir eş bulunca, eş bulunmayınca, eş listenin ilk elemanında bulununca ve eş listenin son elemanında ortaya çıkınca ne olacağını görünüz. Private Sub cmdbul_click( ) Metin kutusu ve liste birimleri arasında bir eş olup olmadığının aranması Dim blnbirimbulundu As Boolean Dim intbirimindeks As Integer blnbirimbulundu = False intbirimindeks = 0 Do Until blnbirimbulundu Or intbirimindeks = lstbirimler.listcount If txtyenibirim.text = lstbirmler.list(intbirimindeks) Then blnbirimbulundu = True End If intbirimindeks = intbirimindeks + 1 Loop If blnbirimbulundu Then MsgBox Birim listede, vbinformation, Eş birim Else MsgBox Birim listede değil, vbinformation, Eş birim değil End If End Sub

For/Next Döngüsü Bir döngüdeki ifadeleri belirli bir sayıda tekrarlamak istiyorsanız For/Next döngüsü idealdir. For/Next döngüsü For ve Next ifadelerini ve döngü indeksi olarak adlandırılan bir sayaç değişkenini kullanır. Döngü indeksinin değeri döngü içersindeki ifadenin kaç kez yürütüleceğinin belirlenmesi için test edilir. Dim intdöngüindeksi As Integer Dim intmaksimum As Integer intmaksimum = lstokullar.listcount 1 For intdöngüindeksi = 0 To intmaksimum Döngü içersindeki ifadelerde bir sekme içeri girilir ve döngünün gövdesi olarak referans verilir Next intdöngüindeksi Program yürütülmesi esnasında For ifadesine ulaşıldığında birkaç şey meydana gelir. Döngü indeksi, intdöngüindeksi, döngü sayacı olarak oluşturulur ve başlangıç değeri 0 dır. Döngü indeksinin son değeri önceki ifadede lstokullar.listcount -1 değerine atanan intmaksimum olarak ayarlanmıştır. Yürütüm artık For ifadesi tarafından kontrol edilmektedir. intdöngüindeksi değeri ayarlandıktan sonra intdöngüindeksi nin intmaksimum dan büyük olup olmadığını görmek için test edilir. Eğer büyük değilse döngünün gövdesindeki ifadeler yürütülür. Next ifadesi intdöngüindeksi nin bir artmasına neden olmaktadır. Kontrol tekrar For ifadesine geri dönmektedir. intdöngüindeksi nin değeri intmaksimum dan büyük müdür? Büyük değilse döngü tekrar yürütülür. Test işlemi yapıldığında ve döngü indeksi son değerden daha büyük olduğunda kontrol hemen Next ifadesini takip eden ifadelere geçecektir. Bir sayaç-kontrollü döngü genellikle üç bileşene sahiptir (döngü mantığının akış diyagramı için Şekil 8.6 ya bakınız). 1. Sayacın başlangıç değerinin oluşturulması 2. Sayacın arttırılması 3. Döngünün terk edilmesinin zamanının gelip gelmediğinin belirlenmesi için sayacın test edilmesi

İndeks değişkeninin başlangıç değeri Sınır değere ulaşıldı mı? Yanlış Doğru Döngüdeki İfadeler Döngü İndeksinin arttırılması Şekil 8.6. For/Next döngüsünün mantığının akış diyagramı For Ve Next İfadeleri Genel Form For Döngü İndeksi = BaşlangıçDeğeri To TestDeğeri [Step miktarı]...... (Döngünün gövdesi)... Next [Döngüİndeksi] Döngüİndeksi sayısal bir değişken olmak zorundadır; BaşlangıçDeğeri ve TestDeğeri sabit, değişken, sayısal bir özellik değeri veya sayısal bir ifade olabilir. Opsiyonel Step kelimesi döngünün her iterasyonu sonucunda döngü indeksine eklenecek değer ile birlikte döngü içersine dahil edilebilir. Step kısmı atlanırsa artış miktarının 1 olduğu varsayılır.

For Ve Next İfadeleri Örnekler For intindeks = 2 To 100 Step 2 For intsayı = intbaşlangıç To intson Step intartış For intsayaç = 0 To cbokahveçeşidi.listcount 1 For intsayı = (intdoğrusayısı 5) To inttoplamsayı For curoran =.05 To.25 Step.05 For intaşağısayaç = 10 To 0 Step -1 Her For ifadesi onu takip etmek zorunda olan bir Next ifadesine sahiptir. For ve Next arasın daki tüm ifadeler döngünün gövdesi olarak ele alınır ve belirlenen sayıda yürütülecektir. İlk For ifadesi örneği 2 den 100 e kadar 2 şer 2 şer sayacaktır. Döngünün gövdesindeki ifadeler ilkinde intindeks = 2, sonrakinde intindeks = 4 ve sonrakinde intindeks = 6 ve böyle devam eder şekilde 50 kez yürütülecektir. Karşılaştırma yapılıyorsa program test değerine eşit değil test değerinden büyük olma durumunu araştırır. Bir önceki örnekte intindeks = 100 olduğunda döngünün gövdesi bir kez daha yürütülecektir. Daha sonra Next ifadesinde intindeks 102 e arttırılacak test yapılacak ve kontrol Next ifadesini takip eden ifadelere geçecektir. Eğer döngü tamamlandıktan sonra intindeks in değerini göstermek isterseniz onun değeri 102 olacaktır. Not: Döngü için gereken iterasyon sayısını bildiğiniz durumlarda For/Next döngüsünü kullanınız. Döngünün bir koşula bağlı olarak sonlanacağı durumlarda ise Do/Loop döngüsünü kullanınız. Negatif Artış veya Geriye Doğru Sayma Döngü indeksini arttırmak yerine Step ifadesinden sonra negatif sayı kullanarak döngü indeksini azaltabilirsinizde. Step ifadesi negatif olduğunda VB test değerinden büyük olma yerine küçük olma durumunu araştırır. Geriye Sayma For intsayma = 10 To 1 Step -1 Next intsayma Döngüye Girilmeden Önce Sağlanan Koşullar Çoğu zaman döngüye girilmeden önce nihai değere ulaşılır. Bu durumda döngünün gövdesindeki ifadeler hiçbir zaman yürütülemeyecektir. Yürütülmeyecek bir döngü intson = 5 For intindeks = 6 to intson Yürütme hiçbir zaman buraya ulaşamayacaktır Next intindeks

Döngünün Kontrol Değişkenlerinin Değerlerinin Değiştirilmesi Bir kere For döngüsüne girildiğinde BaşlangıçDeğeri, TestDeğeri ve ArtışMiktar değerleri önceden belirlenmiştir. Döngü içersinde bu kontrol değişkenlerinin değerlerinin değiştirilmesinin döngünün iterasyon sayısı üzerinde bir etkiye sahip olmayacaktır. Çoğu kaynak döngü içersindeki değişkenlerin değiştirilmesine karşın sert bir uyarı yapmaktadır. Bunu nla birlikte Visual Basic bunu denemeye kalkarsanız sadece yaptığınızı ihmal eder. Kötü örnek Kontrol değişkenlerinin değiştirilmesi intson = 10 intartış = 2 For intindeks to intson Step intartış intson = 25 intartış = 5 Next intindeks Bu örneği dener ve intindeks değerini göstermeye kalkarsanız, son değerin 10 ve artışın 2 kalacağını görmüş olursunuz. Döngü içersinde değiştirebileceğiniz değer Döngüİndeksi dir. Bu uygulama iyi bir programlama örneği olarak sayılmaz. Kötü programlama For intindeks = 1 To 10 Step 1 intindeks = intindeks + 5 Next intindeks Sonsuz Döngü Döngüİndeksi değişkeninin değerinin değiştirilmesi yalnızca kötü bir uygulama olarak görülmez aynı zamanda sonsuz bir döngüye de yol açabilir. Kodlarınız çıkışı imkansız bir döngü içerisine girebilir. Aşağıdaki örneği ele alınız; Döngü ne zaman sonlanacaktır? Daha kötü programlama For intindeks = 1 To 10 Step intindeks = 1 Next intindeks 1 For/Next Döngüsünden Çıkış Bir önceki sonsuz döngü örneğinde çıkış için program yürütülmesini el ile durdurmak zorundasınızdır. Formunuzun kapat kutusuna tıklayabilir veya Visual Basic menü çubuğunu veya programı durdurmak için araç çubuğunu kullanabilirsiniz. Genellikle For/Next döngüleri normal bitişleri ile sonlandırılmalıdır. Bununla birlikte bazen döngü indeksi son değerine ulaşmadan önce bir döngüden çıkma ihtiyacı duyulabilinir. Bu d urum için Visual Basic Exit For ifadesini sağlamaktadır. Çoğunlukla Exit For ifadesi bir If ifadesinin parçası durumundadır.

Exit For İfadesi Genel Form Exit For Exit For İfadesi - Örnek For intdöngüindeksi = 1 To 10 If txtgirdi.text = Then MsgBox Bir değer girmelisiniz Exit For End If... Döngüdeki ifadeler Next intdöngüindeksi Girdi metin kutusun bir değer girilmedi MsgBox Fonksiyonunun Kullanılması Mesajları göstermek amacıyla 5. Bölümden beri MsgBox ifadesini kullanıyorduk ve bunla rın hepsinde sadece bir OK tuşu bulunuyordu. Bundan hariç bir butondan daha fazla buton içeren ve hangi butonun basıldığını göstermek için geriye bir değer gönderen bir diyalog kutusu göstermek için MsgBox fonksiyonunu kullanabilirsiniz. Bir kombo kutusunu gerçekten temizlemek isteyip istemediğinizi soran bir mesaj kutusu düşününüz. Yes ve No butonlarını göstermeye ve hangi butona basıldığını anlayabilmenize ihtiyacınız olacaktır. Şekil 8.7. Yes ve No butonları olan bir mesaj kutusunu örneklendirmektedir. Şekil8.7. Bir mesaj kutusunu birden çok butonla gösterin ve hangi butonun tıklandığını MsgBox fonksiyonu ile kontrol edin. MsgBox Fonksiyonu Genel Form MsgBox (Sorulacak soru veya ifade [, Tuşlar] [, Başlık])

MsgBox Fonksiyonu Örnek Dim intcevap As Integer intcevap = MsgBox ( Devam etmek istiyor musunuz?, vbyesno + vbquestion, _ Başlık ) If intcevap = vbyes Then... işleme devam et If MsgBox (strmesaj, vbokcancel) = vbok Then ClearList Else İptalDurumundaYapılacaklar End If Fonksiyonun Geri Dönen Değerleri MsgBox fonksiyonu bir koşulda kullanılabilecek bir değeri (1 ve 7 arasında) veya eş değer doğal sabiti geriye döndürür. Geriye Dönen Değer Sabit Değer Basılan Tuş vbok 1 OK vbcancel 2 Cancel vbabort 3 Abort vbretry 4 Retry vbignore 5 Ignore vbyes 6 Yes vbno 7 No Gösterilecek Buton Ve/Veya İkonların Belirlenmesi Visual Basic doğal sabitlerini veya sayısal değerleri kullanarak hangi butonların gösterileceğini belirleyebilirsiniz. Eğer hem buton hem de ikon kullanmak istiyorsanız bu durumda iki değeri birlikte gö stermek için artı işareti kullanınız. Buton ve İkon Değerleri Gösterilecek Butonlar Değer Sabit OK 0 vbokonly OK and Cancel 1 vbokcancel Abort, Retry and Ignore 2 vbabortretryignore Yes, No and Cancel 3 vbyesnocancel Yes and No 4 vbyesno Retry and Cancel 5 vbretrycancel

Gösterilecek İkon Değer Sabit Critical Message 16 vbcritical Warning Query 32 vbquestion Warning Message 48 vbexclamation Information Message 64 vbinformation Yes, No ve Cancel butonlarını b ir soru işareti ikonu ile beraber göstermek için aşağıdaki ifadelerden birini kullanınız: intcevap = MsgBox (strmsg, vbyesnocancel + vbquestion, İyi Soru ) in tcevap = MsgBox (strmsg, 3 + 32, İyi Soru ) MsgBox Örneği Daha önce bir liste veya kombo kutusunun içeriğini temizlemek için Clear metodunun kullanılmasını gördük. Bu örnekte kullanıcıya listeyi gerçekten silip silmediğine dair onaylayacağı bir şans verilecektir. ( Bu prosedürde gösterilen mesaj kutusu için şekil 8.7 e bakın ız) Private Sub mnudüzensil_click( ) Kahve listesinin temizlenmesi Dim intcevap As Integer intcevap = MsgBox ( Kahve listesi silinsin mi?, vbyesno + vbquestion, _ Kahve listesinin temizlenmesi ) If intcevap = vbyes Then cbokahve.clear End If End Sub String Fonksiyonlarının Kullanılması Bir string değişkenin tümüne bakmaktansa sadece bir parçasına bakmak isteyebilirsiniz. Visual Basic bir string in belirli bir parçasını geri veren Left, Right ve Mid fonksiyonlarını sağlamaktadır. Left, Right Ve Mid Fonksiyonları Genel Form Left ( Stringİfadesi, KarakterSayısı) Right (Stringİfadesi, KarakterSayısı) Mid (Stringİfadesi, BaşlamaPozisyonu, [KarakterSayısı]) Stringİfadesi bir string değişkeni, string kalıbı veya Text özelliğinden her biri olabilir. KarakterSayısı ve BaşlamaPozisyonu her ikiside nümeriktir ve nümerik bir ifade veya bir değişken olabilir. Mid fonksiyonunda KarakterSayısı argümanını atlarsanız fonksiyon BaşlamaPozisyonu dan başlayarak tüm karakterleri geri verir.

Left, Right Ve Mid Fonksiyonları Örnekler Left (txtadı.text, 5) Right (sgruzun, 1) Mid ( Deli Damat, 6, 3) Mid (strürünadı, 4) İlk beş karakteri geri verir Son bir karakteri geri verir 6 ıncı karakterden başlayarak 3 karakteri geri verir 4 üncü karakterden başlayarak tüm karakterleri geri verir Left, Right Ve Mid Fonksiyonunu Kullanan Örnekler Dim strörnek As String StrÖrnek = Hayat çok güzel lblmesaj.caption = Left (strörnek, 1) lblmesaj.caption = Left (strörnek, 6) lblmesaj.caption = Left (strörnek, 15) lblmesaj.caption = Left (strörnek, 53) lblmesaj.caption = Right (strörnek, 1) lblmesaj.caption = Right (strörnek, 5) lblmesaj.caption = Mid (strörnek, 7, 3) lblmesaj.caption = Mide (strörnek, 7) H geri döner Hayat geri döner Hayat çok güzel geri döner Hayat çok güzel geri döner l geri döner güzel geri döner çok geri döner çok güzel geri döner If Left ( txtyön.text, 1) = K Then lblyön.caption = Kuzey End If Len Fonksiyonu String ifadesinin uzunluğunu belirlemek için Len fonksiyonunu kullanabilirsiniz. Kullanıcının ne kadar karakter girdiğini veya bir liste elemanının ne kadar uzun olduğunu bilme ihtiyacı duyabilirsiniz. Len Fonksiyonu Genel Form Len (Stringİfadesi) Len fonksiyonundan dönen değer string ifadesindeki karakter sayısıdır. Len Fonksiyonu Örnekler Len ( Visual Basic ) Len (txtgiriş.text) Len (strseçim) 12 değerini geri verir Metin kutusundaki karakter sayısını geri verir String değişkenindeki karakter sayısını geri verir If Len (txtad.text) = 0 Then MsgBox Bir isim giriniz, vbinformation, Kayıp Veri End If Metin kutusunun ve bir kombo kutusunun metin kısmının iki yeni özelliği ile SelStart ve SelLenght- Len fonksiyonunu birleştirebilirsiniz. SelStart özelliği ilk seçili karakterin

pozis yonunu geri verir veya ayarlar, SelLenght özelliği ise seçili karakter sayısını geri verir veya ayarlar. Bir metin kutsunun ve bir kombo kutusunun Text özelliğinin o anki içeriğini kullanıcı tab ile o kontrole geldiğinde seçili duruma getirebilirsiniz. Private Sub txtad_gotfocus ( ) O anki girişi seçer With txtad.selstart = 0.SelLenght = Len (.Text) End With End Sub Seçim en baştadır Karakter sayısını seçer Bir Liste Kutusu Elemanlarının Seçimi Liste kutusu çok fazla sayıda birime sahip olduğunda, kullanıcı bir metin kutusuna giriş yaparken denk gelen birimin liste içinden seçili duruma gelmesiyle kullanıcılara yardım edebilirsiniz. Bu metot Visual Basic çalışırken Help başlığında arama yaparkenki durum ile benzerlik göstermektedir. Örneğin siz s harfini girerken liste çabucak s ile başlayan liste elamanlarının gösterilmesine kaydırılır. Daha sonra ikinci harf olan e yi siz girerken liste hemen aşağı doğru kayar ve se ile başlayan ilk seçim seçili duruma geçer. Aşağıdaki örnek bu özelliği yerine getirmektedir. Private Sub txtkahve_change ( ) Liste içersinde ilk karşılık gelen yere geçiş Dim intindeks As Integer Dim blnbul As Boolean Do While Not blnbul And intindeks < lstkahve.listcount If UCase (Left (lstkahve.list (intindeks), Len (txtkahve.text))) = _ UCase (txtkahve.text) Then lstkahve.listindex = intindeks blnbul = intindeks + 1 End If intindeks = intindeks + 1 Loop End Sub Bilginin Yazıcıya Gönderilmesi Şimdiye kadar herhangi bir yazıcı çıktısını elde etmek için PrintForm metodunu kullandık. PrintForm metodunu kullandığınızda tüm çıktı çekici bir metin olarak değil de bir grafik gibi üretilir. Formları yazdırmanın yanında rapor yaratmaya veya küçük bir bilgiyi yazıcıya göndermeye ihtiyacınız olacaktır. Print metodunu kullanarak bir form üzerindeki (printer nesnesi üzerindeki) metni yazdırabilirsiniz.

Visual Basic interaktif bir ortam olan Windows altında çalışılması amacıyla tasarlanmıştır. İnteraktif programlarda form yaratmak oldukça basit olmasına rağmen yazdırma aynı düzeyde basit olmamaktadır. Visual Basic i kullanan çoğu profesyonel programcı yazıcı raporlarını biçimlendirmek için ayrı bir yardımcı program kullanırlar. Bazı şirketler rapor tasarımı ve yazdırma işini yapan yardımcı programlar satmaktadırlar. Printer Nesnesinin Yazdırılması Printer.Print (Nesne.Metot) kullanarak yazıcıdaki çıktı üzerinde düzenlemeler yapabilirsiniz. Visual Basic çıktınızı üzerinde düzenleme yapabilmeniz için hafızasında bir Printer nesnesi oluşturur. Her ne zaman Printer.Print metodunu kullanırsanız, çıktınız Printer nesnesine eklenir. İşinizi bitirdiğinizde veya EndDoc veya NewPage metodu kullanıldığında Visual Basic, Printer nesnesinin içeriğini yazıcıya gönderir. Satırların Formatlanması Visual Basic önceki sürümlerinden beri bir yazım satırının biçimlendirmede virgül, noktalı virgül gibi noktalama işaretlerini ve aynı zamanda Tab ve Spc fonksiyonunu kullanmaktadır. Çıktı satırı yazdırılacak olan birden çok parçayı içeriyorsa bu parçalar virgül ve noktalı virgül ile birbirlerinden ayrılacaklardır. Bu parçalar nesne içeriği, değişkenler veya sözel ifadeler olabilir. Printer nesnesini yazdırdığınızda kullanılmakta olan fonta dikkat etmek gerekir. Genelde yazdırma oransal fontlarla yapılmaktadır, bunun anlamı bir karakter için ayrılan alanın karakterden karaktere değişmesidir. Örneğin w harfi i harfinden daha çok alan kaplamaktadır. Eğer her karaktere ayrılan alanın aynı olmasını istiyorsanız Courier gibi sabit genişlikli font kullanabilirsiniz. Virgüller Çıktı sayfası ön ayar olarak her tab da beş sütun atlama özelliğine sahiptir. Her sütuna yazdırma alanı (print zone) olarak isim verilmektedir. Çıktının sonraki yazdırma alanına ilerlemek için bir virgül kullanınız. Printer.Print, R n R komutu R n R ifadesini ikinci yazdırma alanına yazdırır. İki tane virgül kullanarak sonraki ikinci yazdırma alanına ilerleyebilirsiniz: Printer.Print Ad,, Telefon Ad string ifadesi birinci yazdırma alanına ve Telefon stringi üçüncü yazdırma alanına yerleşecektir. İkinci yazdırma alanında sanki boş bir karakter varmış gibi yazdırma işlemine devam edileceğine dikkat ediniz. Yazdırma alanının büyüklüğünü kontrol etmenin tek yolu font büyüklüğünü değiştirmektir. Bir yazdırma alanının genişliği kullanılmakta olan fontun ortalama karakter

büyüklüğüne bağlı olarak 14 karakterdir. Sonuç olarak i ve t gibi çok sayıda dar karakter kullanıyorsanız 14 karakterden daha fazla alanınız olacak ve m, w gibi çok sayıda geniş karakter kullanıyorsanız bir yazdırma alanında 14 karakterden daha az karakter kullanabilirsiniz. Bu yüzden bazı durumlarda yazdırma alanının genişliğini aşabilirsiniz. Kavramsal olarak yazdırma alanı bir kelime işlemcideki tab sekmesi duraklarına benzemektedir. Her virgül Bir sonraki tab sekmesi durağına atla anlamına gelmektedir. Bazen beklediğinizden daha fazla yer kaplayan bir ifadeyi yazdırabilirsiniz ( sonraki yazdırma alanının başına geçer). Bu durumda koyulan virgül belki sütunlarınızın doğru bir şekilde hizalanmamasına neden olarak izleyen yazdırma alanına atlar. Aşağıdaki örnekte etiket alanı dördüncü yazdırma alanına yerleşecektir. Printer.Print The average amount of sales for the current mont is, _ lblsales.caption Yazdırma alanı sayısı tek bir satır sayısı için geçerli olan sayıyı aştığında çıktı yazdırılacak olan sayfada bir sonraki satıra otomatikman atlamaktadır. Printer.Print 1, 2, 3, 4, 5, 6 komutu çıktı olarak şunu verecektir: 1 6 2 3 4 5 Noktalı Virgüller Birimleri ayırmak için birbirini takip eden yazdırma alanlarında ilerlemek istemiyorsanız birimler arasında noktalı virgül kullanınız. Eğer birimler arasında boşluk bırakırsanız Visual Basic sizin için kodlarda otomatikman noktalı virgül ekler. txtad.text in değeri Efe olsun bu durumda kod satırı aşağıdaki gibi olsun: Printer.Print Ad: ; txtad.text Komutu çıktı olarak şunu verecektir. Ad: Efe String ifadesinin içerisinde sol tarafında bırakılan boşluk sayısının tam olarak göründüğü gibi yazıcıdan çıkacağına dikkat ediniz. Tırnak işaretinin içersinde boşluk bırakmazsanız bir birimin önceki birime bitişik olarak yaslanabilecektir. Noktalı virgül çıktı içersinde boşluk bırakılmasını sağlamaz sadece yazdırılacak birimleri listelemenin bir aracıdır. Satır Sonu Virgül Ve Noktalı Virgüller Bir çıktı satırında son karakter bir virgül veya noktalı virgül ise ardına gelen Print metodu bir sonraki satıra ilerlemeksizin aynı satırda devam edecektir.

Printer.Print First this, Printer.Print Then this Komutu çıktı olarak şunu verecektir First this Then this İlk Print metodu satır sonu virgülü ile sonlandığından yazdırma alanı kuralı hala geçerliliğini korumaktadır. Printer.Print First this ; Printer.Print Then this Komutu çıktı olarak şunu verecektir First this Then this Boş Satır Yazdırma Yazdırdığınız raporda boş bir satır yazdırmak istiyorsanız, Print metodunu herhangi bir birime referans vermeksizin kullanın. Printer.Print Boş bir satır yazdırır Tab Fonksiyonu Doğru olarak yaslanmış, düzgün alanlara ayrılmış ve hoş bir program çıktısının yaratılması zor bir görev olabilmektedir. VB formatlama sürecinde yardımcı olacak fonksiyonlara sahiptir. Tab fonksiyonunu kullanarak yazdırılan satır üzerindeki değişkenlerin ve sabitlerin yerleşimini kontrol edebilirsiniz. Tab fonksiyonunda çıktının gözükmesini istediğiniz sütun pozisyonunu belirlersiniz. (Not: Visual Basic sütun pozisyonunun belirlenmesinde ortalama karakter genişliğini kullanmaktadır) Sütun pozisyonunun argüman değeri sayısal bir değer olmalıdır (oransal değerler yuvarlanacaktır) fakat sabit, değişken veya sayısal bir ifade (hesaplama) olabilir. Sütun pozisyonu tam bir değerdir, satırdaki birinci pozisyonun anlamı Tab(1) dir ve yirminci pozisyon Tab(20) dir. Tab Fonksiyonu Genel Form Tab (Pozisyon) Tab Fonksiyonu Örnekler Printer.Print Tab(20) ; R n R for Reading n Refreshment Printer.Print Tab(10) ; Ad ; Tab(30) ; Ücret Printer.Print Tab(intSütun1) ; txtad.text ; Tab(intSütun2) ; curücret

Tab fonksiyonundan sonra virgül koymayınız, belirlenen pozisyona atlandıktan sonra bir sonraki yazdırma alanına sıçrayacaktır ve böylece Tab fonksiyonunuzun etkisini ortadan kalkdıracaktır. Spc Fonksiyonu Satır üzerinde yatay boyutlandırmayı kontrol eden diğer bir fonksiyon Spc (space) fonksiyonudur. Spc fonksiyonu Tab fonksiyonundan son yazdırılan birimden itibaren satır üzerinde ne kadar sayıda boşluk bırakılmasının belirlenmesi konusunda ayrılmaktadır. Spc Fonksiyonu Genel Form Spc (KarakterSayısı) Spc Fonksiyonu Örnekler Printer.Print Tab(20) ; Ad ; Spc(5) ; Tel ; Spc(5) ; Adres Yazdırma satırı üzerinde Tab ve Spc fonksiyonlarını birleştirebileceğinize dikkat ediniz. String Ve Nümerik Verinin Hizalanması VB nümerik ve string verilere yer ayırırken birazcık farklı davranmaktadır. String değerler birimler arasında ekstra yer ayırmaksızın yazdırılır. Örneğin Printer.Print Tatlı ; Kek Komutu çıktı olarak şunu verecektir TatlıKek Nümerik veriler ilave boşluğa sahiptirler. VB her sayıdan önce işaret alanı için bir boşluk vermektedir. Negatif değerlerde eksi işareti görünür fakat pozitif değerlerde alan boş bırakılmaktadır. VB ayrıca her sayısal değeri takip eden bir boşluk eklemektedir. Printer.Print 1; 2; 3; -1; -2; -3 Komutu çıktı olarak şunu verecektir 1 2 3-1 -2-3 String ve nümerik verileri birleştirmek istiyorsanız boşluk bırakmadaki farklılığın farkında olmalısınız. Aşağıdaki örnek yazdırma alanını kullanarak string ve nümerik verileri birleştirmektedir. Printer.Print Birim, Miktar Printer.Print Makas, 10 Printer.Print Kayalar, -2 Printer.Print Kirpi, 1

Bu ifadenin çıktısı aşağıdaki gibi hizalanmış olarak gösterilecektir: Birim Miktar Makas 10 Kayalar -1 Kirpi 1 Fontun Seçilmesi Yazdırılan çıktının fontunun değiştirilmesi bir nesnenin fontunun değiştirilmesine benzemektedir. Printer nesnesi Font nesnesine referans veren Fon özelliğine sahiptir. Bununla birlikte Properties penceresini ve Font özelliklerini değiştirmek için Font diyalog kutusunu kullanamazsınız, özellikleri kodlarda değiştirmelisinizdir. Font adını değiştirirken hedef yazıcı tarafından desteklenen bir font adını girdiğinizden emin olunuz. İpucu: Bir nesnenin font diyalog kutusunu gösterin ve olanaklı font isimlerinin notunu alınız. Yazıcınızın hangi fontları desteklediğinden emin değilseniz Windows un yüklü olduğu herhangi bir yazıcıda doğru olarak çalışan fontlara (Arial ve New Times Roman gibi) bağlı kalınız. Örnekler Printer.Font.Name = Times New Roman Printer.Font.Size = 12 İlk birimin yazdırılmasından önce font ismi ve büyüklüğünün değiştirilmesine sadece bir kere ihtiyacınız olacaktır. İşin veya Sayfanın Sona Erdirilmesi NewPage metodu o anki sayfayı yazıcıya gönderir ve printer nesnesinin hafızasını temizler böylece yeni bir sayfaya başlayabilirsiniz. EndDoc metodu o anki sayfayı yazıcıya gönderir ve yazdırma işine son verir. Dikkat: Programınız sonlandırıldığında Visual Basic otomatikman bir EndDoc yollamaktadır. Printer.NewPage Printer.EndDoc Sayfayı gönderir ve yeni bir sayfaya başlar Sayfayı gönderir ve yazdırma işini sonlandırır Bilgiyi yazıcıya gönderdikten sonra NewPage veya EndDoc metotlarını kullanınız. Örnek Private Sub PrintReport ( ) Printer.Print Printer.Print Tab(13) ; Aylık Satışların Özeti Printer.Print Printer.Print Printer.Print Tab(10) ; Satışlar ; Tab(30) ; Kazançlar Printer.Print Tab(10) ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Printer.Print

Printer.Print Tab(10) ; FormatCurrency(mcurToplamSatışlar) ; _ Tab(30) ; FormatCurrency(mcurToplamKazanç) Printer.EndDoc End Sub Bir Liste Kutusunun İçeriğinin Yazdırılması Bir liste kutusunun içeriğini yazıcıya göndermek amacıyla liste kutusu özelliklerini ve döngü tekniklerini birleştirebilirsiniz. ListCount özelliğini kullanarak ne kadar iterasyon yapılacağını bilebilirsiniz. List özelliği listedeki değerleri yazdırmanıza imkan verecektir. Private Sub mnudosyayazdırtümü_click ( ) Printer nesnesindeki kahve çeşnisi kombo kutusunun içeriğini yazdırır Dim intindeks As Integer Dim intsondeğer As Integer intsondeğer = cbokahve.listcount 1 For intindeks = 0 To intsondeğer Liste indeksi sıfırdan başlar Printer.Print cbokahve.list (intindeks) Next intindeks Printer.EndDoc End Sub Listedeki Seçili Birimin Yazdırılması Bir liste kutusundan veya kombo kutusundan bir birim seçildiğinde, seçili birim Text özelliğinde tutulur. Seçili birimi yazdırmak için Text özelliğini kullanabilirsiniz. Printer.Print Tab (10) ; Kahve Çeşnisi: ; cbokahve.text Printer.Print Boş satır Printer.Print Tab (10) ; Şurup Çeşnisi: ; lstşurup.text