Professional Documents
Culture Documents
Hedefler
Program nedir?
Programc kimdir?
Programlama Dilleri
Programlama Dillerinin Tarihesi
Programn Derlenmesi
Bu modln sonunda:
Bir programn alma prensibini aklayabilecek,
Programc kavramn tanmlayabilecek,
Deiik programlama dillerinin geliimini aklayabilecek,
Derleme ilemini tanmlayabileceksiniz.
2 Modl 1: Programlamaya Giri
Program Trleri
Sistem Programlar
Srcler (Driver)
Uygulamalar
Sistem programlar
Her program, bir iletim sistemi zerinde alr. letim sistemi, dier
programlarn almas iin gerekli olan kaynaklar ve ortam salar.
Srcler (Driver)
letim sistemi ile donanm aygtlar arasnda iletiim salayan programlardr.
Klavye ile yazlan yazlarn alglanmas iin, klavyenin src program
kullanlr.
Uygulamalar
letim sistemi zerinde alan, kullanclarn ihtiya duyduu ilevleri
salayan programlardr.
Konu: 1 3
Veri Girii
lem
Sonu
Kullanc lem
Bilgisayar
Veri girii
Printer
Sonu
sonunda, yazlan kaynak kodlar bilgisayarn anlayaca tek dile evrilir. Makine
dili denilen bu dil, sadece 1 ve 0 saylarndan olumaktadr.
Programc trleri
Mimar
Gelitirici
Test Mhendisi
Mimar
Programlarn yazlmas iin gerekli teknolojileri belirleyen, gerekli durumlarda
programn daha kolay ynetilmesi iin kk paralara ayran programcdr.
Konu: 1 5
Gelitirici
Program yazan kiidir.
Test mhendisi
Programn gelitirilmesi aamasnda, hatann kaynaklarn bulan ve
gelitiricilere raporlayan programcdr.
Sz dizimi (Syntax)
Bir dil, kendine ait kelimeler ile konuulur. Programlama dillerinin de benzer bir
davran vardr. Programlama dillerindeki bu kelimeler, programlama dilinin
anahtar kelimeleridir - komutlardr.
Gramer
Programlama dillerini kullanmak iin sadece kelimeleri bilmek yeterli deildir.
Eer anlaml bir ekilde bir araya getirilemiyorsa, bu kelimeler hibir anlam
ifade etmez.
Semantik (anlamsal)
Bir dili, kelimeleri doru bir gramer kullanm ile bir araya getirerek kullanabiliriz.
Ancak konuulan kelimelerin ne iin kullanld da nemlidir. Bir programlama
dilinin zelliklerinin nasl ve ne iin kullanld da, bu dilin semantiidir.
rnein bir finans program, Yeni Trk Liras cinsinden bir miktar dolara
evirecektir. Yaplacak ilem o andaki parite deerini merkez bankasndan
ektikten sonra, girilen miktar bu deerle arpp kullancya gstermektir.
Kullanlan programlama dili ARP, GSTER, ETLE komutlar ile bu ilemi
gerekletirecektir.
(Ref: http://www.cs.sfu.ca/~cameron/Teaching/383/syn-sem-prag-meta.html)
Yksek seviye programlama dillerine Visual Basic .NET, Microsoft Visual C++
dillerini rnek verebiliriz. C ile iletim sistemi yazlabilindiinden daha alt seviye
bir dil olarak deerlendirilir.
Bilgisayarlar, icat edilmeleriyle birlikte belli bir ii yapmak iin bir dizi komutlara
ihtiya duymulardr. En bata ok basit ilemler yapan bu komutlar zamanla
nesneye ynelme (object orientation) gibi ileri seviyede zellikler kazanmtr.
1957 ylnda IBM, dk seviye (makine diline yakn) bir programlama dili olan
FORTRAN dilini ortaya kard. FORTRAN ile beraber basit mantksal
karlatrmalar, dngler, (true-false) lojik ve (integer, double) saysal
deikenler kullanlmaya baland.
1972 ylnda C, Pascal dilindeki birok hatay gidererek ortaya kt. C dili ilk
defa Unix iletim sistemini yazmak iin kullanlmaya balanmtr. C, dk
seviye bir dil olmas, kuvvetli giri k ilemleri salamas gibi birok zellii ile
iletim sistemleri yazlmasnda tercih edilmitir.
C++ dilini, Sun Microsystems tarafndan kartlan Java takip etti. Java dilinin
kullanm alanlar, nesneye ynelik bir programlama dili olmas ve beraberinde
getirdii p toplama GC (garbage collection) gibi performans arttrc zellikleri
ile byk lde geniledi.
(Ref:
http://www.princeton.edu/~ferguson/adw/programming_languages.shtml)
Konu: 1 9
Programlar yazldktan sonra, almaya uygun hale getirilene kadar bir dizi
ilemden geer. Bu ilemi gerekletiren, programlama dilinin derleyicisidir.
(Compiler)
zet
Program nedir?
Programc kimdir?
Programlama Dilleri
Programlama Dillerinin Tarihesi
Programn Derlenmesi
1. Var olan bir metin dosyasn (.txt) grntlemek iin Notepad programn
kullanabiliriz. letim sistemi, dosyay kullanclara gstermek iin monitr ile
iletiim kurar. Monitr iletim sisteminden gelen verilerle gerekli grntleme
ilemlerini yapar.
Sorunun Temeli
Microsoft, vizyonu dorultusunda att admlarn yazlm gelitiricilere yansyan
sonularn srekli izliyordu ve yazlm gelitiricilerin sorunlarn u balklar
altnda ele alyordu.
Uygulamalarn, sistemlerin ve kurumlardaki birimlerin ve farkl
kurumlarn arasndaki iletiim sorunu.
alanlarn ihtiya duyduklar verilere, ihtiya duyduklar an,
kesintisiz, hatasz ve gvenli bir ekilde ve istedikleri platformdan
eriebilmeleri.
Uygulama gelitirme srecinde, gelitiricilerin altyap kodlar ile
uramas ve bunun sonucunda uygulama gelitirme ve test sresinin
uzamas.
Bir uygulamann farkl platformlarda altrlabilmesi iin ayn ilemleri
gerekletirecek kodlarn tekrar tekrar yazlmas ihtiyac.
Microsoft.NET Platformu her trl yazlm gelitirme ihtiyacna ynelik hazr bir
altyap sunarak uygulama gelitiricilerin windows, web ve mobil platformlara
ynelik uygulamalar, ok daha hzl, kolay ve gl bir ekilde
gelitirebilmelerine olanak tanyordu. Uygulama gelitiriciler ifreleme, kimlik
dorulama, yetkilendirme, soket iletiimi, her trl veri kaynana ynelik
veritaban ilemleri, xml ve web servisi teknolojilerine kadar burada
saymadmz (editrler bir modln 100 sayfay gemesine pek scak
bakmyorlar) ve hatta milyonlarca snf ve fonksiyonlar hazr ekilde
karlarnda grdler. Bu gne kadar gnler, haftalar ve hatta aylar harcayarak
gelitirmeye altklar bu yaplarn hepsini karlarnda kullanma hazr bir
ekilde grmekten de son derece memnunlard.
Modl 3: Microsoft Visual Studio Arayz
Hedefler
Bu modl, Microsoft Visual Studio ara yzn tanmay salar ve etkili bir
biimde kullanmay gsterir. Ev ve i yerindeki alma ortamn dzenlemek
daha verimli almay salar. Yazlm gelitirilirken de allan ortam tanmak
ve kiiselletirmek rahat allmas asndan nemlidir.
alma Sayfalar
Sekmeler halinde gsterilir
Ara ubuklar
Men komutlarna grsel ara yz
zel ara ubuklar tanmlanabilir
Menler
Paneller
Sabitlenebilir, Kayan, Gizlenebilir pencereler
rnek:
o Visual Studio alma ortamn an. Balang sayfas karnza
kar. (Eer balang sayfasn gremiyorsanz, Help mensnden
Show Start Page komutunu sein)
o View mensnden, Web Browser alt mensne iaret edin ve Show
Browser komutunu sein. Visual Studio amak istediimiz Internet
taraycs iin yeni bir sayfa oluturur.
o CTRL tuuna basl tutarak TAB tuuna basn. Atnz Internet
taraycsndan balang sayfasna dner.
Konu: 1 3
Visual Studio bize kendi ara ubuklarmz oluturma imkn da verir. Farkl
ilevlere sahip komutlar gruplanp, kiisel ara ubuu oluturulabilir.
rnek:
o Balang sayfasnn stndeki bir ara ubuuna
sa tklayn. kan men, var olan tm ara
ubuklarn listeler. aretli olan ubuklar eklenmi
ubuklardr. Bu listeden Web ara ubuunu sein.
o Web ara ubuu zerine ift tklayn. Bu ilem
ubuu floating (kayan men) duruma getirir.
Tekrar ift tklandnda, ubuk Dockable (sabit
duruma) gelir.
o Ara ubuuna sa tklayn. Listenin en altndaki
Customize (zelletir) komutunu sein.
o Toolbars sekmesinde New (yeni) komutuna tklayn.
kan pencerede ubua Genel lemlerim yazn.
Ok tuuna basn. Visual Studio verilen isimde bir
ara ubuu oluturur ve kayan durumda
grntler.
4 Modl 3: Microsoft Visual Studio Arayz
Categories Commands
Tools Options
File Exit
View Show Web Browser
Window Close All Documents
Menler
Birok alma ortamnn yapt gibi Visual Studio da, benzer eler zerinde
ilevleri olan komutlar menler halinde gruplar. Ara ubuklarndan fark sabit
Konu: 1 5
Paneller
Paneller, Visual Studio iindeki pencerelerdir. alma ortamnda birok panel
bulunmasyla beraber, Solution Explorer, Toolbox, Object Browser, Properties,
Watch, Output, Search Result, Task List gibi ska kullandmz paneller
vardr.
rnek:
o View mensnden Other Windows alt mensn iaret edin ve
Favorites panelini sein. Panelin balnda, biri Auto Hide dieri
Close olan iki dme grlr.
o Auto Hide dmesine basarak paneli gizleyin.
o Paneli tekrar sein, Window mensnden Auto Hide zelliini
sein. Daha sonra ayn menden Floating zelliini sein. Panelin
tanabildii ancak sabitlenemedii grlr.
o Panel seili iken, Window mensnden Dockable zelliini sein. Bu
sefer panelin, tand zaman alma ortamnn herhangi bir yerine
sabitlenebildii grlr.
o Panel seili iken, Window mensnden Hide komutunu sein. Paneli
tekrar amak iin bu etaplar tekrarlayn.
6 Modl 3: Microsoft Visual Studio Arayz
Projects
Oluturulan Visual Studio projeleri listesi
Online Resources
nternet zerindeki kaynaklar
Kod rnekleri, gncellemeler, makaleler
My Profile
alma ekline gre zel ayarlar
Visual Studio alma ortamn atmz zaman karmza ilk gelen balang
sayfasdr. Bu sayfa blmden oluur.
Projects
O ana kadar altnz projeleri gsterir. Bu menden son projelerinizi
aabilirsiniz. Son projelerde gzkmeyen bir proje (Open Project) veya yeni
bir proje (New Project) aabilirsiniz.
Online Resources
Bu blmde rnek uygulamalar (Find Samples) ipular bulabilir, en yeni
teknolojileri, gncellemeleri veya en son eklenen haberleri takip edebilir, MSDN
ktphanelerinde kod rnekleri, makaleler aratrabilirsiniz.
My Profile
Bu blmde alma eklinize gre bir profil seebilirsiniz. Profiller; kullanlan
ksa yollara, panellerin yerlerine ve grnmlerine, Visual Studio yardmn
kullanrken yaplan filtrelemeye gre deiir.
PUCU: Giri sayfasn kapattktan sonra, Help mensnden Show Start Page
seeneine tklayarak aabilirsiniz.
8 Modl 3: Microsoft Visual Studio Arayz
Konu 3: Menler
File, Edit
Dosya, metin dzeni ilemleri
View, Window
Paneller, alma sayfalar grnmleri
Project, Build, Debug
Proje, derleme ve hata ayklama ilemleri
Tools, Help
Yardmc aralar, yardm seenekleri
File (Dosya)
Tm dosya ilemleri bu men altndadr. Standart ara ubuu ile bu
mendeki baz komutlara ulalr. File mensndeki komutlar ile:
o Yeni bir proje, bir dosya veya bo bir solution (zm) oluturmak,
o Oluturulmu bir projeyi veya var olan bir dosyay amak,
o Web zerinde paylatrlm dosya veya projeler amak,
o Ak olan dosya veya projeleri kapatmak,
o Recent Files (en son kullanlan dosya veya projeler) amak,
o Dosyalar kaydetmek, yazdrmak mmkndr.
Edit (Dzenle)
Tm yaz dzenleme ilemleri iin, bu mendeki komutlar kullanlr. Text
Editor ara ubuu da bu mennn komutlarna ksa yoldur. Edit
mensndeki komutlar ile:
o Copy, Cut, Paste, Delete, Select All gibi temel ilemler
o Find And Replace, Go, Bookmark gibi navigation ilemleri
Konu: 1 9
Environment (Ortam): Sayfa dzeni ve grnm ayarlar, yaz tipi (font) ve renk
ayarlar, komutlar iin ksa yol ayarlar, Internet taraycs ayarlar, yardm ve
dinamik yardm ayarlar yaplr.
rnek:
o Tools mensnden Options komutunu sein.
o Sol panelde bulunan Environment mensnden Fonts and
Colors (Yaz dzeni ve Renkler) sekmesine gelin.
o Sa panelde bulunan Display items (eleri Listele)
mensnden Text alannn sein ve Item background (e arka
plan) zelliini Light Grey (Ak Gri) olarak belirleyin. Tm
sayfalarn arka plan rengi ak gri olacaktr.
10 Modl 3: Microsoft Visual Studio Arayz
Window (Pencere)
Sayfalarn ve panellerin grnmleri ve zelliklerini deitirmek iin kullanlan
komutlar bu men altnda bulunur. Tm ak alma sayfalar bu men altnda
grld gibi, istenen sayfa seilerek n plana getirilir. Ayrca, Close All
Documents (Tm Sayfalar Kapat) komutu ile ak olan btn sayfalar kapatlr.
Auto Hide All (Tmn Otomatik Gizle) komutu ile, sabit hale getirilmi tm
paneller gizlenir.
Help (Yardm)
Visual Studio alma ortamnda ok sk kullanlan yardm panellerinin
grnm bu men ile salanr. Bu men ile ayrca, kullanlan Visual Studio
alma ortamnn srm hakknda bilgi alnr, son gncellemeler kontrol edilir,
teknik destek iin gereken e-posta adreslerine veya telefonlara ulalr.
Visual Studio alma ortamnda projeler bir solution (zm) altnda alr. Bir
solution iine farkl dilde ve tipte projeler dhil edilebilir. Visual Studio ile bir
solution aldnda, Solution Explorer paneli ile solution iinde bulunan tm
projeleri, ilgili dosya ve klasrleri grntler. Panelde koyu yaz tipinde gzken
proje, solution iindeki balang projesidir.
Refresh (Yenile)
Proje dosyalar zerindeki deiikliklerin gzkmesini salar.
Show All Files (Btn Dosyalar Gster)
Seilen projenin bulunduu klasrdeki tm dosyalar ve alt klasrleri gsterir.
Panelde gzken beyaz eler proje iine dhil edilmemi elerdir. Projede
kapsamnda kullanlmak istenen eler (rnein arka plan resmi), zerine sa
tklanp Include In Project komutu ile projeye dhil edilmelidir.
Properties (zellikler)
Paneldeki tm elerin zellikleri, Properties komutu ile grlebilir. Bu komut
seildiinde, enin zellikleri Properties paneli ile grntlenir. (Properties
paneli bu modlde detayl olarak ele alnacaktr.)
12 Modl 3: Microsoft Visual Studio Arayz
Visual Studio alma ortamn, Toolbox panelindeki nesnelere yeni isim verme,
nesneleri silme veya panele yeni sekmeler ve nesneler ekleme imknlarn da
salar.
rnek:
o View mensnden Toolbox panelini sein
o Panelde herhangi bir yere sa tklayn ve Show All Tab (Btn Sekmeleri
Gster) komutunu sein
o Windows Forms sekmesinde TextBox nesnene sa tklayn. kan menden
Rename Item (Ad Deitir) komutunu sein ve Metin Kutusu yazn.
o Metin Kutusu nesnesini tayarak sekmenin en stne getirin.
14 Modl 3: Microsoft Visual Studio Arayz
En sk kullanlan kaynaktr
MSDN (Microsoft Developer Network) ktphaneleri
Dynamic Help
erii, seilen nesnelere gre deiir
F1 ile dinamik yardm
Search
Zengin arama seenekleri
Index
Alfabetik konu dizini
Contents
MSDN ktphanelerinin hiyerarik grnm
DKKAT: Visual Studio Yardmn kullanmak iin, MSDN (Microsoft Developer Network)
yardm ktphanelerinin yklenmi olmas gerekiyor.
Visual Studio Yardm dosyalarnn yaps balk, ierik, ilikili konular (See
Also) blmlerinden olumutur. Ayrca her yardm dosyasnn altnda
bulunan Send Comments balants ile konu hakknda yorum gnderilebilir.
Dynamic Help paneli, ierii otomatik olarak deien bir aratr. Kod yazarken,
panellerde veya sayfalarda nesneler seildiinde, kullancnn baka bir ilem
yapmasna gerek kalmadan, o nesne hakknda yardm konularn listeler. F1
tuuna bastmz zaman ise seilen nesneye ait, Dynamic Help panelindeki
ilk yardm konusu yeni bir sayfada grntlenir.
Search (Arama)
Index (Dizin)
Yardm dosyalarndaki btn konular alfabetik srada dizer. Filtreleme ilevi,
arama panelinde olduu gibidir. Bu panelin zellii, aranacak kelime yazlrken,
bu kelime ile balayan tm konularn alfabetik srada gsterilmesidir. Bu
ekilde, aranan konulara ok hzl bir ekilde ulalabilir.
Eer bir konu ile ilgili birden fazla yardm dosyas varsa, Index Results (Dizin
Sonular) panelinde bu seenekler gsterilir.
Contents (erik)
Contents panelinde, tm MSDN ierii konulara gre hiyerarik yapda,
kategorilere ayrlm olarak gsterilir. Bu panelde de ayn ekilde filtreleme
yaplarak istenmeyen ierikler kartlabilir.
Dynamic Help
1. Help mensnden Show Start Page komutuna tklayn.
2. Help mensnden Dynamic Help komutunu seerek Dynamic Help
panelini an. Panelde gsterilen ilk konunun ismi nedir?
Konu: 1 19
Contents
1. Help mensnden Sync Contents komutuna tklayn. Button
Members konulu yardm dosyas hangi konularn altnda bulunuyor?
2. Contents panelinin ilk bal olan Visual Studio .NET altnda, Gettings
Assitance altnda, "Using Help in Visual Studio .NET altnda, Tips for
Using the Help Keyword Index konulu yardm an. File mensnden
Print komutunu sein ve sayfay yazdrn.
DKKAT: Sayfay yazdrmak iin bilgisayarnza bal bir yazc bulunmas gerekiyor.
PUCU: Yardm dosyalarn yazdrmak, zellikle uzun metinlerde, kolay alma imkn
salar.
Search
1. Help mensnden Search komutunu sein. Look for metin kutusuna
Visual Studio .NET yazn. Search in titles only, Match related
words seeneklerini iaretleyin. Search dmesine basn.
Ka tane konu bulundu? En st dereceli konu nedir?
2. Search in previous results seeneini iaretleyin. MSDN
kelimesini aratn. Ka konu bulundu?
3. Search in previous results seeneini kaldrn. MSDN kelimesini
tekrar arattnz zaman ka konu bulunur? Search in titles only
seeneini kaldrnca ka konu bulunur?
4. Search Results ve Search panellerini kapatn.
Index
1. Help mensnden Index komutuna tklayn. Look for metin kutusuna "file
types" yazn. lk kan konu nedir?
2. Filtre olarak Visual C# sein. lk hangi konu gsteriliyor?
3. File Types konusu zerine tklayn. Alan sayfada Solution Files (.sln and
.suo) adl blm inceleyin.
4. Project Files balnda, Visual Basic and Visual C# alt bal altnda,
File Types and File Extentions in Visual Basic and Visual C# konusuna
tklayn.
20 Modl 3: Microsoft Visual Studio Arayz
zet
1. Visual C# profili iin, Object Browser paneline hangi ksa yolla ulalr?
2. Visual Studio ortamnda tm sabitlenmi panelleri gizlemek iin hangi men
komutu kullanlr?
3. Properties panelindeki zellikler alfabetik olarak nasl sralanr?
Modl 4: Visual C# .NET le Windows Tabanl
Programlama
Hedefler
HERKES N UNIX
2 KISIM I:
NOT: Yazdnz kodun ne anlama geldiini belirtmek iin yorum satrlar kullanmak,
kodlar okumay kolaylatrr. Yorum satrlar // ile balayarak yazlmaldr.
HERKES N UNIX
BLM 1: 3
zellikler
Grnm, yerleim, davranlara zgdr
Properties paneli
Text, Name, Size, BackColor
Metotlar
Yaplan ilemler
Parametre ile, Parametresiz arlrlar
Focus, Select, Hide, Show
Olaylar
Balarna gelen ilemlerdir
Click, MouseDown, Enter
zellikler
zellikler, kontrollerin grnm, yerleimi veya davranlarna zel
niteliklerdir. rnein bir Button kontrolnn Text zellii, zerinde yazan
yazya erimemizi salar.
Kontrollerin zellikleri, tasarm annda Properties panelinden ulalabilecei
gibi, kod tarafnda da okunup deitirilebilir.
Kontrollerin birok zellii hem okunabilir hem de deitirilebilir. Ancak baz
zellikler salt okunur (ReadOnly) ve salt yazlr (WriteOnly) olabilir. Bu tip
zellikler Properties panelinde gzkmezler.
HERKES N WINDOWS
4 KISIM I:
Text (Yazi)
Kontrollerin Text zellii, zerinde grntlenen yazdr. Bu zellik alma
annda ska okunup deitirilerek, kullancyla iletiim salanr.
TextBox kontrolne girilen bir deerin okunup Label kontrolne yazlmas iin,
kontrollerin Text zellikleri kullanlr.
Name (sim)
Name zellii kontrollere ulamak iin kullanlan zelliktir. Birok kontroln Text
zellii ayn olabilir. Ancak her biri ayr birer nesne olduklar iin, Name
zellikleri benzersiz olmas gerekir.
textBox2.Text = textBox1.Text;
label1.Height = 10;
label1.Width = 20;
BackColor (Arka plan rengi)
Kontrollerin arka plan renginin ayarland zelliktir. Bu zelliin deeri, Color
(renk) nesnesinde tanml deerler ile belirlenir.
ForeColor (nalan rengi)
Kontrollerin zerindeki yazlarn rengini belirler.
HERKES N UNIX
BLM 1: 5
Visible (Grnr)
Kontrollerin ekranda grnp grnmediklerini belirleyen zelliktir. True ve
False olmak zere iki deer alabilir. Boolean veri tiplerinden bu modlde
bahsedilecektir.
Metotlar
// be karakter se
textBox1.Select(8, 5);
}
Olaylar:
Click (Tklandnda)
Kontrol zerine tkland zaman tetiklenen olaydr. Windows tabanl
programlamada en sk kullanlan olaylardan biridir.
MouseDown (Mouse tuu basldnda)
Fare, kontroln zerindeyken herhangi bir tuuna basld zaman gerekleen
olaydr. Bu olay, Click olayndan nce alr.
MouseUp (Mouse tuu brakldnda)
Fare, kontroln zerindeyken baslan tu brakld zaman alr.
Enter (Girildiinde)
Kontrol seildii veya zerine odaklanld zaman gerekleen olaydr.
Leave (kldnda)
HERKES N UNIX
BLM 1: 7
PUCU: Olaylarn alma sralarn test etmek iin tm olay yordamlarna, mesaj kutusu
karan (MessageBox.Show) kod yazn. Daha sonra projeyi altrp kontroller zerinde
yaplan deiikliklere gre olaylarn alma sralarna bakn.
HERKES N WINDOWS
8 KISIM I:
Form
Windows uygulamalar, Windows kontrollerinin tutulduu pencereler olan
formlardan oluur. Bir Windows projesi ald zaman Form kontrol otomatik
olarak eklenir. kinci bir form eklemek iin Project mensnden Add Windows
Form komutunu seilir. Proje alt zaman balang formu grntlenir.
Balang formu projenin zelliklerinden deitirilir.
Visual Studio ortamnda formlar, tasarm sayfas ve kod sayfas olmak zere iki
farkl sayfada grntlenir. Tasarm sayfas, formun ve zerindeki kontrollerin
grnmlerini kolay bir ekilde deitirmeyi salar. Visual Studio bu sayfada
yaplan deiiklikleri kod sayfasnda e zamanl olarak gnceller. rnein bir
Button kontrolnn geniliini fare ile deitirdiimiz zaman, kod sayfasnda bu
HERKES N UNIX
BLM 1: 9
Formlar ald zaman Load olay gerekleir. Eer form, balang formu olarak
seilmise, proje balad zaman altrlmak istenen kodlar bu olayn
yordamna yazlr.
Button
Bir Windows dmesini temsil eder. Button kontrolne basldnda Click
olay tetiklenir. Bu olay gerekletii zaman yaplacak ilemler,
ButtonIsmi_Click yordamnda yazlr.
TextBox
Bir Windows metin kutusunu temsil eder. Kullanclarn deer girerek program
ile haberlemesini salamak amacyla kullanlr. TextBox kontrolndeki yaz
deitii zaman TextChanged olay gerekleir.
HERKES N WINDOWS
10 KISIM I:
Label
Bir Windows etiketini temsil eder. Kullancya, form zerinde bir yazy
gstermek amal kullanlr. Bu yaznn grnm, Label kontrolnn baz
zellikleri ile deitirilir.
TextAlign (Yaz Hizalama)
Yaznn Label kontrol zerinde nerede duracan belirler.
ComboBox
Bir Windows alan kutusunu temsil eder. ComboBox kontrol, kullanclarn
baz deerleri alan bir listeden semesini salar. Listeye tasarm annda veya
alma annda e eklenebilir. Listeye e eklemek iin kontroln Items
zelliinden faydalanlr.
HERKES N UNIX
BLM 1: 11
ListBox
Bir Windows liste kutusunu temsil eder. Kontroldeki eler sabit bir liste olarak
grntlenir. ListBox kontrolne e ekleme ilemi, ComboBox kontrolndeki
ilemlere ile ayndr. ComboBox kontrolnden fark, birden fazla e seilebilir
olmasdr.
HERKES N WINDOWS
12 KISIM I:
Timer
Bir Windows sayacn temsil eder. Saya almaya balad zaman, belirli
zaman aralklarnda Tick olay gerekleir. Timer kontrolnn Interval
deeri, Tick olaynn ka milisaniyede bir gerekleeceini belirler. rnein
Interval deeri 2000 olan bir saya, Tick olaynda yazlan kodlar iki
saniyede bir altracaktr.
Sayac balatmak iin kontroln Start metodu, durdurmak iin ise Stop
metodu kullanlr. Enabled zellii, sayacn aktif olup olmadn belirler.
HERKES N UNIX
BLM 1: 13
HERKES N WINDOWS
14 KISIM I:
Kodlarn yazlmas
1. Formun zerine sa tklayn ve View Code komutunu sein.
2. Alan kod sayfasnda, KalanSure isimli bir deiken tanmlayn.
HERKES N UNIX
BLM 1: 15
Konu 4: MessageBox
MessageBox, kullancya bilgi gstermek iin alan mesaj kutusudur. Bu mesaj
kutusu drt eden oluur.
Text (Yaz): Mesaj kutusunda verilmek istenen bilgiyi tutan yazdr
HERKES N WINDOWS
16 KISIM I:
HERKES N UNIX
BLM 1: 17
int sayi;
string kelime;
HERKES N WINDOWS
18 KISIM I:
int int;
short (sayi);
int 333sayisi;
string kelime;
string <isim>;
namespace NameSpace1
{
class Class1
{
int SinifDegiskeni;
void Sub1()
{
int YordamDegiskeni;
while(true)
{
int DonguDegiskeni;
}
}
void Sub2()
{
int YordamDegiskeni2;
}
}
}
HERKES N UNIX
BLM 1: 19
const int x = 1;
HERKES N WINDOWS
20 KISIM I:
Veri Tipleri
Veri Tipleri
Boolean
Byte String yazi = "Veri tipleri rnekleri;
Int64 Long
Single
String
NOT: Int16, Int32, Int64 .NET veri tipleridir. Visual C# dilindeki karlklar short,
int, long veri tipleridir.
bool b = true;
char karakter = "A";
HERKES N WINDOWS
22 KISIM I:
struct
struct Nokta
{
int x;
int y;
struct Ucgen
{
Nokta n1;
Nokta n2;
Nokta n3;
}
HERKES N UNIX
BLM 1: 23
Dizilerle almak
Diziler
Ayn tipte veriyi bir arada tutar
Birden fazla boyutlu olabilir
string [] isimler;
string [] isimler = new string[10];
string [] isimler;
// ...
isimler = new string[4];
Length, Rank
GetLength, Clear, Reverse, IndexOf
Dizi deikenleri, ayn tipte birok veriyi bir arada tutmay salar. Benzer
ilemlerde kullanlan deikenler bir dizi altnda listelenebilir. rnein
kullancdan alnan isimler String tipinde bir dizi iinde toplanabilir.
string [] isimler;
string [] isimler;
// ...
isimler = new string[4];
isimler[0] = Ali;
isimler[1] = Ahmet;
isimler[2] = Mehmet;
isimler[3] = Aye;
MessageBox.Show(isimler[3]);
HERKES N WINDOWS
24 KISIM I:
Burada dizinin ilk boyutunda 5 tane eleman vardr. lk boyuttaki her eleman iin
kinci boyutta 6 eleman bulunur. Dolaysyla toplam 30 elemanl bir dizidir. Bu
dizide bir boyut daha olsayd, o boyutun her eleman iin dier boyutlardaki 30
eleman bulunacakt.
ok boyutlu dizilerin eleman saylar boyutlarndaki eleman saylarn arparak
hesaplanabilir.
ok boyutlu dizilerin elemanlarna ulamak iin, her boyut iin indis gstermek
gerekir.
matris[0, 0] = 1;
IndexOf
lk parametrede verilen dizide, ikinci parametrede verilen deeri arar.
Aranan deer dizide bulunursa indisi, bulunamazsa -1 dndrr.
float [] notlar = {78.1, 99.9, 100, 12.2};
float maxNot = 100;
MessageBox.Show(Array.IndexOf(notlar, maxNot).ToString());
// Aranan maxNot deerinin indisi = 2
HERKES N WINDOWS
26 KISIM I:
Debug
Debug
BreakPoint ile alma durdurulur
Deikenlerin durumlar izlenir
Autos, Locals, Watch panelleri
Kodlar arasnda ilerlenerek her etapta
deikenler izlenir
Step Into, Step Over, Step Out, Continue
Visual Studio Debug arac, alma annda kodlar arasnda satr satr
ilerleyerek hatalar bulmay salar. ncelemeye balamak istenen kod satr
zerinde bir BreakPoint (durma noktas) konarak, hata ayklaycnn bu satr
altrlmadan nce orada durmas salanr.
HERKES N UNIX
BLM 1: 27
Kodlar arasnda ilerlemek ve hata ayklamaya devam etmek iin drt yol vardr.
Bu komutlar Debug mensnden veya Debug ara ubuundan ulalabilir.
1. Step Into
Kod satrnda bir yordam altrlacaksa, bu yordamn iine girer. Bu
yordam farkl bir yerde ise, ilgili sayfa alr ve hata ayklamaya devam
edilir.
2. Step Over
Herhangi bir yordam iine girmeden, iindeki kapsam alannda almaya
devam eder.
3. Step Out
Bulunan yordamdan karak hata ayklamaya devam eder.
4. Continue
Birden fazla durma noktas yerletirilmise, bir sonraki noktaya kadar
almaya devam eder.
Hata ayklama, altrlacak hibir satr kalmadnda durur ve uygulama
normal almasna devam eder. Durma noktalar kaldrlarak ya da pasif hale
getirilerek uygulamann durmas engellenebilir.
Btn durma noktalarn kaldrmak iin Debug mensnden Clear All
BreakPoints komutu, pasif hale getirmek iin Disable All BreakPoints
komutu verilmelidir. Durma noktalarn aktif hale getirmek iin tekrar ayn komut
seilmelidir.
HERKES N WINDOWS
28 KISIM I:
Altrma
Bu uygulamada veri tiplerinin kullanm yerlerine, diziler ile alma rneklerine
baklacaktr.
ogrenci1.Isim = "Ali";
ogrenci1.Soyad = "Veli";
ogrenci1.Sube = "C";
ogrenci1.OrtalamaNotu = 67.1;
ogrenci1.DevamEdiyor = true;
ogrenci2.Isim = "Ahmet";
ogrenci2.Soyad = "Veli";
ogrenci2.Sube = "C";
ogrenci2.OrtalamaNotu = 72.9;
ogrenci2.DevamEdiyor = true;
ogrenciler[ 0 ] = ogrenci1;
ogrenciler[ 1 ] = ogrenci2;
ogrenci.Isim = "Veli";
ogrenci.Soyad = "Veli";
ogrenci.Sube = char.Parse( "D" );
HERKES N UNIX
BLM 1: 29
ogrenciler[ 2 ] = ogrenci;
Dizi ilemleri
1. Forma bntOzellikleriGoruntule isminde bir Button kontrol ekleyin ve
Click olaynda, diziden indisi verilen renciyi alan kodlar yazn.
int indis = Int32.Parse(textBox1.Text);
Ogrenci secilenOgrenci = new Ogrenci();
secilenOgrenci = (Ogrenci)ogrenciler[indis];
Aritmetik ilemler
1. Forma btnOrtalamaHesapla isminde bir Button kontrol ekleyin ve
Click olaynda snfn ortalamasn hesaplayan kodu yazn.
double not1 = ogrenciler[ 0 ].OrtalamaNotu;
double not2 = ogrenciler[ 1 ].OrtalamaNotu;
double not3 = ogrenciler[ 2 ].OrtalamaNotu;
Konu 8: Operatrler
Operatrler
Aritmetik Operatrler
arpma *, Blme /, Toplama +, karma -
s alma ^, Mod alma (Mod)
Karlatrma Operatrleri
Kk <, Kk Eit =<, Byk >,
Byk Eit >=, Eit =, Eit Deil <>
String Operatrleri
&, Split, ToCharArray, Insert, Remove
Aritmetiksel Operatrler
Bu operatrler aritmetik ilemlerinde, saylarla veya say tutan ifadelerle
kullanlr.
arpma
int sayi = 100;
sayi = 200 * 2;
Blme
double bolum;
bolum = sayi / 23;
karma
HERKES N UNIX
BLM 1: 31
Toplama
int toplam;
toplam += sonuc;
// Bu ifade, toplam = toplam + sonuc ile ayn anlama gelir
PUCU: Aritmetik operatrleri, eittir ifadesi ile beraber kullanlrsa, ilem deikenin
kendisi ile yaplr.
Mod alma
int kalan = toplam % 42;
// Sonu, toplam deikenindeki deerin 42 ile
// blmnden kalan saydr.
Karlatrma Operatrleri
Bu operatrler veri tiplerini birbirleriyle karlatrmak iin kullanlr. Bu
operatrler ile yaplan ilemlerin sonucunda true ya da false deeri dner.
Karlatrma operatrleri yalnzca say tipleri zerinde yaplmaz.
Kk
double sayi = 1.5;
float sayi2 = 1.3;
Kk Eit
Byk
sayi2 > sayi
// Sonu: False
Byk Eit
sayi2 >= sayi
// Sonu: False
Eit
sayi2 == sayi
// Sonu: False
Eit Deil
sayi2 != sayi
// Sonu: True
HERKES N WINDOWS
32 KISIM I:
String Operatrleri
String tipleri zerinde gerekletirilen ilemler iin tanml operatrlerdir.
String tipindeki deikenleri birbirine balama + operatr ile
gerekleir.
string isim, soyad;
string IsimSoyad = isim + " " + soyad;
Split
Belirtilen ayraca gre yazy bler, kan sonu String dizisinde tutulur.
Ayra karakterleri sonu dizisinde yer almaz.
string Kelime = "Kelime1:Kelime2:Kelime3";
string [] parcalar;
parcalar = Kelime.Split(':');
// parcalar dizisinin eleman olur:
// Kelime1
// Kelime2
// Kelime3
string [] parcalar2;
parcalar2 = Kelime.Split('m');
// parcalar2 dizisinin drt eleman olur:
// Keli
// e1:Keli
// e2:Keli
// e3
ToCharArray
String deerinin belli bir blmndeki karakterleri ya da tm karakterlerini,
Char dizisi olarak dndrr.
char []harfler = "Kelime".ToCharArray();
Insert
String tipinde bir deikenin deerine, ilk parametrede belirtilen yerden
balayarak ikinci parametredeki deeri ekler. Ancak bu deikenin
deeriyle oynamaz. Yeni oluturulan String ifadesini dndrr.
string sayilar = "0123456789";
string yeniSayilar;
yeniSayilar = sayilar.Insert(5, "--- Rakamlar ---");
MessageBox.Show(yeniSayilar);
// Sonu: 01234--- Rakamlar ---56789
Remove
lk parametrede verilen deerden balayarak, ikinci parametredeki deer
kadar karakter, deikenden karlr.
yeniSayilar = yeniSayilar.Remove(4, yeniSayilar.Length - 4);
MessageBox.Show(yeniSayilar);
// Sonu: 0123
HERKES N UNIX
BLM 1: 33
zet
HERKES N WINDOWS
Modl 5: Algoritma ve Dump Coding
Hedefler
Algoritma kurmak
Dump Coding zmlemesi
Ak diyagramlar
HERKES N UNIX
2 KISIM I:
Algoritma
in yaplma srasnn belirlenmesidir.
, en kk etaplara ayrlr.
Olas tm hatalarn tespit edilmesi,
gerekli kontrollerin yaplmas gerekir.
Algoritmann yn belirlenmelidir
Veri girii
Kararlar
lemler
veriler, ilemi balatan kiiden veya belirtilen bir kaynaktan alnabilir. Bu bilgiler
salanmadan ilem devam etmez.
Algoritmalar adm sras ile alr ve karar yaplar sonucunda farkl bir yere
ynlendirilmedii mddete, bir sonraki adm ile ilemeye devam eder.
HERKES N UNIX
4 KISIM I:
Dump Coding
Kark algoritmalarn zmlenmesi
Deikenlerin deerleri yazlarak ileyi takip
edilir.
HERKES N UNIX
BLM 1: 5
Ak Diyagram
Bala Bitir
Veri Girii
Karar Verme
Veri Taban
Ekran
Printer
Fonksiyon
Devam
Bala Bitir
Algoritmann hangi aamadan balayacan ve ne zaman biteceini
gsteren semboldr. Bir algoritmay temsil eden ak diyagramnda, bir
tane Bala ve bir tane Bitir sembol olmaldr.
HERKES N UNIX
6 KISIM I:
Veri Girii
Kullancdan ve baka bir kaynaktan alnan verilerin isimlerini tutar.
Karar Verme
Karar yapsn belirten semboldr. stnde koul ifadesi belirtilir.
Veri taban
Veri tabannda okuma veya yazma ilemi yapldn gsterir.
Ekran
zerinde yazlan yaznn bilgi olarak ekranda gzkeceini belirtir.
Printer
zerinde yazlan yaznn yazcdan karlacan belirtir.
lem
Bir ilem yaplacan belirten semboldr. Her ilem iin ayr bir fonksiyon
sembol kullanlmas, ak diyagramn daha anlalr klar.
HERKES N UNIX
BLM 1: 7
Fonksiyon
lem sembolne yazlamayacak byklkte ilemler, alt ilem olarak bu
sembolle belirtilir.
Bilet Satma
Bir tiyatro uygulamasnn srekli gerekletirecei temel ilem bilet satmaktr.
Bu ilemi gerekletirmek iin gerekli kodlar yazlmadan nce, algoritma
kurulmaldr.
HERKES N UNIX
8 KISIM I:
ay Demleme
Bu rnekte, bir ay demleme ileminde yaplmas gereken ilemleri, kontrol
edilmesi gereken olaylar ieren algoritma kurulur.
HERKES N UNIX
BLM 1: 9
HERKES N UNIX
10 KISIM I:
zet
Algoritma kurmak
Dump Coding zmlemesi
Ak diyagramlar
HERKES N UNIX
Modl 6: Karar Yaplar ve Dngler
Hedefler
if
If
Koul ifadesi True ise If blouna girilir.
Verilen koul saland zaman yaplan
ilemleri tutar.
if karar yaps, bir koul saland zaman yaplacak ilemleri kapsar. Kontrol
edilecek koul ifadesinin sonucu true deerini alrsa, kme parantezleri
arasndaki kodlar altrlr.
if(Koul)
{
double gecmeNotu;
short finalNotu = short.Parse(textBox1.Text);
short vizeNotu = short.Parse(textBox2.Text);
Koul Operatrleri
Koul Operatrleri
And
Or
Not
AndAlso
OrElse
Veri tipleri ve deikenler zerinde kontrol yaplrken birden fazla koula ihtiya
duyulabilir. Bu durumda, koullar birbirleriyle karlatracak operatrler
kullanlr. Bu kontrollerden dnen deerler Boolean tipinde olduu iin, koul
operatrleri de bu deerler zerinde ilem yaparlar.
& (And)
Bu ifade, verilen koullarn kesiimini alr. Eer tm koullarn deeri true ise
sonu da true olur. En az bir tane false deeri olan koul varsa, sonu false
olur.
| (Or)
Bu ifade, verilen koullarn birleimini alr. Eer tm koullarn deeri false ise
sonu false olur. En az bir tane true deeri varsa sonu true olur.
&& (AndAlso)
Koullardan biri False ise, dierleri kontrol edilmeden False deeri
dndrlr. Bu tip bir kullanm, birok koulun kontrol edilmesi gerektiinde
performans arttrr.
string [] dizi;
// Diziye eleman ekleme ilemleri
// ...
Bu rnekte, dizinin ilk eleman zerinde bir kontrol yaplmak isteniyor. Ancak
diziye eleman eklenmemise, ilk elemana ularken hata retilecektir.
Dolaysyla dizinin uzunluunu da kontrol etmek gerekir. Kontrol And ifadesi ile
yaplsayd, dizi elemann noktayla bitip bitmedii ve dizinin uzunluu kontrol
edilecekti. Bu durumda i ie if ifadeleri ile uzun bir kod yazlacakt. Pek ok
kyaslama gerekecek ve performans decekti. Ancak burada, dizi uzunluu
koulu salanmazsa, dier koula geilmeden if kontrolnden klr.
|| (OrElse)
Koullardan biri True ise, dierleri kontrol edilmeden True deeri dndrlr.
string Rol;
// Veritabanndan, kullancnn rol alnr.
// ...
! (Deil)
Bir koulun deerini tersine evirir. Koul false ise true, true ise false olur.
Koul ! Koul
true false
false true
if else
If Then Else
If koulunda salanmayan tm durumlar iin
Else ifadesi kullanlr.
ElseIf
Koullarn salanmad durumlarda, yeni
kontrollerin yaplmas iin kullanlr.
Select Case
ElseIf ilevini grr ancak yazlmas okunmas
daha kolaydr.
if(Koul)
{
//Dier kodlar
}
else
{
//Dier kodlar
6 KISIM I:
rnek: Her 100 milisaniyede bir, formun renginin siyahken beyaz olmas,
beyazken ise siyah olmas iin, formun renginin kontrol yaplmas gerekiyor.
else if
if deyimindeki koul salanmadysa else deyimindeki kodlar alyordu.
Ancak baz durumlarda else iinde de kontrol yapmak gerebilir.
if(Koul)
{
}
else if(Koul2)
{
}
else if(Koul3)
{
rnek: Gnn saatine gre karlama mesaj kartmak iin, saat deikeni
birok kez kontrol edilmesi gerekir. Sadece bir if kontrol yaplsayd, sadece
iki karlama mesaj kartlabilirdi.
switch
switch deyimi else if ile benzer ilevi grr, ancak okunmas daha kolaydr.
switch ile seilen bir deerin kontrol edilmesi Case ifadelerinde yaplr.
switch (saat)
{
case 9:
case 10:
case 11:
karsilamaMesaji = karsilamaMesaji.Insert(0,
"Gnaydn,");
break;
case 12:
case 13:
case 14:
case 15:
karsilamaMesaji = karsilamaMesaji.Insert(0,
"yi gnler,");
break;
case 16:
case 17:
karsilamaMesaji = karsilamaMesaji.Insert(0,
"yi akamlar,");
break;
default:
karsilamaMesaji = karsilamaMesaji.Insert(0,
"Merhaba,");
break;
}
Bir grup RadioButton kontrol iinden sadece bir tanesi seilebildii iin,
seilen kontrol bulmak iin else if yapsnn kullanm yeterli olacaktr.
if (RadioButton1.Checked)
{
}
else if (RadioButton2.Checked)
{
}
else if (RadioButton3.Checked)
{
}
BLM 1: 9
if (CheckBox1.Checked)
{
if (CheckBox2.Checked)
{
if (CheckBox3.Checked)
{
Uygulama
Bu uygulama kullancya, stok durumuna veya tarihe gre deien
grntleme seenekleri sunarak, rn katalogu tantlr. rnler kategorilere
gre ayrlm bulunmaktadr ve ComboBox kontrolleri ile filtrelerden biri
seilmedii takdirde ilem gereklemez.
Stok durumu filtresi ile sadece stokta bulunan ya da stokta kalmam
satlmakta olan rnler listelenebilir. Tarihe gre filtreleme ile yeni kan rnler
ya da tm rnler gzlenebilir.
Uygulamada, ak diyagramndan koda gei aamas rahat bir ekilde
grlecektir.
Algoritmann incelenmesi
Uygulamann algoritmas balang ve rn ekleme algoritmas olarak ikiye
ayrlmtr.
Balang algoritmasnda rn kategorisinin, stok durumu ve tarih filtrelerin
seilip seilmedii kontrol yaplr. Eer herhangi biri seilmedii zaman
kullancya ilgili mesaj gsterilir ve algoritmadan klr. Tm kontroller
yapldktan sonra, ilgili kategorideki rnlerin listeye eklenmesi iin dier
algoritma devreye girer.
10 KISIM I:
Kodlarn yazlmas
Bu uygulamada kodlarn tamam btnListele dmesinin Click olayna
yazlacaktr. Kodlar arasndaki numaralar ak diyagramnda ilenen durumlara
referans gnderir. Algoritma 1, balang algoritmasndaki numaralar;
Algoritma 2, rn ekleme algoritmasndaki numaralar ifade eder.
1. btnListele dmesine ift tklayn ve Click olayna gelin. Dmeye
her basldnda liste kutusuna ard ardna eler eklenmemesi ve
hata mesajlarnn temizlenmesi iin gerekli kodlar yazn.
lblMesaj.Text = "";
lbUrunler.Items.Clear();
// Algoritma 1 - 1
if ( cmbStokDurumu.SelectedIndex == -1 &&
cmbTarihSirasi.SelectedIndex == -1 ) {
lblMesaj.Text = "Stok Durumu ve Tarih Sras
seiniz.";
// Algoritma 1 - 2
}
else if ( cmbStokDurumu.SelectedIndex == -1 ) {
lblMesaj.Text = "Stok Durumunu seiniz.";
// Algoritma 1 - 3
}
else if ( cmbTarihSirasi.SelectedIndex == -1 ) {
lblMesaj.Text = "Tarih Srasn seiniz.";
// Algoritma 1 - 4
}
else if ( lbKategoriler.SelectedIndex == -1 ) {
lblMesaj.Text = "Kategori seiniz.";
}
else {
// Algoritma 1 - 5
3. if else if deyimlerinde tm kontroller yapldktan sonra else
ifadesine geilir. Algoritmann ak bundan sonra rn ekleme
ilemiyle devam edecektir.
switch ( lbKategoriler.SelectedIndex ) {
case 0:
// Sadece stokta bulunan rnler eklenir.
// Algoritma 2 - 2
lbUrunler.Items.Add( "MSDN Tv Visual C# 5" );
lbUrunler.Items.Add( "MSDN Tv Visual C# 4" );
if ( cmbStokDurumu.SelectedIndex == 1 )
{
lbUrunler.Items.Add( "Yazlm Mhendislii Balang
Dzeyi" );
lbUrunler.Items.Add( "Access Giri" );
}
if ( cmbTarihSirasi.SelectedIndex == 0 )
{
lbUrunler.Items.Remove( "Yazlm Uzmanl 1" );
}
break;
case 2:
lbUrunler.Items.Add( "Visual Studio 6.0" );
lbUrunler.Items.Add( "Visual C# .NET Standard 2003" );
lbUrunler.Items.Add( "Visual C# C# Standard 2003" );
if ( cmbStokDurumu.SelectedIndex == 1 )
{
lbUrunler.Items.Add( "Visual Studio .NET 2005" );
}
if ( cmbTarihSirasi.SelectedIndex == 0 )
{
lbUrunler.Items.Remove( "Visual Studio 6.0" );
}
break;
// Algoritma 1 - 6
lblSecilenUrunler.Text = lbKategoriler.Text + "
Kategorisindeki rnler";
}
14 KISIM I:
Konu 2: Dngler
Hedefler
For
For Next
Saya, belirtilen aralkta olana kadar ilem
yaplr.
Step ifadesi, sayacn artaca ya da azalaca
miktar belirler.
Next ifadesi, sayac otomatik artrr ya da azaltr.
int fahr;
int derece;
for (int derece = 0; derece <= 100; derece += 10)
{
fahr = derece * 1.8 + 32;
Label1.Text += fahr + " Fahrenheit= ";
Label1.Text += derece + " Celcius" + "\r\n";
}
byte i = 0;
for ( i=1; i<=4; i++ )
{
tablo[ 0, i ] = "Yazar " + i;
tablo[ i, 0 ] = "Kitap " + i;
tablo[ ( ( int )( r.Next(3)) ) + 1, ( ( int )(
r.Next(3) ) ) + 1 ] = "X";
}
tablo isminde String deerleri tutan bir dizi oluturulur ve dizinin ilk satrna
yazar isimleri, ilk stununa da kitap isimleri konur. For dngsnn sayac
birden balad iin dizinin 0,0 koordinatl ilk elemanna deer atanmaz.
break;
}
}
Label1.Text += "\n";
}
Tablonun her eleman kontrol edilir ve X deeri bulunduu zaman yazar ismi
ve kitap ismi ekrana yazdrlr. Yazar isimleri, dizinin ikinci boyutunun ilk
srasnda tutulduu iin tablo[0,h] kodu ile ulalr. Kitap isimleri ise, dizinin
ilk boyutunun ilk srasnda tutulduu iin tablo[j,0] kodu ulalr. Buradaki h
ve j deikenleri o anda kontrol edilen elemann tablodaki indisleridir.
yazarlar kontrol edilir. Sonuta bir kitab birden fazla yazar yazmasna ramen,
grntlenecek olan sadece ilk yazardr.
While
While
Verilen koul gerekletii srece ilem
yaplr.
Sayac deitirmek iin kod yazlmas
gerekir.
int toplam = 0;
short sayac = InputBox("Bir say girin");
while (sayac > 0) {
toplam += sayac;
sayac -= 1;
}
while(Koul)
{
Birden ona kadar olan saylarn toplamn hesaplamak iin, bir ve on arasndaki
saylar tek tek yazlp toplanabilir. yi bir yntem olmasa da sonucu verir. Ancak
kullancnn girdii bir sayya kadar toplam almak iin bir dng gerekir.
int toplam = 0;
int sayac = int.Parse(txtSayiGirisi.Text);
while (sayac > 0)
{
toplam += sayac;
sayac -= 1;
Burada kullancnn girdii saydan itibaren sfra kadar giden bir dng kurulur.
Dng sayacn sfrdan byk olduu her durum iin alacaktr. Saya
sfrlandnda ise dngden klr.
20 KISIM I:
Sonsuz Dngler
While dngs saya ile kullanlrken, sayacn deitirilmesine dikkat edilmesi
gerekir. Eer saya deitirilmezse, While ifadesindeki koul hep true deeri
alaca iin sonsuz dngye girilir.
for(int i = 0; i <= 9; i += 3)
{
MessageBox.Show("Sonsuz dng");
i -= 4;
}
Uygulama
Bu uygulamada, bir satran tahtas zerindeki bir filin hareket alan hesaplanr.
Satran tahtas rasgele talarla doldurulur. Verilen bir koordinatta bulunan fil,
apraz hareketlerine gre nereye ilerleyebilecei bulunur. Eer filin nnde bir
ta varsa, bu tan bulunduu yere ve daha gerisine ilerleyemeyecektir. Filin
drt bir yanna apraz olarak hareket edebilecei gz nnde bulundurulmas
gerekir.
Tahtann doldurulmas
1. Satranc isminde bir Windows projesi an.
2. Form zerine lbHareketAlani isminde bir ListBox, btnGoster isminde
bir Button ekleyin.
3. btnGoster dmesinin Click olayna 8 x 8 boyutunda bir dizi tanmlayp
dolduran kodlar yazn. Bu dizi bool tipinde deerler tar. Verilen indisteki
elemann deeri true olmas, o koordinatta bir tan bulunduunu belirtir.
lbHareketAlani.Items.Clear();
int a,b;
if (sonuc == 1)
{
tahta[ a, b ] = true;
}
else
{
tahta[ a, b ] = true;
}
}
}
Hareket Alan
Tahta zerindeki bir fil, drt apraz yne doru ilerleyebilir. Dizide apraz olarak
ilerlemek x ve y koordinatlarnn eit oranda artmas ve azalmas demektir.
Dizide ilerlerken x ve y koordinatlarnn sfrdan kk ve dizinin boyutundan
byk olmamasna dikkat edilmelidir. Drt farkl yne gre, koordinatlar artacak
ya da azalacaktr.
i = 1;
while ( x + i < tahta.GetLength( 0 ) & y - i >=
0 ) {
if ( !( tahta[ x + i, y - i ] ) ) {
lbHareketAlani.Items.Add( (x +
i).ToString() + " - " + (y - i).ToString() );
i += 1;
}
else {
break;
}
}
i = 1;
while ( ! ( x + i >= tahta.GetLength( 0 ) | y +
i >= tahta.GetLength( 1 ) ) ) {
if ( !( tahta[ x + i, y + i ] ) ) {
lbHareketAlani.Items.Add( (x +
i).ToString() + " - " + (y + i).ToString());
i += 1;
}
else {
break;
}
}
Debug
Kodlar yazldktan sonra indislerin doru kullanldn, dnglerde mantksal
hatalar yaplmadn kontrol etmenin en kolay yolu hata ayklayc ile
almaktr. Bu rnekte birok dng kurulmutur, filin drt hareket ynndeki
engeller kontrol edilir. Tm hareketlerin ileyiine Debug ile kolayca baklr.
1. TextBox ile filin koordinatlarnn alnd yere BreakPoint koyun ve projeyi
altrn.
2. x ve y koordinatlarna 0 deerini girin. Filin, tahtann sol st kesinde
olduu varsaylr.
Bu durumda fil hangi ynde ilerleyebilir? Step Into komutu ile kodlar arasnda
ilerleyin ve hangi dng iine girdiini bulun.
3. Locals panelinde i deikeninin deerini izleyin. Ayn panelde tahta
dizisinin, o anda kontrol edilen deerine bakn. x ve y deerlerinin bir
fazlasn alarak, dier deerin true ya da false olduunu kontrol edin.
Buradaki hata mesaj, dizinin byklnn dnda bir indis verildiini belirtir.
try
{
Random r = new Random();
sayi = r.Next(3);
sonuc = 100 / sayi;
MessageBox.Show("Blme ilemi baarl, sonu: "
+ sonuc.ToString());
}
catch (Exception ex)
{
MessageBox.Show("Blme ilemi baarsz. Hata
Mesaj: " + ex.Message);
Bu rnekte retilen rasgele bir say ile blme ilemi yaplyor. Say sfr deerini
aldnda blme ilemi hata retecektir. Dolaysyla bu ilem Try blou iine
yazlmaldr. Catch blounda, ilemin baarsz olduunu belirten bir mesaj
BLM 1: 25
}
Catch
{
label1.Text = "Exception kullanlmyor.";
}
try
{
// Dosya a
// Dosya ilemleri
}
catch (Exception ex)
{
// Dosya alrken veya ilem yaplrken
// hata meydana geldi.
}
finally
{
// Dosya kapat
}
ifreleme:
Verilen yaznn ifrelenmesi etaptan oluur:
Yaznn karakterleri Ascii kodlarna evrilir.
Kodlar, gerekiyorsa balarna 0 konarak, 4 haneli yaplr ve sral halde
bir String deikeninde tutulur.
26 KISIM I:
Sral ekilde yazlan kodlar, bir batan bir sondan karakter alnarak
tekrar dzenlenir.
rnek: acf kelimesinin ifrelenmesi:
a c f karakterleri Ascii kodlarna evrilir.
a = 97
c = 99
f = 102
Kodlar balarna sfr konarak 4 haneli yaplr.
0097
0099
0102
Sral halde bir String deikenine yazlr.
009700990102
Saynn ortasna kadar, nce batan daha sonra sondan rakam
alnarak tekrar yazlr. Siyah olarak gsterilen rakamlar, dizinin
sonundan alnmtr.
0
02
020
0200
02009
020091
0200917
02009170
020091700
0200917009
02009170090
0 2 0 0 9 1 7 0 0 9 0 9 = ifre
Projenin almas
1. Visual Studio ortamnda, Sifreleme isminde bir Windows projesi an.
2. Alan forma lblSifre isminde bir Label kontrol, btnSfrele
isminde bir Button kontrol ekleyin. Bu kontroller kullancdan alnan
yaznn ifrelenip grntlenmesini salayacaktr.
3. Alan forma lblDesifre isminde bir Label kontrol ve
btnSfreyiCoz isminde bir Button kontrol ekleyin. Bu kontroller
ifrelenmi yaznn lblSifre kontrolnden alnarak, ifrelenip
grntlenmesini salayacaktr.
DKKAT: ifreleme algoritmasnn tm kodlar btnSifrele kontrolnn Click olayna
yazlacaktr.
BLM 1: 27
1. ifrelenecek yaznn girilmesi iin gerekli kodu yazn. Bir yaz girilene
kadar kullancdan yaz istemek iin do while dngsn kullann.
string yazi = null;
// Algoritma 1 - 1
do {
yazi = txtSifrelenecekYazi.Text;
}
while ( ! ( yazi.Length > 0 ) );
3. Karakterlerin Ascii kodu karln tutmak iin kodlar isminde bir dizi
yaratn. Karakterler dizisindeki tm elemanlar zerinde ilem yapmak
iin bir dng kurun. Karakterler dizisindeki her karakteri Asc hazr
fonksiyonu ile Ascii koduna evirin.
int i;
// kelimedeki her karakterin ASCII kodu alnr
for ( i=0; i<=uzunluk; i++ )
{
28 KISIM I:
// Algoritma 1 - 3
kodlar[ i ] = ( Microsoft.VisualBasic.Strings.Asc(
karakterler[ i ] ) ).ToString();
}
1. Dizideki kodlar sral bir ekilde tutmak iin SiraliKodlar adl bir
deiken tanmlayn. lk algoritmadan alnan Ascii kodlarn tutan
kodlar dizisi zerinde bir dng kurun.
string SiraliKodlar = null;
short j = 0;
while ( j <= kodlar.Length - 1 ) {
j += 1;
}
// Alogritma 2 - 1
string AsciiKodu = kodlar[ j ];
3. Eklenecek say kadar alacak bir dng iinde, sfr ekleme ilemini
yapn.
for ( i=0; i<=eklenecek - 1; i++ ) {
// Alogritma 2 - 3
AsciiKodu = AsciiKodu.Insert( 0, "0" );
}
// Alogritma 2 - 4
SiraliKodlar += AsciiKodu;
j += 1;
ifrenin oluturulmas
Bir nceki algoritmada elde edilen SralKodlar deikeni halen istenilen
ifreli yaz deildir. nk 4 haneli kodlar sral bir ekilde durur ve kolayca
zlebilir. ifrenin ilk bakta anlalmasn daha da zorlatrmak iin,
sralanm kodlar biraz daha kartrlr.
30 KISIM I:
j += 1;
}
DKKAT: 3 4 etaplarnda yazlacak tm kodlar Do While dngsnn iine
yazlacaktr.
3. ifreye, SralKodlarn j indisli karakterini ekleyin.
//Algoritma 3 - 3
Sifre &= Mid(SiraliKodlar, j + 1, 1)
// Algoritma 3 - 4
Sifre += SiraliKodlar.Substring(SiraliKodlar.Length - j - 1,
1 );
ifreyi zmek
ifreleme algoritmas kullanlarak oluturulan ifrenin zlmesi, izlenen
yollarn tersi uygulanarak gerekletirilir. Deifre algoritmas iki etaptan oluur.
1. Bir batan bir sondan karakter alnarak ifrelenen Ascii kodlar, sral
kodlar haline dntrlr.
2. 4 haneli olarak duran sral kodlar, karakterlere evrilir. Karakterler ard
ardna konarak deifre ilemi gerekletirilir.
rnek: acf kelimesinin ifrelenmi hali 020091700909 eklindedir. Bu kelime
ifrelenirken, karakterleri 4 haneli Ascii kodlarn evrilmi ve bu kodlarn
rakamlarnn sras deitirilmiti. Bu ifrenin nce 4 haneli sral kodlar haline
getirilmesi iin, ifrelenen yntemin tersi ilenir. Srayla okunan rakamlar nce
baa daha sonra sona yazlr.
BLM 1: 31
ifre: 0 2 0 0 9 1 7 0 0 9 0 9
Sral kodlara evrim:
Srann ilk yars Srann son yars
0 2
00 02
009 102
0097 0102
00970 90102
009700 990102
Sonu olarak elde edilen sral Ascii kodlar, srann ilk yars ve son yarnsn
birleimi olur: 0097 0099 0102
DKKAT: Srann ilk yars oluturulurken, rakamlar sona eklenir. Ancak srann son
yars oluturulurken rakamlar baa eklenir.
Bu 4 haneli kodlar String deerinden Integer deerine evrilir ve bu
deerlerin karl olan karakterler yazlr.
0097 97 a
0099 99 c
0102 102 f
Elde edilen karakterler birletirildiinde ifre zlm olur: acf
DKKAT: Deifre algoritmasnn tm kodlar btnSifreyiCoz kontrolnn Click olayna
yazlacaktr.
short i = 0;
32 KISIM I:
// Algoritma 1 - 3
// Srann son yarsnn bana rakam eklenir.
sonYarisi = sonYarisi.Insert( 0, Sifre.Substring(i , 1 ) );
}
3. Sral kodlarn ilk yars ve son yars birletirilir. Elde edilen deer, 4
haneli Ascii kodlarnn srayla tutulduu bir String deeridir.
// Algoritma 1 - 4
SiraliKodlar = ilkYarisi + sonYarisi;
i += 4;
}
DKKAT: 2 3 etaplarnda yazlacak tm kodlar Do While dngsnn iine
yazlacaktr.
2. Dng her seferinde bir Ascii kodu alr. Bu deeri tutan bir deiken
tanmlanr ve sral kodlardan 4 haneli rakam bu deikene atanr.
int AsciiKodu;
// Algoritma 2 - 1
AsciiKodu = int.Parse( SiraliKodlar.Substring(i , 4 ) ) ;
Dizinin Doldurulmas
1. Siralama isimli bir Windows projesi an
2. Form zerine biri lbSirasiz, dieri lbSirali isimli iki ListBox ekleyin.
Bu kontroller dizinin srasz ve sral halini listeler.
3. btnListele ve btnSirala isimli iki Button ekleyin.
4. Formun kod tarafna gein ve bir dizi tanmlayn. Bu dizi bir ok yordamn
iinde kullanlaca iin global olarak tanmlanr.
public string[] dizi = new string[ 5 ];
int i;
for ( i=0; i<=dizi.Length - 1; i++ ) {
ListBox1.Items.Add( dizi[ i ] );
}
34 KISIM I:
Dizinin Sralanmas
Sralama algoritmas, dizi zerinde bir dng kurar ve srayla dizinin bir
eleman seilir. Bu eleman iin bir baka dng kurulur ve seilen elemann
indisine kadar olan tm elemanlarla bir karlatrma yaplr. Kk olan srann
bana konmak iin byk olan ile yer deitirilir.
rnek
1. Dizinin 2. eleman seilir: Engin
Dizinin 2. indisine kadar olan elemanlarla karlatrlr. Engin deeri alfabetik
srada Enis deerinden kk olduu iin, bu iki deer yer deitirilir.
Sra, Engin Enis Tamer Kadir Fulya olur.
2. Dizinin 3. eleman seilir: Tamer
Dizinin 3. indisine kadar olan elemanlarla karlatrlr. Tamer deeri, Enis
ve Engin deerlerinden byk olduu iin sralama deimez.
3. Dizinin 4. eleman seilir: Kadir
Dizinin 4. indisine kadar olan elemanlarla karlatrlr. Kadir < Tamer
olduu iin bu iki deer yer deitirilir.
Sra, Engin Enis Kadir Tamer Fulya olur.
Kadir deeri , Enis ve Engin deerlerinden byk olduu iin sralama
deimez.
4. Dizinin 5. eleman seilir: Fulya
Dizinin 5. indisine kadar olan elemanlarla karlatrlr. Fulya < Tamer
olduu iin bu iki deer yer deitirilir.
Sra, Engin Enis Kadir Fulya Tamer olur.
Fulya < Kadir olduu iin bu iki deer yer deitirilir.
Sra, Engin Enis Fulya Kadir Tamer olur.
j -= 1;
}
}
While dngs, j deeri sfr olana kadar ve dizinin kontrol edilen deeri bir
nceki deerden kk olana kadar devam eder. Burada, dizi elemanlarnn
kontrolnn sadece bir defa (bir nceki eleman ile) yapld dnlebilir.
Ancak kk eleman yer deitirildiinde j deeri bir drlr. Dng tekrar
alt zaman, ayn eleman bu sefer dizinin kalan elemanlaryla karlatrlr.
AndAlso operatr, j deerinin sfr olma durumunda dier kontroln
yaplmamas iin kullanlr. Dier kontrolde dizi(j 1) ifadesi, negatif indisli
deere ulalmak istendii iin hata mesaj verir.
36 KISIM I:
DKKAT: kili arama yntemi sadece sral bir dizi zerinde uygulanabilir. Ya da elimizdeki
dizi ncelikle sralanr.
BLM 1: 37
NOT: kili arama ynteminde byk kk kyaslamas yapldndan dizinin sral olmas
gerekir.
Dizinin sralanmas
Arama algoritmas sral bir dizi zerinde alaca iin, dizi oluturulduktan
sonra sralanmas gerekir.
1. IkiliArama isminde bir Windows projesi an.
2. Forma btnAra isimli bir Button ve lbDizi adl bir ListBox ekleyin.
3. Kod sayfasna gein ve global bir dizi tanmlayn.
public int[] dizi = new int[ 11 ];
4. Formun Load olayna diziyi rasgele saylar ile doldurmak iin gereken
kodlar yazn.
int i;
Random r = new Random();
Arama algoritmas
kili arama algoritmas, dizi zerinde aranacak deeri nce srann ortasndaki
deerle karlatrr. Dizi kkten bye sral olduu iin, eer aranan deer
ortadaki deerden kkse arama, dizinin ilk yarsnda devam eder. Dizinin
dier yars aranan deerden byk deerler ierdii iin, aramaya dhil
edilmez.
rnek
Kkten bye sral dizi zerinde 9 deeri aranacaktr.
Dizi: 1 2 4 7 9 10 12 18
Kodlar
Arama algoritmasnn kodlar btnAra dmesinin Click olayna yazlacaktr.
1. Algoritma iin gerekli bas, son ve orta deikenlerini tanmlayn ve
balang deerlerini verin. Aranan deerin indisini tutmak iin de bir
deiken tanmlayn.
int son = dizi.Length;
int bas = -1;
int orta;
int indis;
3. Dizide aranacak deer kalmad zaman kan bir dng kurun. Son
ve bas deerleri arasndaki fark bire dtnde, dizide aranacak
deer kalmamtr.
while ( son - bas > 1 ) {
zet
Algoritma kurmak
Dump Coding zmlemesi
Ak diyagramlar
Hedefler
Void
Dn deeri olmayan kod bloklardr.
Birok yerde kullanlacak kodlar,
yordamlar ile gruplanmaldr.
void Temizle()
{
Label1.Text = "";
ListBox1.Items.Clear();
}
void YordamIsmi()
{
Uygulama iinde birok yerde alacak kodlar yordam iinde yazlr. Bu kodlar,
iine yazldklar yordamn ismi ile arlarak, istenilen yerde tekrar
altrlabilir. rnein bir uygulama balarken form zerindeki kontrollerin
temizlenmesi gerekiyorsa, bu kodlar bir daha yazmamak iin yordam
kullanlabilir.
void Temizle()
{
label1.Text = "";
listBox1.Items.Clear();
}
void YazilimUrunleriEkle()
{
ComboBox1.Items.Add("Yazlm Uzmanl");
ComboBox1.Items.Add("Yazlm Mhendislii");
Label1.Text = "Yazlm paketleri eklendi...";
}
Void DersleriListele()
{
switch( ComboBox1.SelectedIndex )
{
case 0:
Temizle();
ListBox1.Items.Add("Access - likisel
Veritabanlar");
ListBox1.Items.Add("Programlamaya Giri Ve
Algoritma");
ListBox1.Items.Add(".NET Framework");
ListBox1.Items.Add("VB.NET ile Windows Tabanl
Programlama");
ListBox1.Items.Add("ASP.NET ile Web Tabanl
Programlama");
case 1;
Temizle();
break;
default:
Temizle();
Label1.Text = "Yazlm paketi seiniz.";
break;
}
}
da, eklenen isimler deitii zaman bir problem ortaya kar. Bu durumda iki
yordamn birbirine bamll grlr. Bu rnekte, bir yordamda deiiklik
yapld zaman dier yordamn alma ekli de kontrol edilmelidir.
Label ve ListBox kontrollerini temizleyen kodlar sadece iki satr olduu iin
Temizle yordamnda yazlmayabilirdi. Ancak bu kodlar DersleriListele
yordamnda defa kullanld iin her deiiklikte, kodun yazld yer
bulunup gerekli dzeltmeler yaplacakt. rnein temizle ilemi, liste kutusunda
Dersler metni gzkecek ekilde deitirebilir. Bu durumda, deiiklii
sadece Temizle yordamnda yapmak yeterli olur.
Void Temizle()
{
Label1.Text = "";
ListBox1.Items.Clear();
ListBox1.Items.Add("Dersler: ");
}
Parametre Kullanm
Parametre Kullanm
Parametreler ile yordamlarn davranlar
deitirilir.
Yordamlarn baz deerlere gre farkl ilem yapmas istenebilir. lemin bal
olduu bu deerlere parametre veya argman denir. Yordamlar parametre
alacak ekilde tanmlanp, arldklar srada istedikleri parametreleri verilerek
kullanlr.
Void YordamIsmi(VeriTipi Parametre1, VeriTipi Parametre2, )
{
}
BLM 1 5
Void Yordam1()
{
//...
MesajGoster("1. Yordam iinden alr.");
}
Void Yordam2()
{
//...
MesajGoster("2. Yordam iinden alr.");
}
Void Yordam3()
{
// ...
MesajGoster("3. Yordam iinden alr.");
}
if (x != matris2.GetLength(0) || y !=
matris2.GetLength(1))
{
MessageBox.Show("Matris boyutlarnn byklkleri
birbiriyle ayn olmaldr.");
6 KISIM I:
return;
}
MatrisTopla(m1, m2)
Params
Yordamlar ve fonksiyonlar arrken parametrelerin mutlaka girilmeleri
gerekir. Ancak baz durumlarda yordamlara ve fonksiyonlara girilecek
parametrelerin says tasarm zamannda belli olmaz. params anahtar kelimesi
ile yordamlara, ayn veri tipinde parametre dizisi verilebilir. params ile verilen
dizi yordamn son parametresi olarak tanmlanmaldr.
int i;
for ( i=0; i<=Yaslar.Length - 1; i++ ) {
toplam += Yaslar[ i ];
}
nce, diziye bir tek eleman ekleyen yordam yazlr. Dizinin tm alanlar
doluysa, geniletme parametresinde verilen deer kadar tekrar boyutlandrlr.
8 KISIM I:
Geniletme deikeni Byte veri tipinde tanml olduu iin negatif deer
alamaz. Dolaysyla dizinin boyutunun kltlmesi engellenmi olur.
Bu yordam tek bana kullanlabilir olduu gibi, diziye birok eleman ekleyecek
yordama yardmc niteliindedir.
Void Main
Void Main
Balang yordamdr.
Application snf kullanlarak, istenen
formlar yklenir.
public static void Main()
{
Application.Run( new Form1() );
}
Yeni bir yordam tanmlarken Main yordam hari istenilen isim verilebilir. Main
yordam btn uygulamalarn giri noktasdr. Windows uygulamalarnda
formlar yklenmeden nce o form iinde tanml Main yordam altrlr. Bu
Main yordamnda Application snf balang formunu Run metodu ile
BLM 1 9
Konu 2: Fonksiyonlar
Function
lem yapldktan sonra deer dndrlr.
Return ifadesinden sonraki kodlar
altrlmaz.
bool KontrolOk()
{
if (TextBox1.Text.Length > 0 &
ComboBox1.SelectedIndex > -1)
{
return false;
}
return true;
}
Fonksiyonlar bir ilem yaptktan sonra geriye deer dndrrler. rnein bir
arpma fonksiyonunun dn deeri, parametre olarak verilen iki saynn
arpm olacaktr. Fonksiyonlarn tanmlar deikenler gibidir.
bool KontrolOk()
{
if (TextBox1.Text.Length > 0 & ComboBox1.SelectedIndex
> -1)
{
return false;
}
return true;
}
if (! KontrolOk())
{
MessageBox.Show("Seiminizi yaptktan sonra devam
edebilirsiniz.");
return;
BLM 1 11
Case "e":
Case "E":
Return 1.81;
int i;
12 KISIM I:
if ( i > 0 ) {
vizeOrtalama = vizeToplam / i;
}
Fonksiyonun ilk parametresi final notudur. Final notu bir tane olaca iin
girilmesi zorunludur. Daha sonra vize notlarnn ortalamas hesaplanarak final
notu ile toplanr. Parametre olarak verilen vize katsays, vize notlarnn
ortalamadaki arlklarn belirler.
String Fonksiyonlar
CompareTo
Concat
CopyTo
EndsWith & StartsWith
ToUpper & ToLower
Join
SubString
Trim, TrimEnd, TrimStart
Concat
String deerlerini birletirmek iin kullanlr. Parametre tipi params olduu
iin, snrsz String deikeni birletirilebilir.
BLM 1 15
CopyTo
BU fonksiyon ile bir String deikenin belli bir ksm, bir karakter dizisine
kopyalanr. Ayrca kopyalanacak dizinin hangi indisten itibaren
balanaca da belirtilir.
MessageBox.Show(yazi.ToUpper());
// Sonu: BLGEADAM
MessageBox.Show (yazi.ToLower());
// Sonu: bilgeadam
Join
Bir String dizisindeki elemanlar, parametre olarak verilen ayra karakteri
ile birletirerek tek bir String deikeni dndrr.
16 KISIM I:
// Sonu: sim;Soyad;Adres;Email;Telefon
SubString
Verilen bir String deerinin, bir blmn String olarak dndren
fonksiyondur. stenen karakterlerin hangi indisten balayaca parametre
olarak geilir. Bu durumda, balang karakterinden sona kadar okunur.
Ancak fonksiyonun, ka karakter okunacan belirten bir parametre kabul
eden ar yklemesi de vardr.
MessageBox.Show (yazi.Trim("-"));
// Sonu: Merhaba
MessageBox.Show (yazi.TrimEnd("-"));
// Sonu: --------Merhaba
MessageBox.Show (yazi.TrimStart("-"));
// Sonu: Merhaba--------
BLM 1 17
Matematiksel Fonksiyonlar
Abs
Ceiling & Floor
Cos, Sin, Tan
Exp
Log
Max & Min
Pow
Sqrt
Abs
Verilen bir saynn mutlak deerini dndrr. Dnen deer her durumda
pozitif olacaktr.
Math.Abs(-123)
// Sonu: 123
Math.Ceiling(12.231231)
// Sonu: 13
Math.Floor(-12.231231)
// Sonu: -13
Math.Floor(12.231231)
// Sonu: 12
18 KISIM I:
Exp
Bu fonksiyon, e sabitinin deerini (yaklak 2,718281 deerini),
parametrede verilen say ile ssn alr.
Math.Exp(4)
// Sonu yaklak: 54,59815
Log
Logaritmik hesaplamalar iin kullanlan bir fonksiyondur. Taban
parametresi verilmezse saynn e tabannda logaritmasn alr.
Math.Log(1000, 10)
// Sonu: 3
Math.Log(Math.E)
// Sonu: 1
Math.Max(100, 200)
// Sonu: 200
Math.Min(100, 200)
// Sonu: 100
Pow
lk parametrede verilen bir saynn, ikinci parametredeki deer kadar
ssn alr.
Math.Pow(10,3)
// Sonu: 1000
Sqrt
Verilen saynn karekkn hesaplar.
Math.Sqrt(441)
// Sonu: 21
BLM 1 19
CompareTo
String ifadelerinde olduu gibi, tarih ve zaman deerleri zerinde de
karlatrma yaplabilir. CompareTo fonksiyonu, ilem yaplan tarih ile
parametre olarak verilen tarihi karlatrr. Parametredeki tarih kkse 1,
bykse -1 veya eitse 0 dndrr.
DateTime d = #03/23/2002#;
MessageBox.Show (d.CompareTo(Now).ToString());
DaysInMonth
lk parametrede verilen yln, ikinci parametrede verilen aynda ka gn
olduunu dndrr.
DateTime.DaysInMonth(2002, 2)
// Sonu: 28
IsLeapYear
Verilen bir yln artk yl olup olmadn hesaplar. Dn deeri True ya da
False tipindedir.
DateTime.IsLeapYear(1200))
// Sonu: True
20 KISIM I:
Parse
Parametrede verilen String bir ifadeden Date veri tipine evrim ilemini
yapar. String ifadesinde verilen ifadenin doru bir tarih ve zaman tipinde
olmas gerekir.
DateTime.Parse("23.04.2005 20:20:00")
DateTime.Parse("22 July 2005 02:00 PM")
DateTime.Parse("18 Haziran 1980")
d.ToLongDateString()
// Sonu: 29 Ocak 2005 Cumartesi
d.ToLongTimeString()
// Sonu: 12:59:22
d.ToShortateString()
// Sonu: 29 Ocak 2005
d.ToShortTimeString()
// Sonu: 12:59
BLM 1 21
Offline Yardm
Offline Yardm
IntelliSense
Index, Search, Contens, Dynamic Help
Uygulama: String.Format fonksiyonunun
aratrlmas
6. Web ara ubuundan geri tuuna basarak veya Alt Sol Ok ksa
yolu ile String.Format Method balkl ilk atnz sayfaya dnn.
7. Parametre olarak IFormatProvider, String ve params Object
alan fonksiyon tanmna tklayn. Fonksiyonun kullanmn inceledikten
sonra, bu kullanma bir rnek yazn.
MessageBox.Show (String.Format(New
Globalization.CultureInfo("it-IT"), "Bugn: {0:dddd MM
yyyy}", DateTime.Now));
Online Yardm
Online Yardm
Online MSDN Ktphaneleri
Start Page Online Resources
Uygulama: Undo yordamnn aratrlmas
Void GeriAl()
{
// Metin kutusunda geri alnacak bir veri varsa
if (TextBox1.CanUndo)
{
Projenin Almas
1. KelimeOyunu isminde bir Window projesi an ve forma listedeki kontrolleri
ekleyin.
btnBasla ve btnGiris isminde iki Button
txtKelime isminde bir TextBox
lblMesaj isminde bir Label
tmrSure isminde bir Timer
2. Projenizin kod sayfasna gein ve uygulama boyunca kullanlacak global
deikenleri tanmlayn.
// Kontrol edilecek kelime
public string kelime;
// Oyunun seviyesi
public byte OyunSeviyesi = 1;
if ( KullaniciAdi == "" ) {
return;
}
ve biti nedeni
kullancya gsterir.
Bilgi String mesaj Label kontrolnde
mesaj grntlenir.
SonrakiKelimeBilgi Girilecek kelimenin
hangi harflerle
balayacan gsterir.
SeviyeAtla Byte seviye Oyunun seviyesini
artrr.
Kontrol String kelime1, String kinci kelimenin, ilk
kelime2 kelimenin harfleriyle
baladnn kontrol
yaplr.
PuanHesapla Byte seviye, Short Tekrar deerinin, seviye
tekrar kadar ss alnr.
tmrSure.Start();
SonrakiKelimeBilgi();
}
OyunuBitir yordam
Temizle();
int puan;
puan = PuanHesapla( OyunSeviyesi,
System.Convert.ToInt16( tekrar ) );
MessageBox.Show( "Puannz: " + puan);
}
Bilgi yordam
Bilgi( mesaj );
}
SeviyeAtla yordam
PuanHesapla yordam
Olaylarn yazlmas
1. tmrSure kontrolnn Tick olayna kalan sreyi kontrol eden kodlar yazn
private void tmrSure_Tick( System.Object sender,
System.EventArgs e ) {
if ( kalanSure <= 0 ) {
OyunuBitir( "Sreniz doldu" );
}
else {
kalanSure -= 1;
}
}
2. btnBasla dmesinin Click olayna, oyunu balatan yordam yazn
OyunuBitir( neden );
}
else if ( tekrar > 5 * OyunSeviyesi ) {
SeviyeAtla( System.Convert.ToByte(
OyunSeviyesi + 1 ) );
}
else {
tekrar += 1;
kelime = girilen;
SonrakiKelimeBilgi();
Temizle();
}
}
30 KISIM I:
zet
Hedefler
Deer Tipleri
Built-In Deer Tipleri
.NET iinde tanml veri tipleridir.
// Visual C# tanm deer tipi
short sayi = 10;
// .NET Framework tanm deer tipi
Int16 sayi2 = 10;
}
struct tiplerinde en az bir veri tipi tanml olmas gerekir.
struct tiplerinde bo parametreli constructor tanmlanamaz. Deer
tipleri tanmlandklarnda bu constructor ile oluturulur. Ancak bir veya
daha fazla parametre alan constructor metotlar kullanlabilir.
struct veri tipleri Class yapsna benzer, ancak deer tipi olduklar
iin oluturulmas yok edilmesi daha kolaydr.
4 Modl 1: Programlamaya Giri
Referans Tipleri
Built-In Referans Tipleri
Object, Built-In referans tipidir.
Array, dizilerin Built-In referans tipinde
olmasn salar.
struct veri tipi, deer tipi olduu iin, tanmlandklar anda bellekte stack
blmnde oluturulur. Bellekte ayrlan yer struct iinde tanml olan Built-in
veri tiplerinin toplam boyutu kadardr.
Visual C# .NET dilinde struct veri tipleri New anahtar kelimesiyle de
oluturulabilir. Ancak bu constructor metotlar parametre alacak ekilde
tanmlanmaldr. Varsaylan parametresiz constructor metotlar CLR tarafndan
ilenir. Dikkat edilmesi gereken bir durum da, New ile oluturulan deikenler
yine bir deer tipidir ve stack alannda tutulur.
NOT: Classlardan nesne olutururken New anahtar kelimesi kullanlr ancak bu nesneler
heap alannda tutulur.
Deiken Ali.soyadi
Deer =
Deiken Ali.adi
Deer =
Ali Ogrenci
Deiken Veli.soyadi
Deer = Mehmet
Deiken Veli.adi
Deer = Veli
Veli Ogrenci
Deiken Ali.soyadi
Deer =
Deiken Ali.adi
Deer =
Ali Ogrenci
8 Modl 1: Programlamaya Giri
Degisken ogr.soyadi
Deer = Mehmet
Deiken ogr.adi
Deer = Veli
ogr Ogrenci
Deiken Veli.soyadi
Deer = Mehmet
Deiken Veli.adi
Deer = Veli
Veli Ogrenci
Deiken Ali.soyadi
Deer =
Deiken Ali.adi
Deer =
Ali Ogrenci
public Siparis() {
// bu referansa aktarlr
ilkSiparis = new Siparis( DateAndTime.Now, "Enis
Gnesen", "Visual Studio.NET 2003" );
Deer = 0x00000000
(Bellekte bo bir alan gsterir)
ilkSiparis
Heap Alan
Nesne Adres Bilgisi
Deer = 0x00000012
ilkSiparis
Heap Alan
Konu: 1 11
Deer = 0x00000056
(Gsterdii adres deeri deiir)
ilkSiparis
Heap Alan
Nesne Adres Bilgisi
Siparis 0x00000056
Tarih = 10.05.2004
AliciIsmi = Enis Gnesen
Urun = Visual Studio.NET 2002
Siparis 0x00000012
Tarih = 10.05.2005 (Bu adres alanna artk hibir referans
AliciIsmi = Enis Gnesen ulamyor)
Urun = Visual Studio.NET 2003
Deer = 0x00000088
ikinciSiparis
Deer = 0x00000056
ilkSiparis
Heap Alan
Nesne Adres Bilgisi
Siparis 0x00000088
Tarih =
12 Modl 1: Programlamaya Giri
AliciIsmi =
Urun =
Siparis 0x00000056
Tarih = 10.05.2004
AliciIsmi = Enis Gnesen
Urun = Visual Studio.NET 2002
Siparis 0x00000012
Tarih = 10.05.2005
AliciIsmi = Enis Gnesen
Urun = Visual Studio.NET 2003
Deer = 0x00000088
ikinciSiparis
Deer = 0x00000088
(Gsterdii adres ikinci sipari
referans ile ayn olur)
ilkSiparis
Heap Alan
Nesne Adres Bilgisi
Siparis 0x00000088
Tarih =
AliciIsmi =
Urun =
Siparis 0x00000056
Tarih = 10.05.2004 (Bu nesneyi gsteren referans
AliciIsmi = Enis Gnesen kalmamtr)
Urun = Visual Studio.NET 2002
Siparis 0x00000012
Tarih = 10.05.2005
AliciIsmi = Enis Gnesen
Urun = Visual Studio.NET 2003
6. ilkSiparis in gsterdii nesnenin rn ismi deitirilirken Stack
Alan
Konu: 1 13
Deer = 0x00000088
ikinciSiparis
Deer = 0x00000088
ilkSiparis
Heap Alan
Nesne Adres Bilgisi
Siparis 0x00000088
Tarih =
AliciIsmi =
Urun = BilgeAdam Yazlm Uzmanl
Siparis 0x00000056
Tarih = 10.05.2004 (Referanslarn kaybetmi nesneleri,
AliciIsmi = Enis Gnesen Garbage Collector bellekten siler)
Urun = Visual Studio.NET 2002
Siparis 0x00000012
Tarih = 10.05.2005 (Referanslarn kaybetmi nesneleri,
AliciIsmi = Enis Gnesen Garbage Collector bellekten siler)
Urun = Visual Studio.NET 2003
Deer = 0x00000088
parametreSiparis
Deer = 0x00000088
ikinciSiparis
Deer = 0x00000088
ilkSiparis
Heap Alan
14 Modl 1: Programlamaya Giri
ByVal ByRef
ByVal
Parametreye, deikenin deeri geer.
public void ElemanDegistir( int[] dizi, int index, int
yeniDeger ) {
dizi[ index ] = yeniDeger;
}
ByRef
Parametreye, deikenin adresi (referans)
geer.
public void Ekle( ref string Kelime, string eklenecek ) {
Kelime = Kelime.Insert( 0, eklenecek );
}
sayilar[ 0 ] = 111;
sayilar[ 1 ] = 222;
sayilar[ 2 ] = 333;
zet
Hedefler
Listeleme Kontrolleri
ListBox, TreeView, ComboBox
Resim Kontrolleri
PictureBox, ImageList
Dzenleme Kontrolleri
TabControl, Panel, HScrollBar, VScrollBar
Zaman ve Tarih Kontrolleri
DateTimePicker, MonthCalendar
Dinamik Kontroller
alma annda eklenen kontroller
Form Nesnesi
Formlar
Kullanc ile iletiimi salar
Show ve ShowDialog ile birden fazla
form alr.
Balang formu projenin zelliklerinden
ayarlanr.
Windows uygulamalar, kullanc ile iletiimi Form nesneleri ile salar. Formlar,
grnm zellikleri, pencere stili deitirilerek ve zerine kontroller eklenerek
zelletirilir. Ayrca birden ok form nesnesi kullanlarak, uygulamalar
zenginletirilir.
snfndan tremi snflardr. Dolaysyla yeni bir Form oluturmak iin, istenen
Form snfndan bir nesne oluturulmas yeterlidir.
frmYeni yeniForm = New frmYeni;
ShowDialog ile gsterilen formlar, hangi durum ile kapandklarn belirten bir
DialogResult sonucu dndrrler. Bu kullanm MessageBox.Show hazr
fonksiyonu ile ayndr.
switch ( grup.ToUpper() ) {
case "SATI":
if ( parola.ToUpper() != "SATIS_PAROLA"
) {
HataFormuYukle( "Sat departman
parolas yanl!" );
}
else {
4 Modl 9: Windows Programlama
break;
case "YNETM":
if ( parola.ToUpper() !=
"YONETIM_PAROLA" ) {
HataFormuYukle( "Ynetim departman
parolas yanl!" );
}
else {
frmYonetim yonetimDepartmani = new
frmYonetim();
yonetimDepartmani.ShowDialog();
}
break;
default:
HataFormuYukle( grup + " isminde bir
grup bulunamad" );
break;
}
Form zellikleri:
zellik Deer Tipi Aklama
AcceptButton Button Form zerinde Enter
tuuna basld zaman
tklanacak Button
kontrol
CancelButton Button Form zerinde Esc
tuuna basld zaman
tklanacak Button
kontrol
Opacity Double Formun effaflk oran (0
-1 aras)
Konu: 1 5
Form Olaylar:
Olay Aklama
Click Form zerine tkland
zaman gerekleir
Closing Form kapanmadan
hemen nce gerekleir
Closed Form kapandktan
sonra gerekleir
Load Form yklenirken
gerekleir
KeyDown Form zerindeyken bir
tuun baslmas ile
gerekleir
KeyUp Baslan tuun
kaldrlmas ile
gerekleir
Form Metotlar:
Metot Aklama
Hide Formu Visible
6 Modl 9: Windows Programlama
zelliini False
yaparak, gizler
Close Formu kapatr. Eer
form balang
formuysa uygulama
sonlanr
Show Formu gsterir. Hide ile
gizlenmise, Visible
zellii True yaplr.
ShowDialog Formu diyalog kutusu
olarak gsterir.
Label
Label
Kullancya bilgi veren etikettir.
Label zellikleri
belirler
RightToLeft RightToLeft Etiket zerindeki yaznn
ynn belirler. Eer
Yes deerini alrsa,
yazlar sadan sola
gsterilir
Label1.BorderStyle = BorderStyle.Fixed3D;
Label1.ImageAlign = ContentAlignment.MiddleRight;
Label1.RightToLeft = RightToLeft.Yes;
Label1.Text = "Trke";
TextBox
TextBox
Kullancdan bilgi almak iin kullanlr.
TextBox zellikleri
karakterlerin hangi
karakter olarak
grneceini belirler.
WordWrap Boolean Metin kutusuna girilen
deerlerin, satr
sonlandnda bir alt
satra geilmesini belirtir.
Eer MultiLine zellii
False ise, alt satrlar
tanml olmayaca iin
bu zelliin bir etkisi
grlmez.
MaxLength Integer Metin kutusunun
alabilecei maksimum
karakter saysn belirtir.
ReadOnly Boolean Metin kutusunun
yazmaya kar korumal
olduunu belirtir.
CharacterCasing CharacterCasing Metin kutusuna
karakterler girilirken
byk veya kk harfe
evrilmesini salar.
Upper deeri byk,
Lower deeri kk
harfe evrimi salar.
TextBox Olaylar
Olay Aklama
TextChanged Metin kutusundaki yaz
deitii zaman
gerekleir.
TextBox Metotlar
Metot Aklama
Cut Seilen karakterleri siler
ancak hafzada tutar.
Copy Seilen karakterleri
kopyalar
Paste Hafzaya alnan
karakterleri metin
Konu: 1 11
kutusuna yaptrr
Clear Metin kutundaki yazlar
temizler
SelectAll Metin kutusundaki tm
yazy seer
txtSayilar.Multiline = true;
txtSayilar.ScrollBars = ScrollBars.Vertical;
txtClipBoard.ReadOnly = true;
txtClipBoard.Multiline = true;
}
}
}
txtSayilar.Clear();
int alt = txtAltSayi.Text;
int ust = txtUstSayi.Text;
Button
Button
Komut vermek iin kullanlan dmelerdir.
Button zellikleri
Button Olaylar
Olay Aklama
Click Dme zerine
tkland zaman
gerekleir
14 Modl 9: Windows Programlama
onay.btnHayir.DialogResult = DialogResult.No;
onay.FlatStyle = FlatStyle.Flat;
onay.btnEvet.DialogResult = DialogResult.Yes;
onay.btnEvet.FlatStyle = FlatStyle.Flat;
if (onay.ShowDialog == DialogResult.Yes)
// Kayt ilemleri...
}
Konu: 1 15
CheckBox
CheckBox
Kullancya seenekler sunmay salar.
Birok seenek seilebilir.
CheckBox zellikleri
CheckBox Olaylar
Olay Aklama
CheckChanged Seme kutusunun
durumu deitii zaman
gerekleir.
// KDV eklenir
if ( cbKDV.Checked ) {
toplam *= 1.18;
}
txtToplam.Text = toplam;
Konu: 1 17
RadioButton
RadioButton
Sunulan seeneklerin bir tanesini semeyi
salar.
GroupBox kontrol ile gruplanr.
GroupBox
Kontrollerin dzenlenmesini salar.
Balk yazs bulunur.
Panel
Yatay Dikey kaydrma ubuklar bulunur.
GroupBox
Bu kontrol kontrollerin mantksal bir dzende gruplanmas iin kullanlr. inde
bulunan kontrollerin ileyilerinde bir farkllk grnmez. Bir grup RadioButton
kontrolnn, dier RadioButton kontrollerinden etkilenmemesi iin kullanlr.
Panel
GroupBox kontrol gibi, kontrollerin belli bir dzende gzkmesini salamak
iin kullanlr. GroupBox kontrolnden fark olarak yatay ve dikey kaydrma
ubuklarnn bulunur, ancak Panel zerinde balk yazs bulunmaz.
18 Modl 9: Windows Programlama
Panel zellikleri
zellik Deer Tipi Aklama
AutoScroll Boolean Panelde kaydrma
ubuklarnn
grnrln belirler
grpSistem.Visible = false;
grpYazilim.Visible = false;
UrunTemizle();
pnlAnket.Visible = False;
}
ListBox
ListBox
Nesnelerin listelenmesini salar.
stenen sayda e seilebilir.
ListBox zellikleri
zellik Deer Tipi Aklama
Items ListBox.ObjectCollection Liste kutusuna
eklenen elerin
tutulduu koleksiyon
nesnesidir.
SelectedItem Object Liste kutusundan
seilen eyi alr.
SelectedItems SelectedObjectCollection Liste kutusundan
seilen eleri alr.
Seilen eler
dinamik bir dizide
tutulur.
SelectedIndex Integer Liste kutusundan
seilen enin indisini
22 Modl 9: Windows Programlama
alr.
SelectedIndices SelectedIndexCollection Liste kutusundan
seilen elerin
indislerini bir
koleksiyon
nesnesinde tutar.
DataSource Object Listenin elerinin
tutulduu veri
kaynadr. Veri
kayna bo geilirse
Items koleksiyonuna
eklenen eler
grntlenir.
DisplayMember String Veri kaynandan
gelen elerin,
kullancya
gsterilecek
zelliidir.
ValueMember String Veri kaynandan
gelen elerin, dn
deerini belirleyen
zelliidir.
SelectedValue Object Seilen enin, liste
kutusunun
ValueMember ile
belirtilen zelliidir.
SelectionMode SelectionMode Liste kutusundan ka
tane e
seilebileceini
belirtir. None deeri 0,
One deeri 1,
MultiSimple ve
MultiExtended
deerleri birden fazla
enin
seilebileceini
belirtir.
MultiColumn Boolean Liste kutusundaki
elerin biden fazla
kolonda
grntlenmesini
belirler.
Konu: 1 23
ListBox Olaylar
Olay Aklama
SelectedIndexChanged Liste kutusunda bir e
seildii zaman
gerekleir.
ListBox Metotlar
Metot Aklama
GetItemText Parametre olarak
verilen nesnenin liste
kutusunda gsterilen
yazsn dndrr.
GetSelected Parametre olarak
verilen indisteki enin
seili olup olmadn
dndrr.
FindString Parametredeki String
ifadesini liste kutusunda
arayarak, bulduu ilk
enin indisini dndrr
rnek: Tedarikiden alnacak ve stokta bulunan rnleri listelemek ve alm
satm ilemi yapmak iin ListBox kontrolleri kullanlabilir.
}
Liste kutularnn zellikleri ayarlanr ve iine eleman doldurulur.
private void Form1_Load( System.Object sender,
System.EventArgs e ) {
lbTedarikci.SelectionMode =
SelectionMode.MultiExtended;
lbStok.SelectionMode =
SelectionMode.MultiExtended;
UrunEkle();
}
}
Tedariki liste kutusundan, stok liste kutusuna e aktarlmas iin,
seilen deerler nce liste kutusuna eklenir. Daha sonra bu seilen
deerler, dier listede olmayaca iin tek tek kartlr.
btnCikar.Enabled = true;
btnHesapla.Enabled = true;
}
Stok listesinden e karmak iin, ekleme ilemine benzer kodlar
altrlr.
private void btnCikar_Click( System.Object sender,
System.EventArgs e ) {
// Tedarikiden alnan rnler stok listesine eklenir
foreach ( object item in lbStok.SelectedItems )
{
lbTedarikci.Items.Add( item );
// Stok listesine eklenen tm rnler
// tedariki listesinden kartlr
foreach ( object item in lbTedarikci.Items ) {
lbStok.Items.Remove( item );
}
if ( lbStok.Items.Count == 0 ) {
btnCikar.Enabled = false;
btnHesapla.Enabled = false;
}
}
CheckedListBox
CheckedListBox
ListBox yapsndadr.
eler iaret kutusu ile gsterilir.
CheckedListBox zellikleri
zellik Deer Tipi Aklama
CheckedItems CheckedItemCollection Liste kutusunda
iaretlenmi eleri
tutar
CheckedIndices CheckedIndexCollection Liste kutusunda
iaretlenmi elerin
indislerini tutar
CheckOnClick Boolean Liste kutusunda eye
tkland zaman
iaretlenmesini belirler.
False ise ilk tklamada
e seilir, ikinci
tklamada seme
kutusu iaretlenir.
CheckedListBox Metotlar
Metot Aklama
Konu: 1 27
case "Film":
return 1100;
case "Mzik":
return 982;
case "Bilgisayar":
return 302;
case "Kitap":
return 1222;
default:
return 10;
}
// Ekleme ilemi
private void btnKategoriEkle_Click( System.Object
sender, System.EventArgs e ) {
chlistKategoriler.Items.Add( txtKategoriAdi.Text
);
}
ComboBox
ComboBox
Listelenen eler alan kutuda
grntlenir.
Listeden bir tane e seilebilir.
Liste kutusu ile ayn zelliklere sahiptir. Ancak listelenen eler alan bir
kutuda grntlenir ve listeden en fazla bir tane e seilebilir. Liste kutusuna
gre bir baka farkll ise, istee bal olarak, kullancn alan kutu zerinde
deer girebilmesidir. Dolaysyla bir TextBox kontrol gibi de davranabilir.
ComboBox zellikleri
Konu: 1 29
cmbFormat.DropDownStyle =
ComboBoxStyle.DropDownList;
cmbFormatString.DropDownStyle =
ComboBoxStyle.DropDownList;
switch ( cmbFormat.SelectedIndex ) {
case 0:
cmbFormatString.Items.Add( "dd - MM -
yyyy" );
cmbFormatString.Items.Add( "yyyy*MM*dd
hh:mm" );
cmbFormatString.Items.Add( "dddd
dd.MM.yy hh:mm:ss" );
break;
case 1:
cmbFormatString.Items.Add( "C" );
cmbFormatString.Items.Add( "P" );
cmbFormatString.Items.Add( "N" );
break;
}
}
Format seildikten sonra metin kutusuna girilen deer alnr ve ilgili
formatta gsterilir
private void btnGoster_Click( System.Object sender,
System.EventArgs e ) {
switch ( cmbFormat.SelectedIndex ) {
case 0:
DateTime d = txtYazi.Text;
lblSonuc.Text = d.ToString(
cmbFormatString.Text );
break;
case 1:
int i = txtYazi.Text;
lblSonuc.Text = i.ToString(
cmbFormatString.Text );
break;
}
}
Konu: 1 31
NumericUpDown
NumericUpDown
Saysal deerlerin yukar aa oklar ile
seilmesini salar
DomainUpDown
Object tipinde nesnelerin seilmesini
salar.
Bu kontrol kullancnn, saysal bir deeri girmesini veya yukar aa oklar ile
semesini salar.
NumericUpDown zellikleri
belirler.
ThousandSeparators Boolean Saylarn basamak
ayracn gsterilmesini
belirler.
Value Decimal Kontroln gsterdii
say deerini belirler.
ReadOnly Boolean True deerini alrsa
kullancnn giri
yapmasn engeller.
NumericUpDown Olaylar
Olay Aklama
ValueChanged Kontroln say deeri
deitii zaman
gerekleir
NumericUpDown Metotlar
Metot Aklama
DownButton Aa dmesine basar
ve say deerini
drr.
UpButton Yukar dmesine
basar ve say deerini
artrr.
nGun.Minimum = 1;
nYil.Maximum = 2099;
nAy.Maximum = 12;
nGun.Maximum = 31;
nSaat.Minimum = 0;
nDakika.Minimum = 0;
nSaat.Maximum = 23;
nDakika.Maximum = 59;
nYil.Value = DateAndTime.Now.Year;
nAy.Value = DateAndTime.Now.Month;
nGun.Value = DateAndTime.Now.Day;
nSaat.Value = DateAndTime.Now.Hour;
nDakika.Value = DateAndTime.Now.Minute;
}
Bu deerlerden herhangi biri deitii zaman, doru tarih ve zaman
deerinin girilmesi kontrol edilir
private void nGun_ValueChanged( System.Object
sender, System.EventArgs e ) {
string tarih;
tarih = nGun.Value + "." + nAy.Value + "." +
nYil.Value;
if ( !( IsDate( tarih ) ) ) {
MessageBox.Show( tarih );
}
string zaman;
zaman = nSaat.Value + ":" + nDakika.Value;
if ( !( IsDate( zaman ) ) ) {
MessageBox.Show ( zaman );
}
DomainUpDown
NumericUpDown kontrol ile ayn yapdadr ancak saysal deerler yerine
Object tipinde deerler tutar. Bu deerler kontroln Items koleksiyonunda
tutulur. Kontrol, bu zellii ile liste kutusuna benzemektedir.
DomainUpDown zellikleri
DomainUpDown Olaylar
Olay Aklama
SelectedItemChanged Kontrolde seilen e
deitii zaman
gerekleir.
rnek: Metin kutularnn deitirilmek istenen yaz tipleri DomainUpDown
kontrolnde tutulabilir.
dFont.Wrap = true;
}
HScrollBar / VscrollBar
HScrollBar VScrollBar
Saysal deer tayan kaydrma
ubuklardr.
ScrollBar zellikleri
zellik Deer Tipi Aklama
Value Integer Kaydrma ubuunun
pozisyonuna gre alnan
deeri tutar.
SmallChange Integer Kontrol, stndeki oklar ile
kaydrld zaman eklenecek
ya da kartlacak deeri tutar.
LargeChange Integer Kontrol, kaydrma
ubuundaki bolua
tklanarak kaydrldnda
zaman eklenecek ya da
kartlacak deeri tutar.
Minimum Integer Value zelliinin alabilecei
maksimum deeri tutar
36 Modl 9: Windows Programlama
ScrollBar Olaylar
Olay Aklama
Scroll ubuklar kaydrldklar
zaman gerekleir.
ValueChanged Kod ile ya da ubuklar
kaydrlnca Value
zellii deitii zaman
gerekleir.
rnek: Bir ComboBox kontrolnn elerini listelemek iin, aaya doru bir
kaydrma ubuu grntlenir. Ancak listedeki baz elemanlarn kontrole
smyorsa, alma annda bu kontroln genilii artrlabilir.
}
Konu: 1 37
TrackBar
TrackBar
Kaydrma ubuunun pozisyonu grsel
olarak takip edilir.
Pozisyon, klavye tular ile deitirilebilir.
TrackBar zellikleri
TrackBar kontrolnn birok zellii ScrollBar kontrollerinin zellikleriyle
ayndr. Fakat kontrol daha esnek hale getiren birka zellii vardr.
zellik Deer Tipi Aklama
TickStyle TickStyle Kontroln deerini gsteren
izgilerin pozisyonunu belirler
TickFrequency Integer izgiler arasnda kalan
deerlerin saysn belirler
Orientation Orientation Kontroln ynnn yatay
veya dikey olmasn salar.
38 Modl 9: Windows Programlama
TabControl
TabControl
Sekme sayfa yaps sunar.
TabPage nesnelerinden oluur.
TabControl zellikleri
zellik Deer Tipi Aklama
HotTrack Boolean Fare ile sekme sayfalarnn
zerine gelindiinde,
isimlerinin grsel olarak
deimesini belirler
ItemSize Size Sekme sayfalarnn boyutunu
belirler
Multiline True Eklenen sekmelerin birden
fazla satrda st ste
gzkmesini belirler
ShowToolTips Boolean Fare sekme sayfalarnn
zerindeyken bilgi mesajnn
gsterilmesini belirler
SelectedTab TabPage Seilen sekme sayfasn
belirler
Konu: 1 39
TabPage zellikleri
Sekme sayfalar, normal form tasarmlar gibi kontroller eklenerek yaplr.
TabPage kontrol Panel kontrolnden trer ve Panel kontrolnn tm
zelliklerini alr.
zellik Deer Tipi Aklama
ToolTipText String Bu zelliin deeri, fare
sayfann zerindeyken, bilgi
mesaj olarak gsterilir. Ait
40 Modl 9: Windows Programlama
olduu TabControl
nesnesinin ShowToolTip
zellii True olmaldr.
DateTimePicker
DateTimePicker
Takvimden zaman deeri seilmesini
salar.
Takvim yaps alan kutu eklindedir.
Bir alan kutudan zaman deeri semeyi salar. Seilen deer Date tipinde
olur.
Konu: 1 41
DateTimePicker zellikleri
zellik Deer Tipi Aklama
CalendarTrailingForeColor Color Bir nceki ve bir sonraki
ayn gnlerinin
grntlenme rengi
CalendarTitleForeColor Color Takvim balnn nalan
rengi
CalendarTitleBackColor Color Takvim balnn arka plan
rengi
CalendarMonthBackground Color Takvim arka plan rengi
CalendarForeColor Color Takvimdeki yazlarn n
plan rengi
CalendarFont Font Takvimin gsterilecei yaz
tipi ayarlar
ShowCheckBox Boolean Tarih deerinin yannda
seme kutusunun
gsterilmesi.
Checked Boolean Seme kutusu
grntlendii zaman,
tarihin seili olup olmadn
gsterir
Format DateTimePic Kontroln grntlenecei
kerFormat
format belirler. Long, Short
deerleri uzun ve ksa tarih
formatn, Time sadece
zaman gsterir. Custom
deeri, CustomFormat
zelliine girilen formatta
gsterileceini belirler
CustomFormat String Tarihin hangi formatta
gsterileceini belirler.
Value Date Seilen tarih deerini
belirler
MaxDate Date Kontroln alabilecei
maksimum tarih deeri
MinDate Date Kontroln alabilecei
minimum tarih deeri
ShowUpDown Boolean Kontroln formunu alan
kutu ya da yukar aa
oklar formatnda gsterir.
Bu zellik True olduunda,
kontroln format,
NumericUpDown
42 Modl 9: Windows Programlama
kontrolnn formatnda
olur.
rnek: Verit tabanndan bir kaydn belli tarih aralklar ile sorgulanmas
srasnda, kullancnn balang ve biti tarihlerini semesi iin bu kontrol
kullanlr.
string Sql;
Sql = "Select * From Siparisler Where
SiparisTarih Between ";
Sql += basTarih + " And " + sonTarih;
// komutunu altr
}
Konu: 1 43
MonthCalendar
MonthCalendar
Takvimden bir zaman aral seilmesini
salar.
MonthCalendar zellikleri
DateTimePicker kontrolnn birok zelliini almasna ramen, baz
zelliklerinde deiiklikler grlr. rnein Value zellii bu kontrolde yoktur.
Bu kontrolden seilen deerler, bir tarih araldr. Dolaysyla tek bir Date tipini
tutan bir zellik yoktur.
basld zaman ka ay
atlanacan belirler
MonthlyBoldedDates Date() Takvimde hangi gnlerin kaln
yaz tipinde gsterileceini
belirler. aretlenen gnler,
her ay iin kaln gsterilir.
ShowToday Boolean Takvimin alt ksmnda, sistem
takvimine gre hangi gnde
olduunu gsterir
ShowTodayCircle Boolean Takvimde, o gnn seili
olmasn belirler
ShowWeekNumbers Boolean Takvimin sol tarafnda, yln
hafta numaralarn gsterir
MonthCalendar Olaylar
Olay Aklama
DateChanged Seilen tarihten farkl bir
tarih seildiinde
gerekleir
DateSelected Yeni bir tarih seildii
zaman gerekleir.
DateChanged olay
gerekletikten hemen
sonra bu olay
gerekleir.
rnek: Yaplacak grevlerin tutulduu bir Windows uygulamasnda, grevin
balang ve biti tarihleri tek bir MonthCalendar kontrolnden kolaylkla
seilebilir.
Konu: 1 45
MonthCalendar1.SelectionStart =
secilen.BaslangicTarihi;
MonthCalendar1.SelectionEnd =
secilen.BitisTarihi;
txtYeniGorev.Text = secilen.GorevIsmi;
}
46 Modl 9: Windows Programlama
Timer
Timer
Zaman deeri ayarlanabilen sayatr.
Interval zellii ile, ka milisaniyede bir
alaca belirlenir.
Timer zellikleri
zellik Deer Tipi Aklama
Enabled Boolean Kontroln aktif olup
olmadn belirler.
Interval Integer Sayacn hangi zaman
aralnda bir almas
gerektiini belirler. Milisaniye
cinsindedir.
Timer Olaylar
Olay Aklama
Tick Interval zelliinde
belirtilen zaman deeri
getiinde gerekleir.
Timer Metotlar
Metot Aklama
Konu: 1 47
ProgressBar
ProgressBar
Yaplan ilemlerin ilerleyiini gzlemeyi
salar.
Maksimum ve minimum deerleri
arasndaki pozisyonu gsterir.
ProgressBar zellikleri
int aralik;
aralik = ProgressBar1.Maximum -
ProgressBar1.Minimum;
ProgressBar1.Value = ProgressBar1.Maximum -
kalan;
kalan -= 1;
}
Oluturulan bu form, balang formundan arlarak durum gsterilir.
if ( CheckBox1.Checked ) {
frmDurum.ShowDialog();
Konu: 1 49
}
}
ErrorProvider
ErrorProvider
Hata mesajlarn kontrollerin yannda
gsterir.
ErrorProvider zellikleri
zellik Deer Tipi Aklama
BlinkRate Integer Hata simgesinin ka
milisaniyede bir yanp
sneceini belirler
BlinkStyle ErrorBlinkSytle Hata simgesinin yanp snme
stilini belirler. AlwaysBlink,
her zaman,
BlinkIfDifferentError
farkl bir hata meydana
geldiinde yanp sneceini
belirler. NeverBlink ise
simgenin yanp snmeden
grntleneceini belirler
Icon Icon Hata mesajlarnn
gsterilmesi srasnda kan
simgeyi belirler
50 Modl 9: Windows Programlama
ErrorProvider Metotlar
Metot Aklama
SetError Kontrollerin hata
mesajlarnn
belirlenmesi iin
kullanlr
zellik Aklama
IconAlignment On Hata simgesinin, kontroln
ErrorProviderIsmi
zerinde nerde bulunacan
belirler
IconPadding On Hata simgesinin, kontrolden
ErrorProviderIsmi
ka piksel uzakta duracan
belirler
Error On Varsaylan hata mesajn
ErrorProviderIsmi
belirler
rnek: Kayt ilemlerinin yapld srada, isim soyad ve TC kimlik
numaralarnn girileri ErrorProvider kontrol ile denetlenebilir.
else {
// Eer beri doru girilmise, Error simgesini
// gizlemek iin, hata mesaj bo girilir
ErrorProvider1.SetError( txtIsim, "" );
}
PictureBox
PictureBox
Resim grntlemeyi salar.
PictureBox zellikleri
zellik Deer Tipi Aklama
Image Image Kontroln resim kaynan
belirler
SizeMode PictureBoxSizeMode Kontroln, resmi nasl
grntleyeceini belirler.
AutoSize deeri, kontroln
bykln resmin
byklne gre ayarlar.
CenterImage deeri, resmi
kontroln ortasna gelecek
ekilde ayarlar.
Normaldeeri, kontroln sol
st kesine gre
konumlandrr.
StretchImage deeri, resmi
kontroln byklne gre
boyutlandrr ve resmin tam
grnmesini salar.
Konu: 1 53
ImageList
ImageList
Resimleri liste halinde tutar.
Kontrollerin elerine resim atanmasn
salar.
ImageList kontrol, form kontrolleri ve iinde bulunan eleri iin arka plan
resmi salayan bir listesi grevini grr.
ImageList zellikleri
zellik Deer Tipi Aklama
Images ImageCollection Kontroln iinde bulunan
resimlerin listelendii dinamik
bir koleksiyondur. Bu zellik
bir koleksiyon olduu iin,
dier liste kontrollerinin
elerinin resmini belirleme
ilemi byk lde
kolaylar.
ImageSize Size Kontroln tuttuu resimlerin
bykln belirler
TransparentColor Color Listedeki resimlerin bu
zellikte belirtilen renkteki
blgeleri saydam olur.
LinkLabel
LinkLabel
Nesnelere balant kurulmasn salar.
Metin iinde birden fazla balant tutabilir.
56 Modl 9: Windows Programlama
LinkLabel zellikleri
zellik Deer Tipi Aklama
LinkArea LinkArea Balantnn hangi
karakterler arasnda
aktif olacan belirler
LinkBehavior LinkBehavior Balantnn yazsnda
bulunan izginin ne
zaman gsterileceini
belirler.
HoverUnderline
deeri fare zerinde
durduu zaman,
AlwaysUnderline
deeri her zaman alt
izili olduunu belirler.
NeverUnderline
deeri ise balant
yazsnn altnn
izilmeyeceini belirler.
LinkColor Color Balantnn
LinkVisited zellii
False olduu zaman
gsterilecek rengini
belirler
LinkVisited Boolean Balantnn en az bir
kere tklandn
belirler
VisitedLinkColor Color Balantnn
LinkVisited zellii
True olduu zaman
gsterilecek rengini
belirler
Links LinkLabel.LinkCollection Kontroln Text
zelliinde bulunan
balantlar tutar
LinkLabel Olaylar
Olay Aklama
Click Kontroln zerine
Konu: 1 57
tkland zaman
gerekleir. Dier
kontrollerin tklama
olayndan farkl olarak,
LinkLabel zerinde
hangi balantya
basld anlalr.
rnek: letiim bilgi formunda e-posta ve internet adresleri gibi balantlar
gstermek iin LinkLabel kullanlr.
System.Diagnostics.Process.Start( e.Link.LinkData );
TreeView
TreeView
elerin hiyerarik yapda
grntlenmesini salar.
TreeNode nesnelerinden oluur.
Bu kontrol, iinde bulunan eleri hiyerarik bir yapda grntler. Her eklenen
e bir dm temsil eder. Dmler birleerek aa yapsn olutururlar.
Dmler kk ve alt dm olarak ikiye ayrlr. Kk dmler, kontroln ilk
srasnda yer alr ve ayn seviyededir. Alt dmler, kk dmlerin ve dier alt
dmlerin altna eklenebilir.
TreeNode nesnesi
TreeView kontrolnde gsterilen eler, zelliklerini TreeNode snfndan alr.
Kk ve alt dmlerin tm TreeNode tipindedir. Her dmn bir Nodes
zellii vardr. Bu zellik, dmn, alt dmlerinin tutulduu koleksiyondur.
Alt dmler oluturulup bu zellie eklenebilir.
TreeNode dmleri oluturulup, zellikleri atandktan sonra TreeView
kontrolnde gsterilmesi iin, TreeView nesnesinin Nodes koleksiyonuna
eklenmesi gerekir.
TreeNode zellikleri
zellik Deer Tipi Aklama
Text String Dmn stnde gsterilen
yazy belirler
Konu: 1 59
TreeNode Metotlar
Metot Aklama
Collapse Dmn ilk seviyedeki alt
dmlerini gizler. Eksi
iaretine baslmas ile ayn
grevi grr.
Expand Dmn ilk seviyedeki alt
dmlerini gsterir. Art
iaretine baslmas ile ayn
grevi grr.
ExpandAll Dmn alt dmlerini son
seviyeye kadar gsterir.
Toggle Dmn durumu aksa
kapal, kapalysa ak duruma
getirir
GetNodeCount Verilen parametre True ise
tm alt dmlerin, False ise
sadece ilk seviyedeki
dmlerin saysn verir.
60 Modl 9: Windows Programlama
TreeView zellikleri
zellik Deer Tipi Aklama
CheckBoxes Boolean Dmlerin yannda iaret
kutularnn gsterilmesini
belirler
ImageIndex Integer Kontroln tm eleri iin
varsaylan resmin,
ImageList iindeki indisini
belirler. Bu zelliin
kullanlmas iin, kontroln
ImageList zelliinin
belirlenmesi gerekir.
SelectedImageIndex Integer enin zerine gelip
seildiinde gsterilecek
resmin, ImageList iindeki
indisini belirler
SelectedNode TreeNode Seilen dm belirler
TopNode TreeNode Kontroln ilk kk dmn
gsterir
ShowLines Boolean Dmler arasnda izgilerin
gzkmesini belirler
ShowPlusMinus Boolean Alt dmleri gsterip
gizlemek iin kullanlan art
eksi iaretlerinin gzkmesini
belirler
ShowRootLines Boolean Kk dmlerinin izgilerinin
ve art eksi iaretlerinin
gzkmesini belirler
PathSeparator String Bir dmn FullPath
zelliinde gsterilen
dmleri ayran karakterleri
belirler
TreeView kontrolne kod ile dm eklenebildii gibi, tasarm annda Visual
Studio TreeNode Editor penceresini kullanarak da dm eklenebilir.
Konu: 1 61
TreeView Metotlar
Metot Aklama
CollapseAll Kontroln tm dmlerini
gizler
ExpandAll Kontroln tm dmlerini
gsterir
TreeView Olaylar
Olay Aklama
BeforeSelect Dm seilmeden
nce gerekleir
AfterSelect Dm seildikten
sonra gerekleir
BeforeCollapse Dm kapanmadan
nce gerekleir
AfterCollapse Dm kapandktan
sonra gerekleir
BeforeExpand Dm almadan nce
gerekleir
AfterExpand Dm aldktan sonra
gerekleir
62 Modl 9: Windows Programlama
rnek: rn kategorileri, genelde tek kategori olarak ele alnsa da, aslnda
hiyerarik bir yapda incelenmeleri gerekir. Her kategorinin sonsuz sayda alt
kategorisi olabilir. Bu tip kategoriler, en iyi ekilde TreeView kontrol ile
grntlenebilir.
if ( RadioButton1.Checked ) {
// Kk dm eklenir
TreeView1.Nodes.Add( txtYeniKategori.Text );
}
else if ( RadioButton2.Checked ) {
// Seilen kategoriye alt kategori eklenir
secilen.Nodes.Add( txtYeniKategori.Text );
}
}
Seilen bir kategorinin silinme ilemi iin, o dmn hangi ana
dme ait olduu bulunmaldr.
private void btnSil_Click( System.Object sender,
System.EventArgs e ) {
TreeNode secilen = TreeView1.SelectedNode;
if ( !( secilen.Parent == null ) ) { //
Seilen dm, Parent dmnn Nodes
// koleksiyonundan kartlr.
secilen.Parent.Nodes.Remove( secilen );
}
else {
// Eer Parent yok ise Kk dmdr.
TreeView1.Nodes.Remove( secilen );
Konu: 1 63
}
}
Tm dmlerin gsterilmesi ve seilen dmn hiyerarik yapsnn
gsterilmesi
MessageBox.Show ( secilen.FullPath,
MsgBoxStyle.OKOnly, "Kategori Yolu" );
}
ListView
ListView
elerin deiik ekillerde listelenmesini
salar.
ListViewItem nesnelerinden oluur.
Her e, ListViewSubItem alt elerinden
oluur.
ListView zellikleri
zellik Deer Tipi Aklama
View View Listenin grnmn
belirler. LargeIcons
deeri listedeki elerin
byk resimle,
SmallIcons kk
resimle grnmesini
salar. List deeri,
eleri kk resimle
fakat alt alta
grnmesini salar.
Details deeri, alt
elerin kolonlar altnda
grntlendii detay
grnm salar.
AllowColumnReorder Boolean Detay grnmnde,
kolonlarn kullanc
tarafndan
dzenlenebilmesini
belirler
Activation ItemActivation elerin ne zaman
etkinletirileceini
belirler. OneClick
deeri, enin tek
tklamayla, Standard
deeri, enin ift
tklamayla aktif hale
geleceini belirler.
TwoClick deeri seili
iken, ilk tklandnda
e seilir, daha sonra
ikinci defa tklandnda
ise e aktif hale gelir.
CheckBoxes Boolean elerin yannda
seme kutularnn
bulunmasn belirler
Columns ColumnHeaderCollection Detay grnmnde
iken, elerin alt
elerinin gsterilecei
kolonlar tutan
koleksiyondur
FullRowSelect Boolean Detay grnmde,
Konu: 1 65
enin tm detay
satrnn seilmesini
belirler
GridLines Boolean Kolonlar ve satrlar
arasnda ayrc
izgilerin gzkmesini
belirler
LabelEdit Boolead alma annda,
kullancn, liste
elerinin yazsn
deitirmesini belirler.
Bu zelliin kullanlmas
iin, Activation
zellii Standard
olmas gerekir.
ListView Olaylar
Olay Aklama
AfterLabelEdit enin yazs
deitikten sonra
gerekleir
BeforeLabelEdit enin yazs
deimeden nce
gerekleir
ComboBox1.Items.Add( "Detay" );
ComboBox1.Items.Add( "Byk Simgeler" );
ComboBox1.Items.Add( "Kk Simgeler" );
ComboBox1.Items.Add( "Liste" );
ComboBox1.DropDownStyle =
ComboBoxStyle.DropDownList;
ListView1.View = View.Details;
Dinamik Kontroller
s
Dinamik Kontroller
alma annda oluturulup forma eklenir.
AddHandler ile kontroln olaylarna eriilir.
Void Yordam1()
{
Button b = new Button();
b.Click += new EventHandler(ButonaBasildi);
}
button1.Click+=new EventHandler(button1_Click);
}
68 Modl 9: Windows Programlama
Form zerindeki bir Timer kontrol, iki saniyede bir dme oluturup
forma ekler.
Kontrollerin eklenmesi
Yeni bir Windows projesi an ve ToolBox paneline Microsoft Web Taraycn
ekleyin.
Not: ToolBox paneline kontrol ekleme ilemleri iin Modl 3 e bakn
70 Modl 9: Windows Programlama
Kodlarn yazlmas
1. Form yklenirken LinkLabel kontrolnn gsterecei balanty ve
formun AcceptButton zelliini ayarlayn.
2. Yazlan Internet adresine gitmek iin kullanc, ayn sayfay veya yeni
alacak bir sayfay kullanabilir. Seilen duruma gre ayn sayfada ya da
farkl sayfada Internet sitesini grntleyen kodlar yazn.
YeniSayfa( txtAdres.Text );
}
else {
AyniSayfa( txtAdres.Text );
}
sayfa.Text = link;
tarayici.Navigate( link );
}
if ( !( sayfa == null ) ) {
Konu: 1 73
sayfa.Dispose();
}
}
rnek:
Tutulan say: 1980
Tahmin 1: 4952
pucu: +1 (Sadece 9 rakam yerini tuttu)
Tahmin 2: 9820
pucu: +1 -2 (0 yerini tuttu, 9 ve 8 bulundu ancak yeri tutturulamad)
Kontrollerin eklenmesi
Kodlarn Yazlmas
Sistem tarafndan tutulacak saylar, DomainUpDown kontrolnde yaplan seime
gre farkl ya da ayn rakamlara sahip olacaktr.
return sayi;
}
sayi = r.Next(10000);
}
return sayi;
}
char[] sdizi;
sdizi = sayi.ToString().ToCharArray();
76 Modl 9: Windows Programlama
char[] sBulunacak;
sBulunacak =
BulunacakSayi.ToString().ToCharArray();
return sonuc;
}
Kontrollerin eklenmesi
Kodlarn Yazlmas
1. ComboBox kontrolnden seviye seildii zaman, form zerinde var olan
tm dmelerin silinip, seilen seviye kadar dme eklenmesi gerekir. Bu
ilem oyunu batan balatr.
public void KartYerlestir( int kartSayisi ) {
DugmeleriSil();
int x = 10;
int y = 50;
78 Modl 9: Windows Programlama
this.Controls.Add( kart );
i += 1;
}
}
4. Eklenen kartlara tkland zaman, ilk seferde bir kart alr ve resmi
gsterilir. kinci kart ald zaman bu iki kartn resmi aynysa kart formdan
kaldrlr.
private Button AcikKart;
private bool acik = false;
Kontrollerin eklenmesi
Form zerine tablodaki kontrolleri ekleyin belirtilen zelliklerini ayarlayn.
Kontrol Kontrol smi zellik Deer
Button 0 9 aras her say iin Text Temsil ettikleri saylar
Button(Sayi) isminde bir dme
ekleyin. rnek: 5 says iin
Button5
Button Her ilem iin bir dme Text Temsil ettikleri ilemler. *
ekleyin: arpma, blme, toplama +/-=C
karma, eitlik, temizleme
Konu: 1 81
Kodlarn Yazlmas
1. lemin trn ve seildiini belirleyen, girilen bir nceki sayy tutan global
deikenleri yazn.
private bool IslemSecildi = false;
private double Sayi;
private string Islem;
3. lem seildii zaman, bir nceki girilen sayy tutan kodlar yazn.
case "+":
Sayi += double.Parse(txtSayi.Text);
break;
}
txtSayi.Text = Sayi.ToString();
}
zet
Listeleme Kontrolleri
ListBox, TreeView, ComboBox
Resim Kontrolleri
PictureBox, ImageList
Dzenleme Kontrolleri
TabControl, Panel, HScrollBar, VScrollBar
Zaman ve Tarih Kontrolleri
DateTimePicker, MonthCalendar
Dinamik Kontroller
alma annda eklenen kontroller
Hedefler
Menler
MainMenu, ContextMenu
ToolBar
ToolTip
StatusBar
NotifyIcon
RichTextBox
Menler
Windows uygulamalarnda kullanlan iki tip men vardr. MainMenu, formlarn
banda duran sabit mendr. ContextMenu, fare ile sa tklandnda kan
mendr.
2 Modl 1: Programlamaya Giri
MainMenu
MainMenu
Formlarn banda duran mendr.
MenuItem nesnelerinden oluur.
Men elerine ksa yollar atanabilir.
Men elerine basld zaman bir ilemin gereklemesi iin, kontrole ift
tklanarak bu enin Click olayna geilir. altrlmak istenen kodlar buraya
yazlr.
Konu: 1 3
Men elerine isim verirken & iareti kullanlarak, kullancn klavyenin ALT
tuuyla bu eyi altrmasn salanabilir. & iareti hangi karakter ile
kullanlrsa, ksa yol olarak o karakter kullanlr.
MenuItem zellikleri
zellik Deer Tipi Aklama
Checked Booleand Men esinin yannda
seili olduuna dair bir
iaretin gzkmesini
salar
Enabled Boolean Men esinin aktif
durumda olup
olmadn belirler
RadioCheck Boolean enin seilme stilinin
RadioButton dmesi
olarak gzkmesini
salar.
ShortCut ShortCut Menye ulam iin bir
ksa yol tanmlar.
ShowShortCut Boolean Mennn ksa yolunun,
isminin yannda
gzkmesini belirler
MenuItems MenuItemCollection Alt menlerin tutulduu
koleksiyondur.
rnek:
private void Form1_Load( System.Object sender,
System.EventArgs e ) {
MenuItem dosya = new MenuItem( "D&osya" );
4 Modl 1: Programlamaya Giri
MainMenu1.MenuItems.Add( dosya );
}
}
Konu: 1 5
ContextMenu
ContextMenu
Kontrollerin ContextMenu zelliine
atanr.
Kontrollere sa tkland zaman kan
mendr.
ToolBar
ToolBar
Menlerin ilevlerine grsel ksa yollar
sunar.
ToolBarButton nesnelerinden oluur.
ImageList kontrol ile kullanlr.
Hangi dmeye basld ButtonClick olay
ile anlalr.
ToolBar zellikleri
zellik Deer Tipi Aklama
Konu: 1 7
ToolBarButton zellikleri
zellik Deer Tipi Aklama
Style ToolBarButtonStyle Dmenin grnm stilini
belirler. PushButton deeri
standart bir dmeyi,
ToggleButton basld
zaman basl kalan bir
dmeyi, Separator
deeri dmeler arasnda
8 Modl 1: Programlamaya Giri
case 1:
// Kes
case 2:
// Yaptr
case 4:
// Geri Al
case 6:
// Yardm
break;
}
}
ToolTip
ToolTip
Kontrollerin zerine gelindiinde bilgi
mesaj verir.
Mesaj, kontrollerin ToolTip on ToolTip1
zelliine yazlr.
ToolTip zellikleri
zellik Deer Tipi Aklama
Active Boolean Kontroln aktif olup
olmadn belirler.
False deerini alrsa,
form zerinde ipucular
grntlenmez.
AutomaticDelay Integer AutoPopDelay,
10 Modl 1: Programlamaya Giri
InitialDelay,
ReshowDelay deerleri
iin otomatik sreleri
ayarlar.
AutoPopDelay Integer pucunun
grntlenme sresini
belirler.
InitialDelay Integer pucunun gzkmesi
iin, fare imlecinin
kontrol zerinde
durmas gereken sreyi
belirler
ReshowDelay Integer Yeni bir kontroln
zerine gelindii
zaman, bu kontrole ait
ipucunun gsterilmesi
iin gereken sreyi
belirler.
ShowAlways Boolean Seilen kontrol aktif
olmad zamanlarda
dahi ipucunun
gsterilmesini salar.
Konu: 1 11
StatusBar
StatusBar
Windows formlarnn durum ubuudur.
ShowPanels birden fazla panelin
gzkmesini salar.
Paneller birden fazla durum mesaj
gsterilmek iin kullanlr.
StatusBar zellikleri
zellik Deer Tipi Aklama
Panels StatusBarPanelCollection Kontroln iinde birden
fazla yaz grntlemek
iin kullanlan panelleri
tutar.
ShowPanels Boolean Birden fazla panelin
gzkmesini belirler.
SizingGrip Boolean StatusBar kontrolnn
yannda, formun
boyutunu deitirmek
iin kullanlan simgenin
gzkmesini belirler
Text String StatusBar zerinde
yazan yazy belirler.
Eer ShowPanels
zellii True ise, bu
zellikte yazlan yaz
12 Modl 1: Programlamaya Giri
gzkmez.
Panel zellikleri
zellik Deer Tipi Aklama
AutoSize StatusBarPanelAutoSize Panelin baz durumlara
gre otomatik
boyutlandrmasn
salar. None deeri
panelin boyutunun
deimeyeceini,
Contents deeri,
panelin ierdii yazya
gre deieceini
belirler. Spring deeri,
durum ubuundaki
bo alanlarn
paylalmasn salar.
BorderStyle StatusBarPanelBorderStyle Panelin kenarlk stilidir.
Raised deeri, panelin
bir dme gibi
gzkmesini, Sunken
deeri, panelin bask
gzkmesini salar.
None deeri, kenarlarn
gzkmesini engeller.
Alignment HorizontalAlignment Panelin yazsnn
hizalanmasnn belirler.
Konu: 1 13
StatusBar1.Panels.Add( p );
Timer1.Interval = 1000;
Timer1.Start();
}
NotifyIcon
NotifyIcon
Windows grev ubuunda grntlenen
simgedir.
NotifyIcon zellikleri
zellik Deer Tipi Aklama
Icon Icon Grev ubuunda
gzkecek simgeyi
belirler
ContextMenu Menu Simgeye sa tkland
zaman alacak men
Text String Simge zerine
gelindiinde
grntlenecek yazy
belirler.
Konu: 1 15
RichTextBox
RichTextBox
TextBox kontrolnden daha gelimi
zelliklere sahiptir.
Seilen yaznn rengi, yaz tipi deitirilebilir
Madde iaretleri kullanlabilir.
Satr balarndaki boluklar ayarlanabilir.
Normal bir metin kutusundan daha gelimi zelliklere sahip bir kontroldr.
TextBox kontrolnde yaznn yaz tipi, bykl gibi ayarlar yaplabilir. Ancak
sadece seilen yaznn rengi, yaz tipi, satr ba genilii, madde iaretleri
kullanm gibi ayarlar yapmak mmkn deildir. RichTextBox kontrol, bu tip
zengin zelliklerin kullanlmasn salar.
RichTextBox zellikleri
RichTextBox kontrol kullancya birok seenek sunar, dolaysyla tasarm ve
alma annda eriilebilen birok zellii bulunur.
deer alr.
WordWrap Boolean Uzun yazlarn bir
sonraki satra geerek
grntlenmesini
salar
DetectUrls Boolean Balant olarak girilen
yazlarn LinkLabel
eklinde alglanmasn
belirler
Lines String() Satrlar String dizisi
olarak tutar
BulletIntend Integer Satrlarn madde
iaretinden ka piksel
akta duracan
belirler
AcceptsTab Boolean Tab tuunu bir karakter
olarak alglanmasn,
dolaysyla bu tua
basldnda
kontrolden
klmasnn
engellenmesini belirler
ShowSelectionMargin Boolean Satr bandaki
boluun
gsterilmesini belirler
RightMargin Integer Satrlarn maksimum
uzunluunu piksel
cinsinden belirler.
iaretli olarak
grntlenmesini
belirler
SelectionAlignment Boolean Seilen satrn
hizalanmasn belirler
SelectionColor Color Seilen metnin rengini
belirler
SelectionFont Font Seilen metnin yaz
tipini belirler
SelectionIntend Integer Seilen satrn, sol
kenara olan uzakln
belirler
SelectionLength Integer Seilen metnin
uzunluunu belirler
RichTextBox Metotlar
Metot Aklama
Find Metin kutusu iinde,
parametre olarak verilen
bir yazy arar. Yazy ilk
grd yerin indisini
dndrr.
LoadFile Bir dosyadan alnan
metni ykler
SaveFile Parametre olarak
verilen konumdaki
dosyaya, metni yazar.
Dosyann rtf veya doc
uzantlarnda
kaydedilmesi, zengin
ieriin grntlenmesi
asndan nemlidir.
Undo Yaplan ilem geriye
alnr
Redo Geri alnan ilem tekrar
yaplr
18 Modl 1: Programlamaya Giri
RichTextBox olaylar
Olay Aklama
TextChanged Metin kutusundaki yaz
deitii zaman
gerekleir
LinkClicked Metin iindeki bir
balantya tkland
zaman gerekleir
Kontrollerin eklenmesi
Form zerine tablodaki kontrolleri ekleyin belirtilen zelliklerini ayarlayn.
Kontrol Kontrol smi zellik Deer
ContextMenu ContextMenu1 Geri Al, Kes, Kopyala,
Yaptr, Sil, Tmn
Se deerlerini ieren
men eleri ekleyin
ContextMenu ContextMenu2 Gizle deerini ieren bir
men esi ekleyin
ToolBar ToolBar1 Buttons Kaydet, A, Kopyala,
Kes, Yaptr, Undo,
Redo, Madde aretle,
Sola Hizala, Saa
Hizala, Ortala komutlar
iin dmeler ekleyin.
Her dmenin
ImageIndex zelliine,
ImageList iinde
bulunan resimlerden
uygun olann indisini
atayn.
ImageList ImageList1 Images Ara ubuundaki
eleri temsil eden
resimler ekleyin
OpenFileDialog -
OpenFileDialog1
SaveFileDialog -
SaveFileDialog1
FontDialog - FontDialog1
StatusBar - StatusBar1 ShowPanels True
Panels ki tane panel ekleyin. lk
panelin AutoSize
zelliini Contents
olarak belirleyin.
NotifyIcon - NotifyIcon1 Icon Uygulamanz iin bir
simge sein
Text Notepad Uygulamas
RichTextBox RichTextBox1 Dock True
Dosya
o Yeni (Ctrl N)
o A (Ctrl O)
o Kaydet (Ctrl S)
o Farkl Kaydet
o k
Dzen
o Geri Al (Ctrl Z)
o Kes (Ctrl X)
o Kopyala (Ctrl C)
o Yaptr (Ctrl V)
o Sil
o Bul
o Yaz Tipi
o Tmn Se
Grnm
o Sola Hizala
o Saa Hizala
o Ortala
o Madde aretle
o Ara ubuunu gizle
Yardm
o Hakknda
Uygulamaya frmBul isminde yeni bir form ekleyin. Bu form, metin kutusunda
aranan deeri bulmak iin kullanlacaktr.
Forma, arama ilemleri iin gereken kontrolleri ekleyin.
Kontrol Kontrol smi zellik Deer
Button Button1 DialogResult DialogResult.OK
Text Bul
Button Button2 Text ptal
CheckBox cbTumKelimeyiSec Text Bulduktan sonra tm
kelimeyi se
Checked True
TextBox txtAranan
Konu: 1 21
Kodlarn yazlmas
Dosya ismini ve dosyann kaydedilip edilmediini tutan deikenleri
tanmlayn
if ( SaveFileDialog1.ShowDialog() ==
DialogResult.OK ) {
dosya = SaveFileDialog1.FileName;
RichTextBox1.SaveFile( dosya );
DosyaIsmi = dosya;
Kaydedildi = true;
}
DurumDegistir();
}
Yeni bir dosya veya var olan bir dosyay ama ilemlerini tanmlayn.
if ( !( yeniDosya ) ) {
// Varolan bir dosya alr.
string dosya = null;
if ( OpenFileDialog1.ShowDialog() ==
DialogResult.OK ) {
dosya = OpenFileDialog1.FileName;
RichTextBox1.LoadFile( dosya );
DosyaIsmi = dosya;
}
}
else {
Konu: 1 23
Kaydedildi = true;
DurumDegistir();
}
if ( !( TumKelimeyiSec ) ) {
// Sadece aranan kelime seilir.
RichTextBox1.Select( start, aranan.Length );
}
else {
int son = start;
int bas = start;
// Linke git
Konu: 1 25
break;
case DialogResult.Cancel:
// ilem iptal edildi
e.Cancel = true;
break;
}
}
}
Her men esinin altna, ilgili ilemleri yazn. Burada dikkat edilmesi
gereken nokta, baz ContextMenu elerinin ve MainMenu elerinin
ayn ilemi yaptdr. rnein Geri Al komutu, her iki mende de
vardr. Bu kodlar farkl yordamlar yerine, ayn yordamn iine yazarak
Handles ifadesine iki men esinin Click olay yazlr.
rnek:
private void MenuItem19_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.Undo();
}
// Yeni Dosya a
private void MenuItem13_Click( System.Object sender,
System.EventArgs e ) {
26 Modl 1: Programlamaya Giri
DosyaAc(True);
}
// Dosya A
private void MenuItem14_Click( System.Object sender,
System.EventArgs e ) {
DosyaAc(False);
}
// Kaydet
private void MenuItem15_Click( System.Object sender,
System.EventArgs e ) {
Kaydet();
}
// Farkl Kaydet
private void MenuItem16_Click( System.Object sender,
System.EventArgs e ) {
FarkliKaydet();
}
// k
private void MenuItem18_Click( System.Object sender,
System.EventArgs e ) {
Application.Exit();
}
// Geri al
private void MenuItem19_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.Undo();
}
// Kes
private void MenuItem21_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.Cut();
}
// Kopyala
private void MenuItem22_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.Copy();
}
// Yaptr
private void MenuItem23_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.Paste();
}
// Yaz sil
private void MenuItem24_Click( System.Object sender,
System.EventArgs e ) {
// silinecek kelime RichTextBox kontrolnde seilen
kelimedir
string silinecek = RichTextBox1.SelectedText;
RichTextBox1.Text = RichTextBox1.Text.Remove(i,
silinecek.Length);
Konu: 1 27
// Tm yazy se
private void MenuItem28_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.SelectAll();
}
// Yaz tipini se
private void MenuItem36_Click( System.Object sender,
System.EventArgs e ) {
// Font seerken, renklerin de grnmesi salanr.
FontDialog1.ShowColor = True;
if (FontDialog1.ShowDialog == DialogResult.OK)
{
RichTextBox1.SelectionFont = FontDialog1.Font;
}
}
// Sola Hizala
private void MenuItem29_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.SelectionAlignment =
HorizontalAlignment.Left;
}
// Saa Hizala
private void MenuItem30_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.SelectionAlignment =
HorizontalAlignment.Right;
}
// Ortala
private void MenuItem32_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.SelectionAlignment =
HorizontalAlignment.Center;
}
// Madde iaretle
private void MenuItem33_Click( System.Object sender,
System.EventArgs e ) {
RichTextBox1.SelectionBullet = Not
RichTextBox1.SelectionBullet;
}
// Dosya bulunmas
private void MenuItem26_Click( System.Object sender,
System.EventArgs e ) {
Bul();
}
}
MDI Formlar
MDI Formlar
Multiple Document Interface Bir ok alt
formu barndran formlardr.
Bu formlarn IsMdiContainer zellii True
yaplr.
Alt formun MdiParent zellii, ait olduu
ana formu belirler
MdiChildren zellii alt form dizisini verir.
MDI formlara alt formlar eklemek iin, form oluturma ilemleri bilinen ekilde
yaplr. Ancak formun MDIParent zellii belirlenmelidir.
Bir formun sahip olduu alt formlara ulamak iin, MDIChildren zelliinden
yararlanlr. Bu zellik tek boyutlu bir Form dizisidir.
// Tm formlar kapatr.
// Alt formlar kapand zaman, dizi otomatik olarak
// yeniden boyutlandrlr.
while (this.MdiChildren.Length > 0)
{
this.MdiChildren[0].Close();
}
Alt formlar geniletildiklerinde, form zerinde yazan bal ana forma tanr.
Alt formda tanml bir men, ana formun mens ile birleir. Bu men birleim
ilemine Merge denir. Men eleri varsaylan olarak, ana formdaki menlerin
yanna eklenir. Ancak men elerinin MergeType zellii ile varsaylan deer
deitirilebilir.
MergeType.Add
Varsaylan deerdir. Bu deeri alan men eleri, birleme sonucunda
menye eklenir.
MergeType.MergeItem
Bu deeri alan menler, sonu mensnde ayn MergeOrder deerindeki
menlerle birleir.
MergeType.Replace
Birleme sonucunda bu men, ayn MergeOrder deerinde olan e ile
deitirilir.
MergeType.Remove
30 Modl 1: Programlamaya Giri
Alt formlar, ana forma basamak eklinde eklenir. Birok alt form ile allyorsa
bu formlarn dzenlenmesine ihtiya duyulur. Alt formlar dzenlemek iin
formun LayoutMdi metodu kullanlr.
this.LayoutMdi(MdiLayout.TileHorizontal)
this.LayoutMdi(MdiLayout.TileVertical)
this.LayoutMdi(MdiLayout.Cascade)
this.LayoutMdi(MdiLayout.ArrangeIcons)
MDI Form iindeki alt formlardan seili olana ulamak iin, formun
ActiveMdiChild zellii kullanlr.
if (! this.ActiveMdiChild == null)
{
this.Text = this.ActiveMdiChild.Text;
}
Konu: 1 31
Fare Olaylar
Fare olaylar
MouseEventArgs, olayla ilgili parametreleri
tutar.
MouseDown
Dmeye basld zaman gerekleir.
MouseUp
Baslan dme kaldrlnca gerekleir.
MouseMove
Kontroln zerinde hareket edince gerekleir.
Fare olaylar, formlar zerinde farenin bir tuunun tklanmas, zerine gelmesi
gibi olaylardr. Bu olayla ilgili parametreler, olay gerekletii zaman
MouseEventArgs nesnesi ile kullancya bildirilir.
MouseEventArgs zellikleri:
Button
Hangi fare dmesine basldn gsterir.
Click
Olay gerekleene kadar, dmeye ka defa basldn belirler. rnein
fareye ift tklanmsa 2 deerini alacaktr.
Delta
Farenin ortadaki dmesinin dnme orann gsterir.
X
Kontrole gre, farenin tkland pozisyonun x koordinatn gsterir.
Y
Kontrole gre, farenin tkland pozisyonun y koordinatn gsterir.
MouseDown olay
Farenin herhangi bir dmesi basld zaman gerekleir. Kontroln Click
olaynda nce alr.
32 Modl 1: Programlamaya Giri
MouseUp olay
Farenin baslan dmesi kaldrld zaman gerekleir.
MouseMove olay
Farenin, kontrol zerinde hareket etmesi ile gerekleir.
Kontrollerin eklenmesi
Form zerine tablodaki kontrolleri ekleyin belirtilen zelliklerini ayarlayn.
Kontrol Kontrol smi zellik Deer
Form isMDIContainer True
ContextMenu ContextMenu1 Alt Klasrler, Kaldr
deerlerini ieren
men eleri ekleyin
MainMenu MainMenu1 Yeni Konum, Dosya
Konu: 1 33
Bilgileri deerlerini
ieren men elerini
ekleyin
StatusBar StatusBar1
TreeView TreeView1
Uygulamaya DosyaBilgileri isminde yeni bir form ekleyin. Form iine tablodaki
kontrolleri ekleyin ve zelliklerini ayarlayn.
Kontrol Kontrol smi zellik Deer
MainMenu MainMenu1 Yeni, Sil, Kapat
deerlerini ieren
men elerini ekleyin
ListBox ListBox1 Dock Fill
Kodlarn yazlmas
Ana Form
Belirtilen konumdaki klasrleri listeleyen kodlar yazn.
public string[] KlasorleriAl( string konum ) {
string[] klasorler =
System.IO.Directory.GetDirectories( konum + @"\" );
return klasorler;
}
Form zerinde grntlenecek klasrlerin bulunduu yeri tutan
deikeni ve yeni formun almasn yazn.
private string YeniKonum;
YeniKonum =
Microsoft.VisualBasic.Interaction.InputBox( "Konum girin:",
"Yeni Konum", @"C:\", -1, -1 );
if ( secilen.Parent == null ) {
TreeView1.Nodes.Remove( secilen );
}
else {
secilen.Parent.Nodes.Remove( secilen );
}
}
if ( e.Delta < 0 ) {
TreeNode sonraki =
TreeView1.SelectedNode.NextNode;
if ( !( sonraki == null ) ) {
TreeView1.SelectedNode = sonraki;
}
}
else {
TreeNode onceki =
TreeView1.SelectedNode.PrevNode;
if ( !( onceki == null ) ) {
TreeView1.SelectedNode = onceki;
}
}
}
KlasorleriListele();
}
Seilen klasrn silinmesini salayan kodlar yazn.
private void MenuItem2_Click( System.Object sender,
System.EventArgs e ) {
string silinecek;
36 Modl 1: Programlamaya Giri
silinecek = ListBox1.SelectedItem.ToString();
zet
Menler
MainMenu, ContextMenu
ToolBar
ToolTip
StatusBar
NotifyIcon
RichTextBox
Hedefler
Access ortam
Veri tipleri
Veri modelleme teknikleri
Birok irket, kurum ve kaytlarn tutan yaplar iin verinin nemi ok byktr.
Verilerin kt zerinde tutulmas hem aramalarn yaplmas hem de kayt
dzeni asndan ok zor bir yntemdi. Bilgisayarlarn i yaamnda
kullanlmaya balanmas ile verilen ynetimi daha da kolaylat. Ancak bu
teknoloji ilerledike kullanlmas zorlamaya balad. Verilerin tutulmas metin
dosyalarndan tablolara aktarld. Gnmzde veri ve tablo yaplarnn ynetimi
artk veritaban yneticilerin eline braklm durumdadr.
Access Ortam
Access ortam
Grev Blmesi
Balang
Yardm
Arama Sonular
Dosya Arama
Yeni Dosya
Tablo oluturmak
Tasarm grnmnde tablo
Sihirbaz ile tablo
Veri girerek tablo
Yeni bir veri taban dosyas veya veri eriim dosyas amak iin kullanlr.
Bu seenek ile tablolar veri girii ile oluturulur. Access kullancnn girdii
verilere gre alan says ve tipi belirler. Ancak alan adlarn daha sonradan
deitirilmelidir.
Veri Yaplar
Metin Veri Tipleri
Text, Memo
Saysal Veri Tipleri
Byte, Integer, Long Integer
Single, Double, Decimal
Tarih Veri Tipi
Genel Tarih, Uzun Tarih, Ksa Tarih
Orta Uzunlukta Tarih, Uzun Saat, Ksa Saat
Yes/No Veri Tipi
OLE Veri Tipi
Not (Memo)
Maksimum 65535 karakter tutar. Byk metinsel veriler iin tercih
edilmelidir.
Otomatik Say (AutoNumber) veri tipi, alana veri girildii zaman otomatik olarak
belirlenen saylar ifade eder. Saylar rasgele ya da birden balayarak girilir.
Ayrca proje konularnda birden fazla bilgi tutulur. Mhendislik Kitab projesinin
Windows ve Web olmak zere iki tane konusu bulunur. Belli bir konuya gre
arama yapmak zorlar.
Eitmenler tek bir alanda toplanp, konular kitaplara gre tekrar dzenlenebilir.
Yeniden dzenlenen bu tabloda ise bir kitap projesi iin iki tane satr oluuyor.
Ayrca Mhendislik kitabnn sadece Web konusunda olduu grlyor. Dier
konu iin de ayrca iki satr eklenmesi gerekir.
Eitmen No Eitmen
1 Ali
2 Veli
Konu: 1 11
Konu No Konu
500 Windows
501 Web
likilerin kurulmas iin tablolarn, birbirlerine referans vermesi gerekir. Yani bir
tablodan dierine ulamak iin bir bilgi gerekir. rnein bir projenin hangi
konuda olduunu belirlemek iin, konu numarasna ihtiya vardr. Bu numara,
projenin hangi konuda olduunu belirleyecektir.
Primary Key
Bir ya da birden fazla alan Primary Key
yaplabilir.
Alanlardaki veriler tekrarlanamaz.
Tablonun bir ya da birden fazla alan, tek bir veriyi temsil etmesi iin Birincil
Anahtar yaplr. Bu anahtar verinin bir daha tekrarlanmamasn salar ve
ilikiler kurulurken ana tabloyu belirler.
rnekteki Birincil Anahtar olan alanlar Eitmen No, Proje No ve Konu No
alanlardr.
Birden fazla alann Birincil Anahtar olarak tanmlanmas, alanlarn tuttuu
verinin birleik olarak tekliini salar. rnein sipari detaylar tablosunda,
sipari numaras ile rn numarasnn beraber tekrarlanmamas gerekir. Aksi
halde bir sipariteki rnn iki farkl adet, indirim vs. bilgileri olacaktr.
Foreign Key
Baka bir tablonun Primary Key alanna
referans gsterir
likideki Primary Key zerinde gncelleme
ve silme ilemleri, bu alanda da yaplabilir.
Cascade Update
Cascade Delete
likilerde, Foreign Key alanndaki deer
kontrol edilebilir
Enforce Referential Integrity
Bir tablo iinde baka bir tabloya referans vermek iin, o tablonun numaras
kullanlr. Yani o tablonun Birincil Anahtar alanna gnderme yaplr. Bu
ilemin yaplmas iin, referans gnderen tabloda bu verinin tutulmas gerekir.
Farkl bir tablonun birincil anahtarn tutan alana Yabanc Anahtar denir.
rnein, ark listesinin tutulduu bir tabloda albm numaras, albmler
tablosundaki Birincil Anahtar olan alana referans verir.
14 Modl 1: Programlamaya Giri
Access ile tablolar arasndaki ilikiler, bir alannn srklenip dier tablodaki bir
alann zerine braklmas ile kurulur. Access bu alanlarn Birincil Anahtar
olup olmadna bakarak ilikinin cinsini belirler.
Unique Constraint
Primary Key dndaki alanlarn tekil
olmas
Unique tanmlanrken alan indekslenir.
Tablolar arasnda sonsuza sonsuz bir iliki kurmak iin, ara tabloya ihtiya
duyulur. Bunun nedeni, her iki tablodaki verilerin birden fazla ei bulunabilir
olmasdr. Yaplan ara tabloda, iki tablodan alnan Birincil Anahtar alanlar
konur. Bu alanlar ikili Birincil Anahtar yaplarak veri btnl salanm
olur.
rnein, Proje ile konular arasnda bir sonsuza sonsuz bir iliki vardr. Bir
projenin birden fazla konusu olabilir ve bir konuda birden fazla proje yaplabilir.
Bunun iin ara tablonun kurulmas gerekir.
Konu No Konu
500 Windows
501 Web
18 Modl 1: Programlamaya Giri
Proje No Konu No
100 500
101 500
101 501
Bu tablo ile 100 numaral Uzmanlk Kitab projesinin 500 numaral Windows
konusunda olduu grlr. Bu tablo biimi, belli konulardaki projelerin
sorgulanmasn da destekler.
Eitmenler ile projeler arasnda da sonsuza sonsuz bir iliki vardr. Bir eitmen
birden fazla projede bulunabilir. Bir projeyi birden fazla eitmen yrtebilir.
Dolaysyla bu iliki iin de bir ara tablo yaplmas gerekir.
Eitmen No Proje No
1 101
2 101
1 100
2 100
Konu: 1 19
Birinci normal form satr baznda gereksiz verilerin kartlmasyd. kinci normal
form ise kolon baznda veri tekrarn kontrol eder. Eer bir kolonda bir veri,
birden fazla kullanlyorsa bu verilerin ayr bir tabloda tutulmas gerekir.
rnekte kurum ismi BilgeAdam, tm satrlar iin yazlmtr. Dolaysyla bu
kolonda veri tekrar yaplmtr. Bu kurum ismi ayr bir tabloda tutulup, ana
tabloda numaras ile referans gsterilmelidir.
Bu durumda, projeler ve kurum tablosu arasnda bire sonsuz bir iliki olduu
iin, projeler tablosuna hangi kuruma ait olduunu belirtmek iin bir Yabanc
Anahtar eklenir.
nc Normal Form
nc Normal Form
Primary Key ile direk ilikisi bulunmayan
alanlar ayr bir tabloya alnr.
(Sehirler Ornek_likiler)
rnler:
Bu tablo, rnlerin detayl bilgilerini tutar. rnn ismi, birim fiyat, eklenme
tarihi, zellikleri, retimde olup olmad, incelenme says gibi bilgilerin tutulur.
rnlerin hangi kategoride olduklar ve salayc firma bilgileri de tutulmaldr.
Ancak kategori ismi kolon baznda birok defa tekrarlanaca iin ikinci
normalizasyon kuralna gre ayr bir tabloya alnmaldr. Salayc firma bilgileri
de ayn ekilde ayr bir tabloda tutulmaldr. Bu durumda bire sonsuz bir iliki
oluur. Yani bir firma birden fazla rn salar, ancak bir rn sadece bir firma
tarafndan salanr. Dolaysyla bu iki alan Yabanc Anahtar olarak
tanmlanmaldr.
22 Modl 1: Programlamaya Giri
Firmalar:
Firma bilgileri ayr bir tablo olarak tutulur. Bilgi olarak adres, mteri temsilcisi
ismi, e-posta ve web sayfas tutulur.
Sipariler:
rnler satn alndktan sonra, sipari bilgisi olarak kayda geer. Siparilerin
nakliye creti, sipari verilme ve gnderilme tarihi, havale ile deme
durumlarnda son deme tarihi, gnderilecek adres, denip denmedii ve
Konu: 1 23
sipariin iptal edilip edilmedii gibi bilgileri tutulur. Ayrca sipariin hangi kaytl
kullancnn verdiini de tutmak gerekir. Bir siparii sadece bir kullanc verebilir
ve bir kullanc birden fazla sipari verebilir. Dolaysyla bir sonsuz bir iliki
oluturmak iin kullanc numaras Yabanc Anahtar olarak tanmlanmaldr.
Sipariler ile rnler arasnda sonsuza sonsuz bir iliki vardr. Yani bir siparite
birden fazla rn bulunabilir. Bir kullanc ayn anda birden fazla rn almak
isteyebilir. Ayn ekilde bir rn birden fazla siparite bulunabilir. Yani bir rn
birden fazla kullancya satlabilir. Bu durumda sipariler ile rnler arasnda
ayr bir tablo yaplmas gerekir.
Stok Merkezleri:
rnlerin belirli ehirlerde veya belirli merkezlerdeki stoklar tutulmas gerekir.
Sipariin verildii yere en yakn stoktan rn gndermek iin bu stok
blgelerinin tutulmas gerekir. Bu stokun adres, e-posta, merkez olup olmad
bilgileri tutulmaldr.
Konu: 1 25
Stok ile rnler arasnda sonsuza sonsuz bir iliki vardr. Yani bir stok
merkezinde birden fazla rn bulunabilir ve bir rn birden fazla stok
merkezinde bulunabilir. Bu iliki iin ara bir tablo yaplmaldr.
Kullanclar:
Bu tabloda kullanc hakknda bilgiler tutulur. sim, soyad, e-posta, kayt tarihi
gibi bilgilerin yan sra siteye giri yapmak iin kullanc ad ve parolann da
tutulmas gerekir. Bu parolann deiiklii durumda gvenlik sorusu ve cevab
da ayrca tutulmaldr.
26 Modl 1: Programlamaya Giri
Yorumlar:
Kullanclarn yaptklar yorumlarn bir tabloda tutulmas gerekir. Ancak burada
dikkat edilmesi gereken nokta, bir kullancnn yorum yazmas iin sisteme giri
yapmas gerekmez. Dolaysyla burada kullanclar tablosuna bir referans
gstermeye gerek yoktur. Yorumlar yazan kiileri takma adlar, yazd
yorumlar, tarih ve verdii puan tutulmaldr.
Ayrca yorumun hangi rn hakknda yapldn belirten ve rnler tablosuna
referans gsteren bir Yabanc Anahtaralannn tutulmas gerekir.
Konu: 1 27
Sepetim:
Kullanclarn rnleri inceledikten sonra sepetlerinde saklamas iin
oluturulan bir tablodur. Bu tabloda rn numaras ve kullanc numarasna
referans gsterilmelidir. Bu rnlerin eklenme tarihi ve adeti de tabloda
tutulmaldr.
Kullanclar rnleri, srekli sepete ekleyip kartabilir. karma ileminde,
verinin tablodan silinmesi gerekir. Ancak bir kaydn srekli eklenip silinmesi
performans drr. Dolaysyla rnn sepetten kartldn belirleyen bir
yes/no veri tipinde alan belirlenebilir. Bu alann deeri evet ise rn sepettedir
ve kullancya gsterilir. rnn tekrar ekleme ileminde ise sadece bu alan
gncellenir.
Kampanyalar:
Kullancya sunulan kampanyalar e-ticaret kavramnda nemli bir yer alr. Bu
kampanyalar bir ya da birden fazla rnn belli tarihler arasnda toplam fiyatta
belli bir indirim yaplmasyla gerekleir. Kampanya tablosunda kampanyann
balang biti tarihleri, devam edip etmedii, ve yaplan indirim birer alan
olarak tutulmaldr.
28 Modl 1: Programlamaya Giri
Bu durumda bir kampanyada birden fazla rn olabilir. Bir rn ise birden fazla
kampanya dhilinde olabilir. Dolaysyla ara tablo eklenerek sonsuza sonsuz
bir iliki kurulmaldr.
Konu: 1 29
zet
Menler
MainMenu, ContextMenu
ToolBar
ToolTip
StatusBar
NotifyIcon
RichTextBox
Hedefler
Select Sorgusu
Tablolardan veri ekmek iin kullanlr.
From ile tablolar belirtilir.
Where ifadesinden sonra kriterler yazlr.
SELECT Alanlar
FROM Tablo smi
WHERE Kriterler
From ifadesi, sorgunun hangi tablo veya tablolar zerinde yaplacan gsterir.
Where ifadesinden sonra, sorgu kmesinde, verilen kritere uyan satrlar
grntlenir. Bu yaplan satr baznda filtrelemedir.
SELECT
Urunler.Isim,
Urunler.BirimFiyat,
Urunler.EklenmeTarihi
FROM Urunler
Select ifadesinde alanlarn ismi verilirken, hangi tabloya ait olduu da yazlr.
Ancak bu durum tek tablo zerinden yaplan ilemler iin gerekli deildir. Birka
tablo zerinde sorgu yapld zaman, alanlar tablo ismiyle belirtmek gerekir.
SELECT
Isim,
BirimFiyat,
EklenmeTarihi
FROM Urunler
Byk Eit
Verilen bir alann veya deerin, kontrol edilen alandan byk veya alana
eit olduunu kontrol eder.
SELECT Urunler.*
6 Modl 1: Programlamaya Giri
FROM Urunler
WHERE Urunler.IncelenmeSayisi >= 100
Kk
Alandaki deerin verilen bir deerden veya baka bir alandan byk
olduunu kontrol eder.
SELECT Urunler.*
FROM Urunler
WHERE Urunler.IncelenmeSayisi < 100
Kk Eit
Verilen bir alann veya deerin, kontrol edilen alandan kk veya alana
eit olduunu kontrol eder.
SELECT Urunler.*
FROM Urunler
WHERE Urunler.IncelenmeSayisi <= 100
Between - And
Alandaki deerin iki deer arasnda olduunu kontrol eder. Deerlere eit
olduklar durumlar da sonu kmesine dhil edilir.
SELECT Urunler.*
FROM Urunler
WHERE Urunler.IncelenmeSayisi BETWEEN 100 AND 200
Not
Verilen kritere uymayan kaytlar dndrr.
SELECT Urunler.*
FROM Urunler
WHERE NOT Urunler.IncelenmeSayisi = 0
Like
Alandaki deerin belirli bir metin biimde olduunu kontrol eder.
Is Null
Baz alanlarn deerleri bo braklm olabilir. Bo braklan alanlarn
deerleri Null olarak geer. Sorgularda bo alanlarn kontrol Is Null
ifadesi ile yaplr.
SELECT Urunler.*
FROM Urunler
WHERE Urunler.Ozellikler Is NULL
Bir sorguda birden fazla kriter kullanlabilir. Ancak bu kriterlerin AND veya OR
ifadeleri ile ayrlmalar gerekir. AND ifadesi ile ayrlan kriterlerin hepsinin
saland satrlar sonuca dhil edilir. OR ifadesi ile ayrlan kriterlerin herhangi
biri saland satrlar sonuca dhil edilir.
rnek: 12.12.2002 den sonra kaydolmu, ismi E ile balayan kullanclar.
SELECT *
FROM Kullanicilar
WHERE Kullanicilar.KayitTarihi > #12/12/2002# AND
Kullanicilar.Isim Like 'E*';
Hesaplama Fonksiyonlar
Hesaplama Fonksiyonlar
Sum Toplam
Avg Ortalama
Max Maksimum
Min Minimum
Count Sayma
Alanlar zerinde sayma, toplama, ortalama alma gibi aritmetik ilemlerin yan
sra minimum maksimum deerlerin alnmas gibi ilemler de yaplabilir. Bu
ilemlerin sonucunda saysal bir sonu ortaya kar. Bu say, sonu tablosunda
gsterilirken herhangi bir alan ismi ifade etmez. Dolaysyla sonu tablosunda
saysal deerleri gsterilirken mantksal bir isim verilmesi gerekir. Bu ifade ise
AS anahtar kelimesi ile belirtilir.
Sum
Kriterlerin saland alanlar zerinde toplama ilemi yapar.
Avg
Kriterlerin saland alanlarn ortalama deerini alr.
Max
Kriterlerin saland alanlarn maksimum deerini alr. Metinsel deerlerde
alfabetik olarak sralama yapar.
Min
Kriterlerin saland alanlarn minimum deerini alr.
Count
Deeri Null olmayan satrlarn ka tane olduunu verir. Genellikle tablolardaki
satr says istendiinde bu fonksiyon kullanlr. Ancak bu tip bir sorguda,
saylan alann bo bir deer almamas gerekir. Primary Key alannn
zerinden bir saym yaplabilir.
Insert
Insert Sorgusu
Tablolara veri eklemek iin kullanlr.
INSERT INTO Tablo (Alan1, Alan2,)
VALUES (Deer1, Deer2)
Bu tip Insert sorgularnda sadece tek bir deer girilebilir. Ancak baz
durumlarda birden fazla verinin girilmesi istenebilir. Bu durumda, girilecek
deerler Select cmlesiyle baka bir tablodan alnr.
rnek: denen siparilerin tutulduu ayr bir tablo oluturulur. Sipari
tablosundan bu tabloya tm denen kaytlarn aktarlmas ilemi Insert
Select cmlesi ile yaplr.
Update
Update Sorgusu
Tablolarda veri gncellemek iin
kullanlr.
UPDATE Tablo
SET Alan1 = Deer1, Alan2 = Deer2,
UPDATE Kullanicilar
SET ParolaSorusu = 'Yeni Soru', ParolaCevabi = 'Yeni Cevap'
WHERE KullaniciId = 23
rnek:
UPDATE Kullanicilar
SET ParolaSorusu = 'Yeni Soru', ParolaCevabi = 'Yeni Cevap'
WHERE KullaniciId = 23
Konu: 1 13
Delete
Delete Sorgusu
Tablolardan veri silmek iin kullanlr
Tablodan veri silmek iin kullanlr. Bu sorguda alan isimleri belirtilmez, ancak
WHERE kriterinin unutulmamas gerekir.
Szdizimi:
DELETE FROM Tablo smi
rnek:
DELETE FROM Sepetim Where KullaniciId = 12
14 Modl 1: Programlamaya Giri
INNER JOIN
Inner Join
Tablolar birletirmek iin kullanlr.
Primary Key ve Foreign Key alanlar
zerinden birletirme yaplr.
SELECT Alanlar
FROM Tablo1 AS isim1 INNER JOIN Tablo2 AS isim2
ON isim1.Alan = isim2.Alan
FROM
Urunler INNER JOIN
StokDurumu ON Urunler.UrunId = StokDurumu.UrunId;
Szdizimi:
SELECT Alanlar
FROM Tablo1 AS isim1 INNER JOIN Tablo2 AS isim2
ON isim1.Alan = isim2.Alan
SELECT
StokDurumu.Adet,
Urunler.Isim
FROM
Urunler INNER JOIN
StokDurumu ON Urunler.UrunId = StokDurumu.UrunId;
kiden fazla tablodan bilgi ekmek iin, nce iki tablo birletirilir. Sonu olarak
kan tablo ile de dier tablolar tek tek birletirilir. Birletirme ilemi ((Tablo1 +
Tablo2) + Tablo3) + Tablo4 eklindedir. Inner Join kullanlrken
parantezlerin unutulmamas gerekir.
SELECT
k.Isim,
k.Soyad,
s.Adet,
u.BirimFiyat
FROM
(Urunler u INNER JOIN
Sepetim AS s ON u.UrunId = s.UrunId) INNER JOIN
Kullanicilar AS k ON k.KullaniciId = s.KullaniciId
WHERE k.KullaniciId = 1
16 Modl 1: Programlamaya Giri
Group By
Group By
Ayn verilerin gruplanmasdr.
Hesaplama fonksiyonlar ile kullanlr.
Hesaplama fonksiyonunda
kullanlmayan alanlar gruplanmaldr.
SELECT k.Isim, k.KategoriId,
SUM(u.BirimFiyat) AS [Toplam Fiyat],
COUNT(UrunId) AS [rn Says]
FROM
Urunler u INNER JOIN
Kategoriler k ON u.KategoriId = k.KategoriId
SELECT
k.KategoriId,
COUNT(UrunId) AS [rn Says]
FROM
Urunler u INNER JOIN
Kategoriler k ON u.KategoriId = k.KategoriId
GROUP BY k.KategoriId
Tablodan kategori numaras dnda baka herhangi bir alan daha isteniyorsa,
bu alan Group By ifadesine ya da bir hesaplama fonksiyonunun iine
alnmaldr.
SELECT
k.Isim,
k.KategoriId,
Sum(u.BirimFiyat) AS [Toplam Fiyat],
Konu: 1 17
Aritmetiksel lemler
Aritmetiksel lemler
Toplama, karma, Blme, arpma
FROM Urunler
SELECT
Urunler.Isim,
BirimFiyat * 1.18 AS [KDV Dahil Fiyat]
FROM Urunler
18 Modl 1: Programlamaya Giri
SELECT
Sum(BirimFiyat) * 1.18 AS [Toplam rnler Fiyat KDV Dahil]
FROM Urunler
SELECT
Kullanicilar.Isim + ' ' + Kullanicilar.Soyad AS [sim Soyad]
FROM Kullanicilar
zet
Menler
MainMenu, ContextMenu
ToolBar
ToolTip
StatusBar
NotifyIcon
RichTextBox