- Katılım
- 2 Ağu 2010
- Konular
- 5,330
- Mesajlar
- 24,645
- Çözüm
- 54
- Online süresi
- 1mo 20d
- Reaksiyon Skoru
- 6,396
- Altın Konu
- 425
- Başarım Puanı
- 514
- MmoLira
- -2,509
- DevLira
- 0
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
]DERS 1
Çıktığı günden beri büyük bir beğeni toplayan ve programcılığı zevke dönüştüren Visual basic Programlama dili, hak ettiği ilgiyi gördü. Visual Basic ile kontrollerini ve dilini anlatmaya çalışacağım..
İlk olarak Visual Basic 6.0 aldığınızı ve yüklediğinizi varsayarak başlıyorum. Yükleme sırasında eğer yeteri kadar boş yeriniz varsa tüm bileşenleri yükleyin, her biri işe yarıyor.
Yükleme bittikten sonra Microsoft Visual Studio 6.0 / Microsoft Visual Basic 6.0.exe yi açalım. Programı açtığımızda penceredeki ilk seçenek olan Standart.exe ile başlayalım. Açtıktan sonra Visual Basic çalışacak ve yeni bir form açılacaktır.
Ekranda gördüğümüz en önemli üç bölüm: 1-Form penceresi, 2-Toolbox ve 3-Properties bölümüdür. İlk form Form 1 diye adlandırılır. Burası yazacağımız programımızın ön yüzünün yani dizaynın yapılacağı yerdir. Bu dizayn Toolbox bölümündeki simgelerle belirlenir. Properties bölümü de Toolbox taki simgelerin özelliklerini belirler (yazı tipi, tenk, icon vb.) Bir programı 2 ye bölersek dış görünümü ve iç görünümü vardır. Dış görünümü dizaynıdır. İç görünümü ise en önemli yeri; kodlar dır.Visual Basic, çok yönlü bir program olduğu için nereden başlasam bilmiyorum ama biyerden başlamalıyız, ve artık Basic diline geçelim.
ToolBox penceresindeki elemanları açıklayalım. Her elemanın 2 yönü vardır 1. Dizayn yönü yani işin en kolayı. Tollbox tan seçip form üzerine düzgün yerleştirmekten başka bir şey yok. 2. bölümü ise Properties bölümü yani iç dizaynı, kodların ve Basic dilinin bulunduğu bölüm. Tollbox a dönelim;
1-) Text ;
Text bilgi girişi için kullanılan bir simgedir aynı zamanda Türkçede yazı demektir . Programın kullanımı esnasında kulanıcının yazı yazabileceği yerlerdir. Dizaynı çok basit gibi görünse de Properties bölümünde birçok özelliği vardır. Şimdi Text elemanının Basic dilini açıklamadan önce .(nokta) konusuna değinelim; nokta bir elemanın özelliğini belirlemek için kullanılır. Örneğin Form1e bir Text elemanı koyduk. Text elemanını ilk koyuşumuzda, üstünde Text1 yazar. İkincisini koyduğumuzda Text2 yazar. Bunu değiştirmek için; Text1 seçilmeli ve Properties menüsünden Text1 in Text özelliği değiştirilmelidir. Burada kafanız karışmasın text Türkçede yazı demek, yani Text1 kutucuğunun yazısı değiştiriliyor.
-Properties;
* Text
Properties; penceresi altında text özelliğinin ne işe yaradığını anladık bunu daha ayrıntılı anlatmak gerekirse Basic dilinde şu şekilde yapabiliriz;
Text1.text = istediğimiz birşey ile
Text1 = istediğimiz birşey aynıdır.
Tabiiki bunu Properties penceresi altında yapmak Basic dilinde yazmaktan daha kestirmedir.
Eğer Text kutusunun içeriğinde bir sayı söz konusu ise bu sayıyı girerken (Basic dilinde) Val komutunu kullanmamız birtakım yanlışlıkları önleyebilir. Ör/
Text1.text = Val(istediğimiz bir sayı) ve val yöntemi sadece Basic in karıştırmaması içindir.
Şimdi Toolbox penceresinden Text ve Label elemanlarını kullanarak küçük bişey yapalım;
Label elemanını daha sonra açıklayacağım ama şimdi kısaca; Bir pencere üzerinde yazan yazılardır diyebiliriz. Şimdi Toolbox tan bir Text ve Label seçip alt alta gelecek şekilde dizynını yapalım;
Dizaynını hala bitirmedik. İstersek Text kutucuğunda yazan text1 i silebiliriz. Properties penceresinden Text1 in text özelliğine gelelim daha önce anlattığım gibi orada text1 yazıyor onu silersek Text kutucuğunun içindeki Text1 başlığı da silinmiş olur. Gelelim Label in başlığını nasıl değiştireceğimize. Label in Properties penceresinde text özelliği yok. Bunun yerine Caption (Türkçede başlık demek) özelliği var bunu da ordan değiştirmek zorundayız. Caption un yanında yazan label1 i de siliyoruz ve Label kutucuğumuzdaki label1 yazısı da doğal olarak silinmiş oluyor.
Dizaynı tamamladıysak gelelim Basic dilinde programı yazmaya. Ne yazıcağımızı hala bilmiyoruz. Örneğin text1 e yazılan bir yazının aynısının label1 de gözükmesi için basit olarak; Text1 e çift tıklayın. Private Sub Text1_Change() ve End Sub arasına komut yazalım;
Label1.Caption = Text1.text
Komutu yeterlidir. Kodda gördüğümüz gibi label1 i text1 e eşitledik. Programı calıstırıp bakabiliriz.
Devam edelim formu silmeyin birde if then kalıbına örnek verelim;
Text1 kutucuğuna nasılsın yazılıcak ve Label1 kutucuğu da bize iyiyim siz nasılsınız? olarak karşılık verecek. Burada şu Neden-Sonuç ilişkisini kavramamız lazım. Mantık şöyle; Eğer text1 kutucuğuna <nasılsın> yazılırsa label1 kutucuğuna <iyiyim siz nasılsınız?> yazılsın Text1 kutucuğumuza çift tıklayalım ve şöyle bişey ekrana gelicek;
Private Sub Text1_Change()
End Sub
Burada Pravite Sub Text1_Change() bir olaydır. Basic dilinde Events olarak adlandırılır. Şimdi kafanızı oraya takmayın Events leri daha sonra anlatıcağım. End Sub ise olayın bittiğini haber eden komuttur. Bu her programda kullanılmalıdır, şarttır. Private Sub Text1_Change() ile End Sub un arasına yukarda anlattığım mantığı koyucaz. Eğer text1 kutucuğuna <nasılsın> yazılırsa label1 kutucuğuna <iyiyim siz nasılsınız?> yazılsın tabi bu mantık olarak, bunu oraya yazmıycaz , Basic diline çevirerek yazıcaz. Bunu Basic diline çevirirken if-then kalıbını kullanmalıyız. İleriki konulardaki bi kalıp ama şimdiden başlayalım yavaş yavaş öğrenicez Evet Pravite Sub Text1_Change() ile End Sub un arasına şu satırı koyalım;
If Text1.Text = naber Then Label1.Caption = iyiyim siz nasılsınız?
Yani tam olarak şu şekilde olucak;
Private Sub Text1_Change()
If Text1.Text = "naber" Then Label1.Caption = "iyiyim siz nasılsınız?"
End Sub
if Türkçe mantıktaki eğer yerine geçiyor. Text1.Text = naber de Text1 başlığı naber olursa mantığıdır. Then Label1.Caption = "iyiyim siz nasılsınız?" da Label1 başlığı iyiyim siz nasılsınız?" olsun mantığı dır. İşlemi bitirdiysek yukarıdaki Start düğmesine basalım. Boşluğa naber yazılırsa aşağıda iyiyim siz nasılsınız? yazısı çıkacaktır.
Bu belki de Visual Basic teki en basit program.. Bu programda text ve caption özelliğinin birbirine eşit olduğunu öğrendik. Aynısını Label kullanmadan da yapabiliriz. Mesela Label yerine bitane daha text kutucuğu ekler,
Label1.Caption = "iyiyim siz nasılsınız? Yerine;
Text2.Text = iyiyim siz nasılsınız? yazarsınız bu sefer 2 tane text olur.
2-Command Button & MsgBox;
CommandButton adından da belli olacağı gibi bir komut uygulama butonudur.ToolBoxtan İlk seçip formumuzun üzerine koyduktan sonra, başlığı ve komutlarda kullanacağımız ismi Command1 olarak gözükür bunu değiştirmek için aynı labeldeki gibi properties bölümünden caption özelliğini değiştirebiliriz.
-- Style -- özelliği;
Bu özellik CommandButton da resim olup olmayacağına karar verir.
0 ise üzerinde, Properties bölümündeki Caption özelliği ile belirlenen yazı bulunur.
1 ise üzerinde Properties bölümünden konumu secilecek olan Picture özelliği ile belirlenen icon veya resim bulunur.
-- DownPicture -- özelliği;
Bu özellik ile komut düğmesine basılı iken gösterilecek resim belirlenir.
-- Default -- özelliği;
Bu özellik bölümünden True seçili ise, o düğmenin bulunduğu form üzerinde Enter a basılması halinde o düğmeye tıklanmış olur.
Biraz da MsgBox hakkında bilgi edinelim ve bunun için örnek bi program yazarsak daha iyi kavrarız..;
MsgBox;
MsgBox adından da anlaşılabileceği gibi mesaj kutusu anlamına gelir. Şimdi bu MsgBox lara özellikle Windows hatalarından hiç de yabancı değiliz. Mesela bi oyun yükledik ve tam açıyoruz dann!! Bi msgbox please insert correct CD neymiş canı Crack çekiyomuş J Herneyse bu ve bunun gibi birçok msgbox larla karşılaşırız. Bir forma MsgBox koyabiliriz. Tabiiki bu işinde her iş gibi incelikleri var. İconu X mı olsın ? mi olsun veya seçenekleri Evet-Hayır olsun, Durdur-YenidenDene-Yoksay olsun veya sadece Tamam olsun.. Sonuncusu da hangi tuş aktif olsun, mesela; evet-hayırlı bişey çıktı kullanıcı evet aktif olsun ve kullanıcı entera basınca evet demiş olsun.. bunun gibi ve bu özelliği istersek belirlemeyiz yani bize kalmış. Şimdi gelelim bunları nasıl yapıcağımıza;
Mesela bomboş bi form açalım ve kodlar bölümüne forma çift tıklayarak girelim;
Private Sub Form_Load() yazar. Listeden en alttaki Unload ı seçelim ve yeni kodlar;
Private Sub Form_Unload(Cancel As Integer) olucak bu kodun anlamı çıkarken demektir. Yani biz kullanıcı programdan çıkarken mi MsgBox cıksın diye bi kod yazıcaz.
Hemen Private Sub Form_Unload(Cancel As Integer) ın altına ekleyelim;
MsgBox ("Hayırlı Ramazanlar") yani tam kod bu şekilde olucak;
Private Sub Form_Unload(Cancel As Integer)
MsgBox ("Hayırlı Ramazanlar")
End Sub
Bu kodlar en basiti ince olayları daha yazmadık, yani bi iconu falan yok. Eğer icon veya bi seçenek koyacak olursak şu kodları veya numaraları aklımızda tutalım;
-----Seçenek----- kod ve numaraları-----
0 vbOkOnly (sadece Tamam seçeneği)
1 vbOkCancel (Tamam ve İptal seçenekleri)
2 vbAbortRetryIgnore (Durdur,Yeniden Dene ve Yoksay seçenekleri)
3 vbYesNoCancel ( Evet,Hayır ve İptal seçenekleri)
4 vbYesNo (Evet ve Hayır seçenekleri)
5 vbRetryCancel (Yeniden Dene ve İptal seçenekleri)
-----İcon-----kod ve numaraları-----
16 vbCritical (Hata iconu)
32 vbQuestion (Soru iconu)
48 vbExclamation ( ! işareti olan icon)
64 vbInformation (Bilgi iconu)
-----Aktiflik (varsayılan düğme)-----kod ve numaraları-----
0 VbDefaultButton1 (1. Düğme Aktif)
256 VbDefaultButton2 (2. Düğme Aktif)
512 VbDefaultButton3 (3. Düğme Aktif)
Şimdi bu tabloya göre hem kodlar var hem numaralar yani hem kodu yazsak hem de kod yerine numarayı yazsak bir şey fark etmez. İnce ayarları da öğrendiğimize göre ince ayarı olan bi kod yazalım;
Private Sub Form_Unload(Cancel As Integer)
MsgBox ("Çıkmak istediğinizden emin misiniz?"), 4 + 32 + 0
End Sub
MsgBox mesajı yazıldıktan sonra tırnak ve parantez kapatılıp virgül koyularak ince ayarlara girebiliriz. Örnekte kodlar numaralarıyla birlikte yazılmıştır. 4; seçeneklerin Evet-Hayır oduğunu belirler. 32; bir soru (Question) iconu olmasını sağlar. 0 ise; 1. butonun aktif olmasını sağlar. Numaralarıyla birlikte yazdığımız gibi kodlarıyla da yazabiliriz. Yani şu şekilde olur;
Private Sub Form_Unload(Cancel As Integer)
MsgBox ("Çıkmak istediğinizden emin misiniz?") , vbYesNo + vbCritical +
vbDefaultButton1
End Sub
Şimdi basit bir hesap makinesi yapalım;
2 tane Text, 2 tane Label ve 4 tane CommandButton a ihtiyacımız olacak. Formumuzun üstüne 2 tane Text i, arasında yaklaşık 1cm boşluk kalacak şekilde yerleştirelim. Aralarında kalan 1cm boşluğa 1. Labeli koyalım, en sondaki Text2 nin yanına boşluk bırakmadan Label2 yi koyalım. Bu sıranın altına da 4 tane CommandButton yerleştirelim. Command1 i + olarak adlandıralım (properties menüsünün caption özelliğinden) bu toplama işlemini yapacak olan butonumuz. Command2 yi - olarak adlandıralım bu çıkarma işlemini yapacak olan butonumuz. Command3 ü * olarak adlandıralım bu çarpma işlemini yapacak olan butonumuz. Command4 ü / olarak adlandıralım ) bu bölme işlemini yapacak olan butonumuz. Yazı boyutu küçük gelebilir, bunun için gene properties menüsündeki Font özelliğinden yazının boyutunu ve stilini ayarlayabiliriz.Dizayn bölümünü bitirdik.
Şimdi gelelim kodlara. İlk önce mantığı açıklıyım; Command1 e basılırsa Text1 ve Text2 toplansın, Label2 ye yazılsın. Command2 ye basılırsa Text1 den Text2 çıkarılsın, Label2 ye yazılsın. Command3 e basılırsa Text1 ve Text2 çarpılsın, Label2 ye yazılsın. Command4 e basılırsa Text1 Text2 ye bölünsün, Label2 ye yazılsın. Birde sayıların söz konusu olduğu text lerde parantezden önce Val komutu girilmesi gerekir ki, çıkabilecek bir hata giderilsin. Kodları yazmaya Command1 click olayıyla başlayalım, kodlara geçmek için Command1 e çift tıklayalım;
Private Sub Command1_Click()
Label1 = "+"
Label2 = Val(Text1) + Val(Text2)
End Sub
Not: Label1 = "+" komutuyla
Command1 e tıklandığında 2 Text arasına koyduğumuz Label1 in + olmasını sağladık. Forma dönelim ve Command2 ye çift tıklayarak kodlara devam edelim;
Private Sub Command2_Click()
Label1 = "-"
Label2 = Val(Text1) - Val(Text2)
End Sub
Şimdi Command3 ü hazırlayalım;
Private Sub Command3_Click()
Label1 = "*"
Label2 = Val(Text1) * Val(Text2)
End Sub
Command4 e geçelim;
Private Sub Command4_Click()
Label1 = "/"
Label2 = Val(Text1) / Val(Text2)
End Sub
Şimdi hesap makinemiz hazır, biraz da forma MsgBox ekleyelim; mesela sayı girmeden işlem yaparsa uyarıcı bi MsgBox ayarlayalım. Bunun için her Command Click olayına şu kodu ekliycez;
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz!"), vbExclamation
End If
Mantığı şöyledir; eğer Text1 veya Text2 boş olursa MsgBox çıksın. Tüm kodlar şu şekilde olucak;
Private Sub Command1_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "+"
Label2 = Val(Text1) + Val(Text2)
End Sub
Private Sub Command2_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "-"
Label2 = Val(Text1) - Val(Text2)
End Sub
Private Sub Command3_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "*"
Label2 = Val(Text1) * Val(Text2)
End Sub
Private Sub Command4_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "/"
Label2 = Val(Text1) / Val(Text2)
End Sub
]DERS 2
---------------
Kısaca 1. derste Commandbutton ve Text in basit özelliklerini, msgbox u öğrendik. ve bunları kullanarak ufak bir hesap makinesi yazdık. Önce Textbox ve Commandbutton nesnelerinin Properties başlığı altında özelliklerinin bu kadar kısa olmadığını söyliyip diğerlerini de listeleyelim;
Textbox Properties
* Alignment : 0 Left ,1 Right, 2 Center olarak 3 bölümdür yazının textboxta yerini belirler, genelde properties altında seçeriz fakat özel durumlarda code bölümünde Text1.Alignment = 0 gibi rakam vererek kullanılır.
* Appearance : 0 Flat , 1 3D olarak 2 bölümdedir textbox görünümünü değiştirir.
* BackColor : textbox rengini belirler.
* BorderStyle : textbox görüntüsü çerçeveli/çerçevesiz ayarı.
* CausesValidation : Textbox kutusu kontrolü kaybedince yani, başka bi kontrole Mouse veya klavye ile geçildiğinde Validate olayının çalışıp çalışmayacağını belirler. Normalde bu özellik True dur ve Validate olayı çalışır. Peki ne işimize yarar.. Bu olayla kullanıcının girdiği bir metni o anda kontrol edebiliriz. Uyarı gönderebilir veya değiştirebiliriz. Ör; sadece rakam yazılması greken bir textboxa başka karekter girişi olursa bu özelliği kullanarak uyarıp silebiliriz.. İlerde bir örnekle açıklarım;
* Enabled : Genelde her nesnede bulunur. Enabled= true yada false değeri vererek elemanı aktif ya da pasif yaparız. Bir eleman foruma yerleştirildiğinde otomatik olarak = true değeri alır.
* Font : Yazıtipi için.
* ForeColor : Yazı Rengi.
* Height : Elemanın yüksekliği.
* HideSelection : text1.HideSelection = True ise textboxta seçilen metnin, başka bir kontrole geçildiğinde seçilen kısım gizlenir. = False ise hepsi gözükür.
* Index : Aynı isimli birden çok eleman oluşturulmuşsa VB bu nesneleri bir dizi olarak görür. Index parametresi bu nesnenin dizedeki kaçıncı eleman olduğunu belirler, bu nesneye sonradan indexiyle ulaşılır.
* Locked : True ise kullanıcı textbox üzerinde hiçbir değişiklik yapamaz.
* MaxLength : Text1.MaxLength = 10 ile text1 e girilecek karekter sayısını 10 ile sınırlayabiliriz. Properties bölümünden değer verebilirsiniz.
* MultiLine : textbox a birden fazla satır girişi yapmamızı sağlar, = true , false değerleriyle kontrol edilir.
* MousePointer : Mouse textbox üzerine gelince alacağı şekil belirlenir.
* Parent : Textboxun üzerinde bulunduğu forma ulaşmayı sağlar. Nesnenin isminden sonra verilen parent özelliği o nesneyi değil nesnenin üzerinde bulunduğu formu temsil eder. Ör; Text1.Parent.Print Merhaba komutu Text1 in bulundu form üzerine Merhaba yazar. Buna ihtiyaç duyulmasının sebebi; çoklu formlarla çalışma esnasında yazılabilecek kodların karışmaması içindir.
* PasswordChar : textboxa girilen bir metnin bütün karekterlerini belirlediğimiz bir karekter gibi göstermeye yarar. Hepimizin bildiği Password girişlerinde kullanılır. Ör Text1.PasswordChar = "*" ile metin ***** şeklinde gözükür.
* ScrollBars : Multiline özelliği true olması kaydı ile çalışır. Textbox a Sağ sol ve ikisibirden olmak üzere 3 çeşit scrollbar uygulanabilir.
* SelStart ve SelLength : Textboxa girilen metni seçmemize yarar. Bunu Mouse ile yapabiliriz fakat kodla olması, bize bazı kolaylıklar sunar. Ör ilk 3 haneyi seçtirip kopyalatabiliriz ya da textbox a tek Click olayında bütün metni seçtirebiliriz. Hemen ufak bir örnek gösteriyim.;
MaxLength i 5 karektere ayarlayalım böylece textboxa 6. karekter girilemez. Kod bölümüne geçip Text1_Click() olayı altına kodumuzu yazalım;
Text1.SelStart = 0
Text1.SelLength = 5
Burada selstart ile seçmeye başlanacak karekter belirlenir ve sellenght ile bitirecek karekter.
Text1 e tıkladığımızda 5 karekter otomatik seçilmiş olur. Ha şimdi bir de bu textboxu sınırlamadığımızı düşünelim yani kullanıcı istediği kadar karekter girsin ve biz bütün metni nasıl seçeriz? Şöyle seçeriz;
Private Sub Text1_Click()
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
Burada selstart tekrar aynı 0 dan başlıyoruz sellength te ise kullandığımız Len() komutu var. Len(text1) ile text1 elemanına girilen toplam metin sayısına ulaşmış oluruz.
* SelText : Textbox ta seçilmiş olan karekterler üzerinde işlem yapmamızı sağlar ör, bir commandbutton koyup click olayı altına Text1.SelText = Selam yazarsak çalıştırdığımızda Mouse la seçtiğimiz alanın Selam olarak değiştirildiğini görürüz.
* TabIndex : Form üzerinde her nesnenin bir TabIndex i vardır. Girilen rakam değerine göre Forum üzerinde Tab ile ulaşacağımız elemanların sırasını belirleyebiliriz.
* TabStop : True , False değerleri alır. Flase ise kullanıcı bu nesneye tab tuşu ile ulaşamaz.
* Text : 1. dersten biliyorsunuz! Ör; text1.text= selam(textboxa selam yazılır.)
* ToolTipText : Nesnein Üzerinde Mouse la durduğumuzda kutucuk içinde çıkan yazı kullanımı içindir. Text1.ToolTipText = Doldurunuz. Şeklinde Kullanılır.
* Visible : True , False değerleri alır. Flase ise kullanıcı bu nesneyi göremez.
Command Button Properties
* Appearance : 0 Flat , 1 3D olarak 2 bölümdedir Commandbutton un görünümünü değiştirir.
* BackColor : Buton rengini Style özelliği 1-Graphical olması kaydı ile değiştirir. Eğer Style 0-Standart ise butonda değişiklik olmaz.
* Caption : 1. dersten biliyoruz. Commanbutton üzerineki yazıyı değiştirir. Ek bir özellik veriyim cammand1.caption = Gi&riş olarak yazılırsa & işaretinden sonraki karekterin altı çizilir bu da Windowstan tanıdığımız kısayol özelliğidir.
[backcolor da dahil alttaki Picture ile ilgili parametreler çalışması, style özelliğinin 1-Graphical olamasına bağlıdır.]
* Picture : Belirlenen resim CommandButton a ( Enabled = True iken ) yerleştirlir.
* Disabled Picture : Belirlenen resim CommandButton a ( Enabled = False iken ) yerleştirlir.
* Down Picture : Belirlenen resim butona tıkladığımızda gözükür.
* Default : Bir CommandButton un default özelliği true ise, o formda klavyeden enter a basarak butona tıklamış oluruz.
* Cancel : Default özelliği gibidir klavyeden ESC ile tıklanmış olur.
[diğer parametrelerin genel olarak anlamları aynıdır]
---------------------------------------
TextBox ve CommandButton un Properties altında bulunan tüm paremetrelerini listeledim. Bu özellikler bildiğiniz gibi komut satırından nesne.parametre = gibi şekillerde kullanılır, dizayn kısmında gerektiğinde Properties menüsünden de değerler girilebilir. Şimdi bir de Events var. Her nesnenin kendine ait olayları vardır. Bunları code bölümünden değiştirebiliriz.
Bu sadece hatırlatma gibi olsun. Uzun ve toparlanması gereken bi konu olduğundan diğer yazıda sırf onları acıklarım şimdilik örnek bir şifre girişi yapalım.
ÖRNEK;
Üzerinde çalıştığımız bir proje var ve biz buna şifre girişi koymak istedik. Çalıştığımız proje Form2 olsun Şifre girişi için kullanacağımız form da Form1. Bir projeye istediğimiz kadar form ekleyebiliriz sırası ile form1 form2 diye gider. Eklemek için Standart çubuğundan AddForm a tıklayalım.
Basit bir şifre düzeni için Forma 1 label, 1 textbox, 2 Commandbutton ekleyelim. Ve dizaynı paşa gönlünüze göre düzenleyin;
Şimdi code bölümüne geçelim;
Bazı genel özellikleri dediğim gibi properties menüsü altından değiştirebilirsiniz. Simdilik ben bazılarını kod olarak yazıyorum karışıklık olmasın. Bunlar From açıldığında devreye geçeceği için Form_Load olayı na yazıyoruz;
Label1.Caption = "Şifre"
Text1.Text = "" açılışta silinmesi için
Text1.PasswordChar = "*"
Text1.MaxLength = 5
Command1.Caption = "Giriş"
Command1.Enabled = True
Command2.Caption = "İptal"
Command2.Cancel = True
Şu mantıkla yazıcaz; tekrar if , then else end if komutlarını kullanıcaz. Yani eğer command1 e tıkladığımızda text1 e girilen değer, bizim belirttiğimiz değere eşitse Form2 ye geçiş yapılacak. Değilse Msg box ile uyarı yapalım. Command1 e çift tıklayarak code bölümüne geçiyoruz. Otomatikman Command1_Click() event i altında geçiyoruz. Ve kodumuzu yazalım;
If Text1.Text = "123" Then
Form1.Hide
Form2.Show
Else
MsgBox ("Yanlış Şifre"), vbCritical
End If if döngüsünü kapatıyoruz
Şimdi Command2 yi de çıkış için ayarlayalım. çift tıklayarak araya end yazmamız yeterli. Proje tamamen sonlanmış olur. Tüm kodlar şoyle olacak;
Private Sub Command1_Click()
If Text1.Text = "123" Then
Form1.Hide form1 i saklıyoruz
Form2.Show form2 ye geçiyoruz.
Else
MsgBox ("Yanlış Şifre"), vbCritical
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Label1.Caption = "Şifre"
Text1.Text = ""
Text1.PasswordChar = "*"
Text1.MaxLength = 5
Command1.Caption = "Giriş"
Command1.Enabled = True
Command2.Caption = "İptal"
Command2.Cancel = True
End Sub
Evet en başta textbox ve commandbutton u örnek göstererek saydığım özellikleri kullanarak sayısız şeyler yazabilirsiniz. Derslerde yavaş yavaş ilerliyoruz çünkü hepsini öğrenmek lazım. Bidahakinde Events e girebilirim ya da bikaçtane değişik proje yapabiliriz. İsteğe göre bakacaz..
Bu arada yaptığımız parola girşi, Assembly kodlarından jne ler kurcalanarak kolayca Cracklenebilir, şuan mevcut olan crackme yarışmasınde mevcut örnek var;
Sıkmamak için Hafif anlatımım Umarım yararlı oluyodur, CW olarak daha çok icraat yapabilmemiz için öğrenmemiz gereken çok şey var. Tavsiyem programlamadan başlayın!. Evet nutuk bölümüyle beraber bitiriyoruz.
Çıktığı günden beri büyük bir beğeni toplayan ve programcılığı zevke dönüştüren Visual basic Programlama dili, hak ettiği ilgiyi gördü. Visual Basic ile kontrollerini ve dilini anlatmaya çalışacağım..
İlk olarak Visual Basic 6.0 aldığınızı ve yüklediğinizi varsayarak başlıyorum. Yükleme sırasında eğer yeteri kadar boş yeriniz varsa tüm bileşenleri yükleyin, her biri işe yarıyor.
Yükleme bittikten sonra Microsoft Visual Studio 6.0 / Microsoft Visual Basic 6.0.exe yi açalım. Programı açtığımızda penceredeki ilk seçenek olan Standart.exe ile başlayalım. Açtıktan sonra Visual Basic çalışacak ve yeni bir form açılacaktır.
Ekranda gördüğümüz en önemli üç bölüm: 1-Form penceresi, 2-Toolbox ve 3-Properties bölümüdür. İlk form Form 1 diye adlandırılır. Burası yazacağımız programımızın ön yüzünün yani dizaynın yapılacağı yerdir. Bu dizayn Toolbox bölümündeki simgelerle belirlenir. Properties bölümü de Toolbox taki simgelerin özelliklerini belirler (yazı tipi, tenk, icon vb.) Bir programı 2 ye bölersek dış görünümü ve iç görünümü vardır. Dış görünümü dizaynıdır. İç görünümü ise en önemli yeri; kodlar dır.Visual Basic, çok yönlü bir program olduğu için nereden başlasam bilmiyorum ama biyerden başlamalıyız, ve artık Basic diline geçelim.
ToolBox penceresindeki elemanları açıklayalım. Her elemanın 2 yönü vardır 1. Dizayn yönü yani işin en kolayı. Tollbox tan seçip form üzerine düzgün yerleştirmekten başka bir şey yok. 2. bölümü ise Properties bölümü yani iç dizaynı, kodların ve Basic dilinin bulunduğu bölüm. Tollbox a dönelim;
1-) Text ;
Text bilgi girişi için kullanılan bir simgedir aynı zamanda Türkçede yazı demektir . Programın kullanımı esnasında kulanıcının yazı yazabileceği yerlerdir. Dizaynı çok basit gibi görünse de Properties bölümünde birçok özelliği vardır. Şimdi Text elemanının Basic dilini açıklamadan önce .(nokta) konusuna değinelim; nokta bir elemanın özelliğini belirlemek için kullanılır. Örneğin Form1e bir Text elemanı koyduk. Text elemanını ilk koyuşumuzda, üstünde Text1 yazar. İkincisini koyduğumuzda Text2 yazar. Bunu değiştirmek için; Text1 seçilmeli ve Properties menüsünden Text1 in Text özelliği değiştirilmelidir. Burada kafanız karışmasın text Türkçede yazı demek, yani Text1 kutucuğunun yazısı değiştiriliyor.
-Properties;
* Text
Properties; penceresi altında text özelliğinin ne işe yaradığını anladık bunu daha ayrıntılı anlatmak gerekirse Basic dilinde şu şekilde yapabiliriz;
Text1.text = istediğimiz birşey ile
Text1 = istediğimiz birşey aynıdır.
Tabiiki bunu Properties penceresi altında yapmak Basic dilinde yazmaktan daha kestirmedir.
Eğer Text kutusunun içeriğinde bir sayı söz konusu ise bu sayıyı girerken (Basic dilinde) Val komutunu kullanmamız birtakım yanlışlıkları önleyebilir. Ör/
Text1.text = Val(istediğimiz bir sayı) ve val yöntemi sadece Basic in karıştırmaması içindir.
Şimdi Toolbox penceresinden Text ve Label elemanlarını kullanarak küçük bişey yapalım;
Label elemanını daha sonra açıklayacağım ama şimdi kısaca; Bir pencere üzerinde yazan yazılardır diyebiliriz. Şimdi Toolbox tan bir Text ve Label seçip alt alta gelecek şekilde dizynını yapalım;
Dizaynını hala bitirmedik. İstersek Text kutucuğunda yazan text1 i silebiliriz. Properties penceresinden Text1 in text özelliğine gelelim daha önce anlattığım gibi orada text1 yazıyor onu silersek Text kutucuğunun içindeki Text1 başlığı da silinmiş olur. Gelelim Label in başlığını nasıl değiştireceğimize. Label in Properties penceresinde text özelliği yok. Bunun yerine Caption (Türkçede başlık demek) özelliği var bunu da ordan değiştirmek zorundayız. Caption un yanında yazan label1 i de siliyoruz ve Label kutucuğumuzdaki label1 yazısı da doğal olarak silinmiş oluyor.
Dizaynı tamamladıysak gelelim Basic dilinde programı yazmaya. Ne yazıcağımızı hala bilmiyoruz. Örneğin text1 e yazılan bir yazının aynısının label1 de gözükmesi için basit olarak; Text1 e çift tıklayın. Private Sub Text1_Change() ve End Sub arasına komut yazalım;
Label1.Caption = Text1.text
Komutu yeterlidir. Kodda gördüğümüz gibi label1 i text1 e eşitledik. Programı calıstırıp bakabiliriz.
Devam edelim formu silmeyin birde if then kalıbına örnek verelim;
Text1 kutucuğuna nasılsın yazılıcak ve Label1 kutucuğu da bize iyiyim siz nasılsınız? olarak karşılık verecek. Burada şu Neden-Sonuç ilişkisini kavramamız lazım. Mantık şöyle; Eğer text1 kutucuğuna <nasılsın> yazılırsa label1 kutucuğuna <iyiyim siz nasılsınız?> yazılsın Text1 kutucuğumuza çift tıklayalım ve şöyle bişey ekrana gelicek;
Private Sub Text1_Change()
End Sub
Burada Pravite Sub Text1_Change() bir olaydır. Basic dilinde Events olarak adlandırılır. Şimdi kafanızı oraya takmayın Events leri daha sonra anlatıcağım. End Sub ise olayın bittiğini haber eden komuttur. Bu her programda kullanılmalıdır, şarttır. Private Sub Text1_Change() ile End Sub un arasına yukarda anlattığım mantığı koyucaz. Eğer text1 kutucuğuna <nasılsın> yazılırsa label1 kutucuğuna <iyiyim siz nasılsınız?> yazılsın tabi bu mantık olarak, bunu oraya yazmıycaz , Basic diline çevirerek yazıcaz. Bunu Basic diline çevirirken if-then kalıbını kullanmalıyız. İleriki konulardaki bi kalıp ama şimdiden başlayalım yavaş yavaş öğrenicez Evet Pravite Sub Text1_Change() ile End Sub un arasına şu satırı koyalım;
If Text1.Text = naber Then Label1.Caption = iyiyim siz nasılsınız?
Yani tam olarak şu şekilde olucak;
Private Sub Text1_Change()
If Text1.Text = "naber" Then Label1.Caption = "iyiyim siz nasılsınız?"
End Sub
if Türkçe mantıktaki eğer yerine geçiyor. Text1.Text = naber de Text1 başlığı naber olursa mantığıdır. Then Label1.Caption = "iyiyim siz nasılsınız?" da Label1 başlığı iyiyim siz nasılsınız?" olsun mantığı dır. İşlemi bitirdiysek yukarıdaki Start düğmesine basalım. Boşluğa naber yazılırsa aşağıda iyiyim siz nasılsınız? yazısı çıkacaktır.
Bu belki de Visual Basic teki en basit program.. Bu programda text ve caption özelliğinin birbirine eşit olduğunu öğrendik. Aynısını Label kullanmadan da yapabiliriz. Mesela Label yerine bitane daha text kutucuğu ekler,
Label1.Caption = "iyiyim siz nasılsınız? Yerine;
Text2.Text = iyiyim siz nasılsınız? yazarsınız bu sefer 2 tane text olur.
2-Command Button & MsgBox;
CommandButton adından da belli olacağı gibi bir komut uygulama butonudur.ToolBoxtan İlk seçip formumuzun üzerine koyduktan sonra, başlığı ve komutlarda kullanacağımız ismi Command1 olarak gözükür bunu değiştirmek için aynı labeldeki gibi properties bölümünden caption özelliğini değiştirebiliriz.
-- Style -- özelliği;
Bu özellik CommandButton da resim olup olmayacağına karar verir.
0 ise üzerinde, Properties bölümündeki Caption özelliği ile belirlenen yazı bulunur.
1 ise üzerinde Properties bölümünden konumu secilecek olan Picture özelliği ile belirlenen icon veya resim bulunur.
-- DownPicture -- özelliği;
Bu özellik ile komut düğmesine basılı iken gösterilecek resim belirlenir.
-- Default -- özelliği;
Bu özellik bölümünden True seçili ise, o düğmenin bulunduğu form üzerinde Enter a basılması halinde o düğmeye tıklanmış olur.
Biraz da MsgBox hakkında bilgi edinelim ve bunun için örnek bi program yazarsak daha iyi kavrarız..;
MsgBox;
MsgBox adından da anlaşılabileceği gibi mesaj kutusu anlamına gelir. Şimdi bu MsgBox lara özellikle Windows hatalarından hiç de yabancı değiliz. Mesela bi oyun yükledik ve tam açıyoruz dann!! Bi msgbox please insert correct CD neymiş canı Crack çekiyomuş J Herneyse bu ve bunun gibi birçok msgbox larla karşılaşırız. Bir forma MsgBox koyabiliriz. Tabiiki bu işinde her iş gibi incelikleri var. İconu X mı olsın ? mi olsun veya seçenekleri Evet-Hayır olsun, Durdur-YenidenDene-Yoksay olsun veya sadece Tamam olsun.. Sonuncusu da hangi tuş aktif olsun, mesela; evet-hayırlı bişey çıktı kullanıcı evet aktif olsun ve kullanıcı entera basınca evet demiş olsun.. bunun gibi ve bu özelliği istersek belirlemeyiz yani bize kalmış. Şimdi gelelim bunları nasıl yapıcağımıza;
Mesela bomboş bi form açalım ve kodlar bölümüne forma çift tıklayarak girelim;
Private Sub Form_Load() yazar. Listeden en alttaki Unload ı seçelim ve yeni kodlar;
Private Sub Form_Unload(Cancel As Integer) olucak bu kodun anlamı çıkarken demektir. Yani biz kullanıcı programdan çıkarken mi MsgBox cıksın diye bi kod yazıcaz.
Hemen Private Sub Form_Unload(Cancel As Integer) ın altına ekleyelim;
MsgBox ("Hayırlı Ramazanlar") yani tam kod bu şekilde olucak;
Private Sub Form_Unload(Cancel As Integer)
MsgBox ("Hayırlı Ramazanlar")
End Sub
Bu kodlar en basiti ince olayları daha yazmadık, yani bi iconu falan yok. Eğer icon veya bi seçenek koyacak olursak şu kodları veya numaraları aklımızda tutalım;
-----Seçenek----- kod ve numaraları-----
0 vbOkOnly (sadece Tamam seçeneği)
1 vbOkCancel (Tamam ve İptal seçenekleri)
2 vbAbortRetryIgnore (Durdur,Yeniden Dene ve Yoksay seçenekleri)
3 vbYesNoCancel ( Evet,Hayır ve İptal seçenekleri)
4 vbYesNo (Evet ve Hayır seçenekleri)
5 vbRetryCancel (Yeniden Dene ve İptal seçenekleri)
-----İcon-----kod ve numaraları-----
16 vbCritical (Hata iconu)
32 vbQuestion (Soru iconu)
48 vbExclamation ( ! işareti olan icon)
64 vbInformation (Bilgi iconu)
-----Aktiflik (varsayılan düğme)-----kod ve numaraları-----
0 VbDefaultButton1 (1. Düğme Aktif)
256 VbDefaultButton2 (2. Düğme Aktif)
512 VbDefaultButton3 (3. Düğme Aktif)
Şimdi bu tabloya göre hem kodlar var hem numaralar yani hem kodu yazsak hem de kod yerine numarayı yazsak bir şey fark etmez. İnce ayarları da öğrendiğimize göre ince ayarı olan bi kod yazalım;
Private Sub Form_Unload(Cancel As Integer)
MsgBox ("Çıkmak istediğinizden emin misiniz?"), 4 + 32 + 0
End Sub
MsgBox mesajı yazıldıktan sonra tırnak ve parantez kapatılıp virgül koyularak ince ayarlara girebiliriz. Örnekte kodlar numaralarıyla birlikte yazılmıştır. 4; seçeneklerin Evet-Hayır oduğunu belirler. 32; bir soru (Question) iconu olmasını sağlar. 0 ise; 1. butonun aktif olmasını sağlar. Numaralarıyla birlikte yazdığımız gibi kodlarıyla da yazabiliriz. Yani şu şekilde olur;
Private Sub Form_Unload(Cancel As Integer)
MsgBox ("Çıkmak istediğinizden emin misiniz?") , vbYesNo + vbCritical +
vbDefaultButton1
End Sub
Şimdi basit bir hesap makinesi yapalım;
2 tane Text, 2 tane Label ve 4 tane CommandButton a ihtiyacımız olacak. Formumuzun üstüne 2 tane Text i, arasında yaklaşık 1cm boşluk kalacak şekilde yerleştirelim. Aralarında kalan 1cm boşluğa 1. Labeli koyalım, en sondaki Text2 nin yanına boşluk bırakmadan Label2 yi koyalım. Bu sıranın altına da 4 tane CommandButton yerleştirelim. Command1 i + olarak adlandıralım (properties menüsünün caption özelliğinden) bu toplama işlemini yapacak olan butonumuz. Command2 yi - olarak adlandıralım bu çıkarma işlemini yapacak olan butonumuz. Command3 ü * olarak adlandıralım bu çarpma işlemini yapacak olan butonumuz. Command4 ü / olarak adlandıralım ) bu bölme işlemini yapacak olan butonumuz. Yazı boyutu küçük gelebilir, bunun için gene properties menüsündeki Font özelliğinden yazının boyutunu ve stilini ayarlayabiliriz.Dizayn bölümünü bitirdik.
Şimdi gelelim kodlara. İlk önce mantığı açıklıyım; Command1 e basılırsa Text1 ve Text2 toplansın, Label2 ye yazılsın. Command2 ye basılırsa Text1 den Text2 çıkarılsın, Label2 ye yazılsın. Command3 e basılırsa Text1 ve Text2 çarpılsın, Label2 ye yazılsın. Command4 e basılırsa Text1 Text2 ye bölünsün, Label2 ye yazılsın. Birde sayıların söz konusu olduğu text lerde parantezden önce Val komutu girilmesi gerekir ki, çıkabilecek bir hata giderilsin. Kodları yazmaya Command1 click olayıyla başlayalım, kodlara geçmek için Command1 e çift tıklayalım;
Private Sub Command1_Click()
Label1 = "+"
Label2 = Val(Text1) + Val(Text2)
End Sub
Not: Label1 = "+" komutuyla
Command1 e tıklandığında 2 Text arasına koyduğumuz Label1 in + olmasını sağladık. Forma dönelim ve Command2 ye çift tıklayarak kodlara devam edelim;
Private Sub Command2_Click()
Label1 = "-"
Label2 = Val(Text1) - Val(Text2)
End Sub
Şimdi Command3 ü hazırlayalım;
Private Sub Command3_Click()
Label1 = "*"
Label2 = Val(Text1) * Val(Text2)
End Sub
Command4 e geçelim;
Private Sub Command4_Click()
Label1 = "/"
Label2 = Val(Text1) / Val(Text2)
End Sub
Şimdi hesap makinemiz hazır, biraz da forma MsgBox ekleyelim; mesela sayı girmeden işlem yaparsa uyarıcı bi MsgBox ayarlayalım. Bunun için her Command Click olayına şu kodu ekliycez;
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz!"), vbExclamation
End If
Mantığı şöyledir; eğer Text1 veya Text2 boş olursa MsgBox çıksın. Tüm kodlar şu şekilde olucak;
Private Sub Command1_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "+"
Label2 = Val(Text1) + Val(Text2)
End Sub
Private Sub Command2_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "-"
Label2 = Val(Text1) - Val(Text2)
End Sub
Private Sub Command3_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "*"
Label2 = Val(Text1) * Val(Text2)
End Sub
Private Sub Command4_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox ("Sayı giriniz"), vbExclamation
End If
Label1 = "/"
Label2 = Val(Text1) / Val(Text2)
End Sub
]DERS 2
---------------
Kısaca 1. derste Commandbutton ve Text in basit özelliklerini, msgbox u öğrendik. ve bunları kullanarak ufak bir hesap makinesi yazdık. Önce Textbox ve Commandbutton nesnelerinin Properties başlığı altında özelliklerinin bu kadar kısa olmadığını söyliyip diğerlerini de listeleyelim;
Textbox Properties
* Alignment : 0 Left ,1 Right, 2 Center olarak 3 bölümdür yazının textboxta yerini belirler, genelde properties altında seçeriz fakat özel durumlarda code bölümünde Text1.Alignment = 0 gibi rakam vererek kullanılır.
* Appearance : 0 Flat , 1 3D olarak 2 bölümdedir textbox görünümünü değiştirir.
* BackColor : textbox rengini belirler.
* BorderStyle : textbox görüntüsü çerçeveli/çerçevesiz ayarı.
* CausesValidation : Textbox kutusu kontrolü kaybedince yani, başka bi kontrole Mouse veya klavye ile geçildiğinde Validate olayının çalışıp çalışmayacağını belirler. Normalde bu özellik True dur ve Validate olayı çalışır. Peki ne işimize yarar.. Bu olayla kullanıcının girdiği bir metni o anda kontrol edebiliriz. Uyarı gönderebilir veya değiştirebiliriz. Ör; sadece rakam yazılması greken bir textboxa başka karekter girişi olursa bu özelliği kullanarak uyarıp silebiliriz.. İlerde bir örnekle açıklarım;
* Enabled : Genelde her nesnede bulunur. Enabled= true yada false değeri vererek elemanı aktif ya da pasif yaparız. Bir eleman foruma yerleştirildiğinde otomatik olarak = true değeri alır.
* Font : Yazıtipi için.
* ForeColor : Yazı Rengi.
* Height : Elemanın yüksekliği.
* HideSelection : text1.HideSelection = True ise textboxta seçilen metnin, başka bir kontrole geçildiğinde seçilen kısım gizlenir. = False ise hepsi gözükür.
* Index : Aynı isimli birden çok eleman oluşturulmuşsa VB bu nesneleri bir dizi olarak görür. Index parametresi bu nesnenin dizedeki kaçıncı eleman olduğunu belirler, bu nesneye sonradan indexiyle ulaşılır.
* Locked : True ise kullanıcı textbox üzerinde hiçbir değişiklik yapamaz.
* MaxLength : Text1.MaxLength = 10 ile text1 e girilecek karekter sayısını 10 ile sınırlayabiliriz. Properties bölümünden değer verebilirsiniz.
* MultiLine : textbox a birden fazla satır girişi yapmamızı sağlar, = true , false değerleriyle kontrol edilir.
* MousePointer : Mouse textbox üzerine gelince alacağı şekil belirlenir.
* Parent : Textboxun üzerinde bulunduğu forma ulaşmayı sağlar. Nesnenin isminden sonra verilen parent özelliği o nesneyi değil nesnenin üzerinde bulunduğu formu temsil eder. Ör; Text1.Parent.Print Merhaba komutu Text1 in bulundu form üzerine Merhaba yazar. Buna ihtiyaç duyulmasının sebebi; çoklu formlarla çalışma esnasında yazılabilecek kodların karışmaması içindir.
* PasswordChar : textboxa girilen bir metnin bütün karekterlerini belirlediğimiz bir karekter gibi göstermeye yarar. Hepimizin bildiği Password girişlerinde kullanılır. Ör Text1.PasswordChar = "*" ile metin ***** şeklinde gözükür.
* ScrollBars : Multiline özelliği true olması kaydı ile çalışır. Textbox a Sağ sol ve ikisibirden olmak üzere 3 çeşit scrollbar uygulanabilir.
* SelStart ve SelLength : Textboxa girilen metni seçmemize yarar. Bunu Mouse ile yapabiliriz fakat kodla olması, bize bazı kolaylıklar sunar. Ör ilk 3 haneyi seçtirip kopyalatabiliriz ya da textbox a tek Click olayında bütün metni seçtirebiliriz. Hemen ufak bir örnek gösteriyim.;
MaxLength i 5 karektere ayarlayalım böylece textboxa 6. karekter girilemez. Kod bölümüne geçip Text1_Click() olayı altına kodumuzu yazalım;
Text1.SelStart = 0
Text1.SelLength = 5
Burada selstart ile seçmeye başlanacak karekter belirlenir ve sellenght ile bitirecek karekter.
Text1 e tıkladığımızda 5 karekter otomatik seçilmiş olur. Ha şimdi bir de bu textboxu sınırlamadığımızı düşünelim yani kullanıcı istediği kadar karekter girsin ve biz bütün metni nasıl seçeriz? Şöyle seçeriz;
Private Sub Text1_Click()
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
Burada selstart tekrar aynı 0 dan başlıyoruz sellength te ise kullandığımız Len() komutu var. Len(text1) ile text1 elemanına girilen toplam metin sayısına ulaşmış oluruz.
* SelText : Textbox ta seçilmiş olan karekterler üzerinde işlem yapmamızı sağlar ör, bir commandbutton koyup click olayı altına Text1.SelText = Selam yazarsak çalıştırdığımızda Mouse la seçtiğimiz alanın Selam olarak değiştirildiğini görürüz.
* TabIndex : Form üzerinde her nesnenin bir TabIndex i vardır. Girilen rakam değerine göre Forum üzerinde Tab ile ulaşacağımız elemanların sırasını belirleyebiliriz.
* TabStop : True , False değerleri alır. Flase ise kullanıcı bu nesneye tab tuşu ile ulaşamaz.
* Text : 1. dersten biliyorsunuz! Ör; text1.text= selam(textboxa selam yazılır.)
* ToolTipText : Nesnein Üzerinde Mouse la durduğumuzda kutucuk içinde çıkan yazı kullanımı içindir. Text1.ToolTipText = Doldurunuz. Şeklinde Kullanılır.
* Visible : True , False değerleri alır. Flase ise kullanıcı bu nesneyi göremez.
Command Button Properties
* Appearance : 0 Flat , 1 3D olarak 2 bölümdedir Commandbutton un görünümünü değiştirir.
* BackColor : Buton rengini Style özelliği 1-Graphical olması kaydı ile değiştirir. Eğer Style 0-Standart ise butonda değişiklik olmaz.
* Caption : 1. dersten biliyoruz. Commanbutton üzerineki yazıyı değiştirir. Ek bir özellik veriyim cammand1.caption = Gi&riş olarak yazılırsa & işaretinden sonraki karekterin altı çizilir bu da Windowstan tanıdığımız kısayol özelliğidir.
[backcolor da dahil alttaki Picture ile ilgili parametreler çalışması, style özelliğinin 1-Graphical olamasına bağlıdır.]
* Picture : Belirlenen resim CommandButton a ( Enabled = True iken ) yerleştirlir.
* Disabled Picture : Belirlenen resim CommandButton a ( Enabled = False iken ) yerleştirlir.
* Down Picture : Belirlenen resim butona tıkladığımızda gözükür.
* Default : Bir CommandButton un default özelliği true ise, o formda klavyeden enter a basarak butona tıklamış oluruz.
* Cancel : Default özelliği gibidir klavyeden ESC ile tıklanmış olur.
[diğer parametrelerin genel olarak anlamları aynıdır]
---------------------------------------
TextBox ve CommandButton un Properties altında bulunan tüm paremetrelerini listeledim. Bu özellikler bildiğiniz gibi komut satırından nesne.parametre = gibi şekillerde kullanılır, dizayn kısmında gerektiğinde Properties menüsünden de değerler girilebilir. Şimdi bir de Events var. Her nesnenin kendine ait olayları vardır. Bunları code bölümünden değiştirebiliriz.
Bu sadece hatırlatma gibi olsun. Uzun ve toparlanması gereken bi konu olduğundan diğer yazıda sırf onları acıklarım şimdilik örnek bir şifre girişi yapalım.
ÖRNEK;
Üzerinde çalıştığımız bir proje var ve biz buna şifre girişi koymak istedik. Çalıştığımız proje Form2 olsun Şifre girişi için kullanacağımız form da Form1. Bir projeye istediğimiz kadar form ekleyebiliriz sırası ile form1 form2 diye gider. Eklemek için Standart çubuğundan AddForm a tıklayalım.
Basit bir şifre düzeni için Forma 1 label, 1 textbox, 2 Commandbutton ekleyelim. Ve dizaynı paşa gönlünüze göre düzenleyin;
Şimdi code bölümüne geçelim;
Bazı genel özellikleri dediğim gibi properties menüsü altından değiştirebilirsiniz. Simdilik ben bazılarını kod olarak yazıyorum karışıklık olmasın. Bunlar From açıldığında devreye geçeceği için Form_Load olayı na yazıyoruz;
Label1.Caption = "Şifre"
Text1.Text = "" açılışta silinmesi için
Text1.PasswordChar = "*"
Text1.MaxLength = 5
Command1.Caption = "Giriş"
Command1.Enabled = True
Command2.Caption = "İptal"
Command2.Cancel = True
Şu mantıkla yazıcaz; tekrar if , then else end if komutlarını kullanıcaz. Yani eğer command1 e tıkladığımızda text1 e girilen değer, bizim belirttiğimiz değere eşitse Form2 ye geçiş yapılacak. Değilse Msg box ile uyarı yapalım. Command1 e çift tıklayarak code bölümüne geçiyoruz. Otomatikman Command1_Click() event i altında geçiyoruz. Ve kodumuzu yazalım;
If Text1.Text = "123" Then
Form1.Hide
Form2.Show
Else
MsgBox ("Yanlış Şifre"), vbCritical
End If if döngüsünü kapatıyoruz
Şimdi Command2 yi de çıkış için ayarlayalım. çift tıklayarak araya end yazmamız yeterli. Proje tamamen sonlanmış olur. Tüm kodlar şoyle olacak;
Private Sub Command1_Click()
If Text1.Text = "123" Then
Form1.Hide form1 i saklıyoruz
Form2.Show form2 ye geçiyoruz.
Else
MsgBox ("Yanlış Şifre"), vbCritical
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Label1.Caption = "Şifre"
Text1.Text = ""
Text1.PasswordChar = "*"
Text1.MaxLength = 5
Command1.Caption = "Giriş"
Command1.Enabled = True
Command2.Caption = "İptal"
Command2.Cancel = True
End Sub
Evet en başta textbox ve commandbutton u örnek göstererek saydığım özellikleri kullanarak sayısız şeyler yazabilirsiniz. Derslerde yavaş yavaş ilerliyoruz çünkü hepsini öğrenmek lazım. Bidahakinde Events e girebilirim ya da bikaçtane değişik proje yapabiliriz. İsteğe göre bakacaz..
Bu arada yaptığımız parola girşi, Assembly kodlarından jne ler kurcalanarak kolayca Cracklenebilir, şuan mevcut olan crackme yarışmasınde mevcut örnek var;
Sıkmamak için Hafif anlatımım Umarım yararlı oluyodur, CW olarak daha çok icraat yapabilmemiz için öğrenmemiz gereken çok şey var. Tavsiyem programlamadan başlayın!. Evet nutuk bölümüyle beraber bitiriyoruz.


