D-5-E 1
 

BİLEŞENLERİ (COMPONENTLERİ) KULLANMAK

NESNE Events

Properties Method

İPUCU : Shift tuşu ile birlikte butona basılırsa aynı butondan bir çok buton çizilebilir.

4. CAPTİON : Nesnenin etiketini değiştirir.
5. CONSTRAİNTS : Nesnenin en geniş veya en dar alabileceği en yüksek ve en küçük değeri gösterir.
Maxheight : En büyük alabileceği yükseklik
Maxwidht: Genişliğinin en büyük alabileceği değer.
Minheight : Minimum yükseklik
Minwidht : Minimum genişlik


If …(a)…. then
begin (a) şartı temsil eder.
(b) (b) Koşul sağlandığında işleyecek kodlar
end
else
begin (c) Koşul sağlanmadığında işleyecek kodlar
(c)
end;
end;
end.

ÇALIŞMA-1

1 nci butona tıklayınca 4 nolu button enabled (pasif) olsun.

2 nci buttona tıklayınca font özellikleri 1 nciye kopyalansın.

3 ncü buttona tıklayınca 6 ncı buttonu genişletsin.

4 ncü buttona tıklayınca button1 eski halini alsın.

5 nci buttona tıklayınca 2 nciyi gizlesin. Show yazsın.

6 ncı buttona tıklayınca kendini küçültsün.

Çözüm Açıklaması

1.Button (onclick olayına yazılacak kod)

if button4.enabled=True then {Eğer, Button4 enabled(aktif) özelliği doğru ise;}

begin
button4.enabled=False; {Button4'in enabled özelliği yanlış ise,}
button1.caption:='&1 Enabled 4'; {Button1'in Caption özelliğine '&1 Enabled 4' yaz.}

end

else Değilse,

begin
button4.enabled.=True; {Button4'ün enabled özelliği doğru ise,}
button1.caption:='&1 Disable 4' {Button1'in caption özelliğine '&1 Disable 4' yaz.}

end;
end;
end.

2. Button (onclick olayına yazılacak kod)
button1.font:=button2.font; {Button2'nin font özelliğini Button1'e kopyalar.}

3. Button (onclick olayına yazılacak kod)
button6.height:=button6.height+2; {Button6'nin yüksekliğini 2 birim artırır.}
button6.widht:=button6.widht+2; {Button6'nin genişliğini 2 birim artırır.}

4. Button (onclick olayına yazılacak kod)

button1.parentfont:=True; {Button1'in Parentfont (eski font ayarlansın) doğru yap.}

Not: (PARENFONT özelliği; font ayarlarının eski haline dönmesini sağlar)

5. Button (onclick olayına yazılacak kod)

if button2.visible=True then; {Eğer button2 visible (görünür) özelliği doğru ise.}
begin
button2.visible:=False; {Button2nin visible özelliği yanlış ise; (yani görünmüyorsa)}
button5.caption:='&5 Show 2'; {Button5'in caption'una &5 Show yaz.}
end
else Değilse,
begin
button2.visible:=True; {Button2nin visible özelliği doğru ise (görünüyorsa)}
button5.caption:='&5 Hide 2'; {Button5'in capiton özelliğine &5 Hide 2 yaz.}
end;
end;
end.

6. Button (onclick olayına yazılacak kod)

button6.height:=button6.height-3; {Button6'nın yüksekliğini 3 birim küçültsün}

ÇALIŞMA-2

WORDRAP : Etikette alta yazmasını sağlar. (True olursa )
Label'in formu kaplaması için Align özelliği alclient yapılır.

Alignment Özellikleri
Tacenter à Yazıyı ortalar.
TaLeftJustify à Sola hizalar.
TaRightJustify àSağa hizalar.

Onclick olayına yazılacak kod
Label1.Alignment:=taLeftJustify

Onclick olayına yazılacak kod
Label1.Alignment:=taRightJustify

Onclick olayına yazılacak kod
Label1.Alignment:=taCenterJustify

Renkler için dialogs bölümünden colordialog kutusu formun üzerine getirilir.

Name özelliği dlgRenkKutusu olarak yazabiliriz.

Onclick olayına yazılacak kod
DlgRenkKutusu.Execute; (execute: dialog kutusunu getirir.)
Label1.color:=dlgRenkKutusu.color;


Onclick olayına yazılacak kod
DlgRenkKutusu.Execute; (execute: dialog kutusunu getirir.)
Label1.font.color:=dlgRenkKutusu.color;

DELPHİDE KAYDETME İŞLEMİ
Her uygulamanın adına Application denir.
Project (Program)
Unit (Form)

Her uygulama için ayrı bir klasör oluşturmak gerekir.

Project1.exe à Bizim verdiğimiz isimler olacak.
Unit1.pas
Project1.dpr
Unit1.dfm
 

ÇALIŞMA-3 (sürükleme)

Yukarıdaki şekilde soldaki Label'lerin renkleri mouse ile yandaki StaticText nesnesinin rengi değişecek.

1. İki çeşit sürükleme vardır. Manual ve Automatic
Nesnenin dragmode özelliği ayarlanır.
2. Label'in Properties'inden DragMode özelliği Automatic seçilir.
3. Üstüne sürüklenen nesnenin dragover olayındaki accept true olacak. Yani statictext'in event bölümünde;
Accept:=True;
4. Sonra sürüklenen yerde ondragDrop olayı oluşur.
5. Kendi üzerine birşey sürüklenen nesnenin sürükleme işlemi devam ederken onDragDop olayı oluşur.
DragDrop : Çekti buraktı,
DragOver : Çekti dolaştırdı.
6. StaticText'in ondragDrop olayına yazılacak kod;
StaticText1.color:=(source as Tlabel).color;

Çalışma 3-1
Yukarıdaki uygulamada; edit1.text içindeki yazı label'lerin üzerine sürüklendiğinde label'lerin caption özelliğine kopyalansın.

Yapılacak İşlemler
1. edit1'in DragMode olayı dmAutomatic yapılır. (properties)
2. Label1'in onDragOver olayına Accept:=True; kodu yazılır:
3. Label1'in onDragDrop olayına Label1.caption:=edit1.text kodu yazılır.

Ama burda sadece bir label için oldu. Biz bütün Label'ler için olmasını istiyorsak eğer;
(sender as Tlabel).caption:=(source as Text).text; kodu yazılır.

Sender : Olayın meydana geldiği yer.

edit1.text:=(sender as Tbutton).caption;

NOT: Yazılan kodlar içine kendimiz açıklama yazmak istiyorsak eğer; 3 yöntem kullanabiliriz.
1. // tek satırlık açıklamalarda kullanılır.
2. { } birden çok satırlı açıklamalarda kullanılır.
3. (* *) birden çok satırlı açıklamalarda kullanılır.
ÇALIŞMA-4 (Giriş Odağının Yönetilmesi)

TabOrder : Tabsırasını ayarlar.
Tabstop : True iken False olursa tab sekmesi o nesneye uğramaz.
OnEnter : Odaklanan nesnenin hakkında bilgi verir.
StatusBar1 (Durum çubuğu) : StatusBar'ın üzerinde yazı görünmesini sağlar. StatusBar'ın üzerine yazı yazmak için simpletext özelliği kullanılır.
Yazının StatusBar'da gözükmesi için; SimplePanel à True olacak.

Password yazarken * gözükmesi için, özelliklerden PasswordChar bölümüne bir tane * konur.

Edit2'ye gelince status bar'da yazı görünmesi için
OnEnter olayında
Statüs Bar1.snpktext:='Adınızı Giriniz'; diğer Ed,tler içinde geçerlidir.
Statüs Bar1'deki yazı fontunun değişmesi için UseSystemFont özelliği True olmalıdır.
Hint(ipucu) özelliği
O nesnenin hint özelliğine açıklama yazılır.
Showhint özelliği True olmalıdır.
StatusBar1.simpletext:=(sender as (edit).hint;
Onexit
Edit1'de çıkmaya çalıştığında boş ise mesaj verilir.
Tamama tıklayın sonra o edite dönsün
If edit1.text:='' then ('')hiçbirşey anlamındadır.
Begin
Showmessage('adınzı yazınız');
Edit1.setfocus;
End;
End;
End;

Sender ile yaparsak;
If(sender as tedit).text:=" then
Begin
Showmessage((sender as tedit).hint));
(Sender as tedit).setfocus;
end;
end;
end.
DÖNGÜLER
DÖNGÜ:Ağaç veya birbirine çok benzeyen işlemlerin birden çok kez tekrarlandığı kısımlara denir.
Bu işlemleri alt alta yazmak yerine bir döngü içinde tanımlamak kodu kısaltır ve olanaklığını arttırır

Ali ayaklarını yıkada gel
Boşlukları say
Edit1.text[1] texin ilk değeri

Length(edit1.text) text'deki krakter sayısını gösterir.
Kodu
Var
I,s:integer;
Begin
Fori:=1 to length(edit1.text) do
If edit1.text[I]=" " then s:=s+1;
Show message('boşluk sayısı:'+inttostr(s));
End;
End
End;

Var
Ad:string[10] ad değişkenine en fazla 10
Soyad:string[15] ad değişkenine en fazla 15


ÖDEV
Klavye yazılan paragraftaki istatiklik kodu yazılacak

Boşluk
Kelime
Cümle
Nokta
Virgül

For Döngü Değişkeni:iİlk değer 10 son değer 00
Begin
……
end;


for x:=1 to 10 do
begin
……..
end;
AÇIKLAMA:X döndü değişkeni ilk blok içindeki program satırı 10 kez arka arkaya iletilir.


Var
I:string[100];
Begin
For I:=to length(edit1.text) do
If edit1.text[I]=string[100]

Edit kutusuna girilecek karakterleri tanımlamak

pp


Check ile run edilince

Check butonunun OnClick olayı

Var
Sayi,kod:integer;
Begin
If edit1.text<>" then
Begin
Val (edit1.text,sayi,kod);
If kod<>0 then
Begin
Edit1.setfocus;
Label6.caption:=inttostr(kod);
MessageDlg('giriş hatalı',mterror,[mbOK];
Var
I,sc,sn,skb,sv:integer;
Begin
Sc:=0;
Sn:=0;
Skb:=0;

For I:=1 to length

Edit1'in OnChange Olayı
Var
Sayi,kod:integer;
CurEdit:Tedit;
Begin
CurEdit:=sender as tEdit;
If CurEdit.text<>" then
Begin
Val(curedit.text,sayi,kod);
If kod<>0 then
Begin
Curedit.setfocus;
Label6.caption:=inttostr(kod);
MessageDlg('giriş hatalı',mtError,[mbOK];
End;
End;
End.


Edit'tin OnExit olayı
Odak bir nesneden ayrıldığı zaman o nesnenin OnExit olayı meydana gelir.

Var
Sayi,kod:integer;
Begin
If edit1.text<>"" then
Begin
Val(edit1.text,sayi,kod);
If kod<>0 then
Begin
Edit1.setfocus;
Label6.caption:=inttostr(kod);
MessageDlg('giriş hatalı',mtError[mbOK],0');
End;
End;
End;

Sayı girdikçe her edit dosyasına geçişi sağlıyor.
Aynı kodu Edit1'in OnChange yazdığımız zaman (karakter seçtiğimiz zaman )hata veriyor.

RichEdit1:Sadece seçili alanlar için özellik ayarlar.
Memo1:Hepsi birden değişir (özelliklerinin).

[ ] olan özellikler kümes tipi özelliklerdir.
+ Bir kümeye eleman ekler.
- Bir kümeden eleman siler.
Style :[ ];
Style:=[fsBold,fsitalic];
Style:=style+[fsunderline];
Style:=Style-[fsbold];

Eğer memo1'deki yazı hem italic, hemde bold olacaksa, ayrıca tıklandığında, Bold; seçiliyken tıklandığında Bold özelliği kalkacak kod;

if checkBox1.checked then
memo1.font.style:=memo1.font.style+[fsBold]
else
memo1.font.style:=memo1.font.style-[fsBold];
end;

RadioButton
Begin
Memo1.font.name:=RadioButton1.caption;
end

Case Of Deyimi

Case RadioGroup1.itemindex of
0:
memo1.alignment:=taleftJustify;
1:
memo1.alignment:=taRightJustify;
2:
memo1.Alignment:=tacenter;
end;
Ödev: Kutuya yazılan paragraftaki istatistik kodu yazılacak. (Boşluk sayısı, Kelime sayısı, Cümle sayısı, Nokta sayısı, Virgül sayısı)
FOR DÖNGÜ DEĞİŞKENİ
İlk değer TO son değer DO

Begin
……….
End;

For x=1 TO 10 DO

Açıklama : X döngü değişkeni
İlk blok içindeki program satırı 10 kez arka arkaya işletilir.

var
i:string[100]
begin
for
i=1 TO length (edit1.text) DO
if edit1.text[i]=string [100]

CHECK ile RUN edilince;

Check Butonunun OnClick olayı

Var
Sayi,kod:integer;
Begin
If edit.text<>" then
Begin
Val (edit1.text,sayi,kod);
If kod<>0 then
Begin
Edit1.setfocus;
Label 6.caption:=inttostr(kod);
MessageDlg('Giriş Hatalı',mtError,[mbOK];
Editin change olayı
var
sayi,kod:integer
CurEdit:Tedit;
Begin
CurEdit:=Sender as Tedit;
If CurEdit.text<>" then
Begin
Val(Curedit.text,sayi,kod);
If kod<>0 then
Begin
CurEdit.setfocus;
label6.caption:=inttostr(kod);
messageDlg('giriş hatalı',mtError,[mbOK];
end;
end;
end.

 
 
  Bugün 96 ziyaretçi (108 klik) buradaydı  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol