Adim Adim Delphi

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
PeeRLeeSS
Megabyte1
Megabyte1
Mesajlar: 928
Kayıt: 15 Mar 2006, 18:12
İletişim:

Adim Adim Delphi

Mesaj gönderen PeeRLeeSS »

öncelikle bir delphi 6 veya 7 Bilgisayariniza yüklü olmasi lazim.
Gerekli yüklenen Programlar

Desktop Database =veri tabani olusturmaniza yarar.
BDE administrator = Veri Tabani baglamaniza yarar.
Alians=Veri Tabani Adi (Takma Ad)
Companents = Delphiye Baglanan Program Parcaciklari
Kullanıcı avatarı
PeeRLeeSS
Megabyte1
Megabyte1
Mesajlar: 928
Kayıt: 15 Mar 2006, 18:12
İletişim:

Mesaj gönderen PeeRLeeSS »

Resim

MainMenü: Sag click Yaptiginizda olusacak menü.
PopupMenü: üsttarafa Sirasiyla koyacaginiz Menüler.
Label:Bir menü veya aciklama yapilacagi zaman yazi yazmamiza yarar.
Edit:Bilgi girmemize imkan sunar.
Memo:bir yerden Bilgi cekme veya adres Vb. gibi cok karekter gire bilmemizi saglar.
Button:Bir kayit veya yazilan bilgiyi göndermemize yarar.
CheckBox:secim Yapmamizi saglar.
RadioButton:Birden fazla secim varsa bir ini secmemizi saglar.
ListBox:Liste Halinde Verileri secmemizi saglar.
ComboBox:acilir pencere ile verileri secmemizi saglar.
ScrollBar: örn bir görüntüyü saga sola kaydirmamizi saglar.
GroupBox:Menüleri veya butonlari gurup icine almamizi saglar
RadioGroup:butonlari gurup icine almamizi saglar.
Kullanıcı avatarı
PeeRLeeSS
Megabyte1
Megabyte1
Mesajlar: 928
Kayıt: 15 Mar 2006, 18:12
İletişim:

Mesaj gönderen PeeRLeeSS »

Gerekli Komutlar...

Kaydetme = table1.post;

Silme = Table1.delete;

Yenileme = Table1.reflesh;

düzeltme=Table1.edit;

arama = TABLE1.Filter:='[veritabanindaki aranacak isim]='+QuotedStr(EDIT2.Text);
TABLE1.Filtered:=TRUE;

form kapatma =Form1.hide;

Form acma =Form1.show;

cikis= close;
Kullanıcı avatarı
PeeRLeeSS
Megabyte1
Megabyte1
Mesajlar: 928
Kayıt: 15 Mar 2006, 18:12
İletişim:

Mesaj gönderen PeeRLeeSS »

Delphi 5
(Event Driver Programing Langue) Olay Güdümlü Programlama Dili

- Delphi 5 Enterprise
- Delphi 5 Professional
- Delphi 5 Standart
- Delphi 5 Yenilikler
- Delphi 5 Enterprise


Delphi 5 Enterprise

Delphi 5 Enterprise internet ve dagitik hesaplama icin yüksek üretkenlik cözümüdür. Delphi'nin InternetExpress'i, e-ticareti destekleyen, esnek, yayilabilen sistemleri olusturmak icin HTML 4 ve XML'i kullanan Web Client Page Wizard'i, dagitik HTML uygulamalari olusturmak icin MIDAS PageProducer ve WebBroker'i icerir. ADOExpress ile her türlü bilgiye hizli erisim kazanirsiniz ve TeamSource ile bütün gelistirme takiminizin üretkenligini arttirabilirsiniz. CORBA, COM ve MTS gibi bütün dagitik hesaplama standartlarini kullanan MIDAS'i kullanarak internet uygulamalarinizi arttirabilirsiniz. 200'ün üstünde tekrar kullanilabilen bilesenleri ve kaynagiyla birlikte Visual Component Library kullanan güvenilir uygulamalari olusturabilir, hata ayiklayabilir ve programlarinizi yayabilirsiniz. Kilit veritabani sistemleri olusturmak icin Interbase Express'i kullanabilirsiniz. Ayrica bu paket InterBase, MS SQL, Informix, Sybase ve Oracle icin Native SQL Link'leri icermektedir.

Delphi 5 Professional


Delphi 5 Professional, web ve veritabani uygulamalari olusturmak icin en hizli, en üretken Windows gelistirme aracidir. Delphi 5 Professional , profesyonel IDE, WebBroker, Native Internet Components, InterBase Express ve güvenilir hata ayiklama araclarini icerir. Project Browser, Code Explorer ve Data Module Designer görüntüleriyle kodunuzu anlayabilir ve arastirabilirsiniz.İsiniz icin bilesenleri Frame'ler ile görsel olarak olusturabilirsiniz. MS Office otomasyon kontrolcülerinin tamamini iceren COM nesne ve sunucularini olusturup yeniden kullanin. Delphi 150 tekrar kullanilabilir bileseni ile üretkenligi arttitir ve bütün uygulama evresini yönetir. Güvenilir uygulamalari pazara daha hizli getirmek icin dünyanin en hizli 32-bit derleyicisini ve Advanced Project Manager' i kullanir.

Delphi 5 Standard


Delphi 5 Standard , sürükle ve birak görsel programlama, örnekler ve 85'in üstündeki tekrar kullanilabilir bilesenli Visual Component Library ile Windows altinda uygulama gelistirmeyi kolaylastirir. Kolay ve cabucak Word, Excel, PowerPoint ve Outlook icin MS Office bilesenleri gibi COM nesnelerini otomatiklestiren Windows uygulamalari olusturabilir, hata ayiklayabilir ve yayabilirsiniz. Kodu sizin icin tamamlayan CodeInsight Wizard'i kullanabilir, Tek bir satir kod yazmadan tekrar kullanilabilir bilesenleri olusturmak icin Componenet Template'leri kullanabilirsiniz. Arti Microsoft Windows 95 ve Windows NT, Win32 API, COM, ActiveX ve OLE Automation'i iceren endüstri standartlari icin tam destek hakki kazanin. Gelistirme ortaminizi tamamen kisisellestirmek icin Dockable Toolbars ve Dockable Windows'u bu pakette kullanabilirsiniz.

Delphi 5 Yenilikler


XML: Delphi 5, veri dagitimini ve degisimini kolaylastirir!
Verilerinizi web'e cabucak ulastiran yüksek hizli Internet uygulamalari gelistirebilirsiniz. Delphi'nin XML veri destegi esnek oldugu icin internetteki e-ticaret'i desteklemek icin genisletilebilir sistemleri kurmanizi saglar.
HTML 4 : Web icin nitelikli Dynamic Thin-client
Delphi 5, HTML 4 ve XML kullanan dinamik ultra-thin istemciler kurmaniz icin ihtiyaciniz olan gücü getiriyor. Bu size nitelikli ve isteklerinize yanit veren istemci uygulamalarini Internete hizli yayma olanagi tanir.

ADO: Bütün bilgi kaynaklarina hizli erisim.
Delphi 5 e-posta ve dosya sistemleri de dahil olmak üzere her türlü veri tabanina hizli erisim saglar. Microsoft'un ActiveX Veri Nesnesini ve OLEDB teknolojisini kullanarak son-kullanicilarinizin daha iyi ticari karar vermeleri icin ihtiyac duyduklari veri evrenine aninda erisim kazanabilirsiniz. Delphi'nin acik veri bilesenlerini kullanarak, kisa zamanda ticari verilerinizi internette müsterilerinize, son kullanicilariniza ve bütün hedef kitlenize götüren sistemler kurabilirsiniz. ADO son kullanicinizin istemci isletim sisteminin standart bir parcasi haline geldiginden, programlariniz kolayca yayilabilecek.


InterBase Express: Yüksek performansli sistemler
InterBase Express ile, VAR'lar, SI'lar ve ISV'ler programlari, cabuk dagitilabilen yüksek performansli sistemleri insa edebilirsiniz. Delphi ve InterBase ile, yüksek üretkenlik, yüksek performansli gelistirme yapabilirsiniz. Ayrica yüksek hizli, az bakim isteyen, small-footprint iliskisel veri tabani birlestirilmistir. Interbase Express ile mükemmel gömülü sistemler olusturmak icin artik Borland Database Engine ile gelistirme ve dagitma yapmaniza gerek kalmayacak.


TeamSource: Bütün gelistirme takiminiza üretkenlikte cesaret verin
Delphi 5 ile bütün takiminiz, birlikte daha iyi ve daha hizli calisacak. TeamSource kaynak kodunuzu yönetim biciminizde bir devrimdir. TeamSource, varolan kaynak kodu yönetiminizin ve sürüm motorunuzun üzerinde olusturulur ve bunlari büyük dagitik takimlar icin kaynak kodu yönetimini basitlestiren yüksek üretkenlikli is akisi modeli ile yayar.

Borland ceviri Takimi: Dünya capinda yeni pazarlari kesfedin!
Delphi 5 ile, programlariniz icin pazar bütün gezegeni kapsayacak sekilde büyümüstür. Borland ceviri Takiminda programlarinizi yeni dil ve kültürler icin hizli bir sekilde globallestirmek veya yerellestirmek icin ihtiyaciniz olan hersey mevcut. Programlarinizi daha hizli pazarlayabilmek icin ayni anda birden fazla bölge icin gelistirebilirsiniz. Delphi, kaynaklarin tercümesini yönetir ve uluslarasi gelistirmenizi ivmelendirmek icin cevrilmis nesnelerin bir örnegini tutar.

MIDAS: Internet uygulamalariniz icin ölcülebilirlik.
MIDAS ile Internet tabanli uygulamalarin taleplerini karsilayan sistemler insa edebilirsiniz. MIDAS islem hacminizin ölcüsü programlari dagitmak icin Delphi'nin yüksek üretkenligi üzerine insa edilmistir. Son kullanici sayisini arttirir. cok sayida web tarayicisi istemcilerinin , internetteki veya intranet inizdeki Windows istemcilerinin kolaylikla üstesinden gelebilecek Internet uygulamalarini olusturabilirsiniz.MIDAS, varolan sistemleriniz ile e-ticaret uygulamalarinin birlestirilmesini kolaylastirmak icin CORBA, COM ve MTS gibi bütün dagitik hesap standartlarini kullanir. MIDAS'taki bircok yeni özellikten bazilari:
· Mobil ve düsük bant genisligi durumlarinda daha fazla kontrol icin Stateless DataBroker
· Programlarinizi firewall'un disina güvenli bir sekilde tasiyabilmek icin WebConnection bilesenleri
· Gelistirilmis ölcülebilirlik icin sunucu nesne havuzlama


IDE: Gelistirici icin yüksek üretkenlik.
Delphi 5 IDE, kodu okuma, yazma ve arastirma islemini kolaylastirarak gelistiricinin üretkenligini yüksek ölcüde artirir. Kod editörü bir ünite icinde veya iliskili üniteler arasinda gezinmeyi kolaylastirir. Proje yöneticisindeki Sürükle ve Birak destegi herhangi bir acik projeden veya Windows Gezgini dosya diyalogundan projeye dosyalari eklemeyi kolaylastirir. Proje yöneticisinin coklu proje destegini kullanarak, EXE ve DLL dosyalari gibi birden fazla hedefte kolay derleme yapabilirsiniz. Delphi'nin görsel form dizayncisi ile hizli bir sekilde Internet, dagitik hesap ve Windows uygulanmalarini görsel olarak bir panelden bilesenleri secerek olusturabilirsiniz.


Delphi 5 bircok yeni özellik ve VCL'e artirimlar icerir:
· Gelistirme ortaminizin daha fazla kontrolü icin kisisellestirilebilen Masaüstü Ayarlari
· Editörü calisma seklinize göre ayarlayabileceginiz Editor Key mapping
· Kodunuzu daha iyi anlamak ve VCL'i taramak icin proje capinda arastirma
· Programinizda verinin ayrintili anlatilabilirlik kazanmasi icin Tree ve Data Diagram View ile DataModule Dizayncisi
· Proje yöneticisi ve derleyicisi icin bütünlesmis RC Dosyalari
· Uygulamanizin takvimini tutmak icin Yapilacaklar listesi
· Programinizin özelliklerini ayarlamak icin Denetim Masasi


Visual Component Library: Kod tekrar kullaniminda son nokta
Delphi ile güvenilir ve verimli uygulamalar olusturmak icin nesne tabanli uygulama gücünü, kendi yarariniza kullanirsiniz. Delphi'nin ispatlanmis nesne tabanli bilesen yapisi ile kendi bilesenlerinizi insa edin. Delphi 5 (Delphi Enterprise'da) 200'ün üstünde Internet ve Windows uygulamalariniz icin pazarlama hizini dramatik arttiran bilesenleri iceren Visual Component Library icerir. Yeni Frame özelligi ile isiniz icin görsel olarak bilesenler insa edeceginizden üretkenliginiz artacak. Kaynak koda acik erisim ile VCL' in sikligini kesfedeceksiniz. (simdi Decision Cube bilesenleri ve ek Property Editors icin ek kaynak kod icerir). Delphi ile bilesen tabanli gelistirme, Windows ya da Internet uygulamalari gibi en zor gelistirme görevlerini basitlestirir. Delphi 5 VCL ile ilgili bircok yeni özellik ve artirimlar icerir:


· Karmasik bilesenler derlemek ve insa etmek icin Frameler
· Uygulamanizla HTML arattirmayi birlestirmek icin WebBrowser bileseni
· Word, Excel ve Outlook gibi Office uygulamalari ile kendi programlarinizi hizli bir sekilde entegre etmek icin MS Office otomasyon bilesenleri kümesi
· ögrenme ve üretkenligi arttirmak icin Property Category'ler
· özellik seceneklerini basitlestirmek icin Property Editor'ünde Owner Draw destegi
· Windows API üzerinde daha fazla kontrol icin Advanced Custom Draw fonksiyonlarina gelistirilmis destek


Karmasik projeleri pazara daha hizli tasimak icin gelismis hata ayiklama
Delphi ile, en karmasik projelerde bile hatalari bulmak ve ayiklamak daha önce hic daha basit olmamisti. Delphi'nin gelistirilmis hata ayiklayicisi kodunuzun ne yapacagini anlamaniza ve kontrol etmenize yardimci olur. Breakpoint'ler ile kodda istedigimniz noktada yogunlasabilirsiniz. simdi breakpoint'te yapilmasi gereken isi ayarlayip breakpoint'leri gruplayarak kodunuzun ilgilendiginiz bölümlerini cabucak hata ayiklayabilirsiniz. Delphi 5 hata ayiklayicisi icin bircok yeni özellik ve artirimlar icerir:


· Pano ve sürükle ve birak destegi de dahil olmak üzere, editör ile hata ayiklama pencerelerinin entegrasyonu ve kolay kullanilabilirlik
· Daha hizli arastirma icin Breakpoint ToolTip'leri
· Hata ayiklama islemi üzerinde daha fazla kontrol icin Breakpoint Action'lari
· Birden fazla breakpoint'i daha kolay kontrol icin Breakpoint Groups
· DCUlar ve Hata Ayiklama sembol arama yollari ile daha kolay hata ayiklama
· Artirilmis düsük seviyeli hata ayiklama icin MMX destegiyle birlikte FPU görüsü
· cok-islem hata ayiklama
· Merkezilesmst cok-islemli hata ayiklama icin Temporary Process Option'lari
· İslem sinirlarini gecmek icin capraz islem hata ayiklama
· üretilmis islemleri ayiklama
· calisan isleme ekleme yapma ve hata ayiklama


Form1 Form tasarimcisi.
Object İnspector F11 (Bir nesnenin özelligi ve degeri degisir.)
Componet Palet Bilesen Paleti

Run (F9) Programi calistirir.
Her satirdan sonra mutlaka ; konur.


1. SHOWMESSAGE ('yazilacak mesaj');
Butona tiklayinca ekran mesai verir. örnek: showmessage('merhaba')
2. CLOSE
Butona tiklayinca kapatsin.

Begin
Close;
end

String Karakter
İnteger Sayisal degerler

3. TIME

Form1'in basligina saati gösterir.
Form1.caption:=TimeToStr(time);

Hem saat hem tarih icin;
Form1.caption:=datetimeToStr(now);

Edit Butonu :
Form1.caption:=edit1.text

İki sayinin toplamini ücüncüye yazdiran kod: Ama 5+5 sonucunu 55 yazar.
Edit3.text:=edit1.text+edit2.text;

Tam String ifadeyi integer ifadeye cevirmek suretiyle dogrusu yazilir.
edit3.text:=intToStr(StrToint+(edit1.text)+StrToint(edit2.text));

Butona tikladiginda .exe dosyasini calistiran kod:
Winexec(pchar('C:\windows\scandskw.exe'),sw_shownormal);

& isareti karakterin altini cizer ve Alt tusu ile kullanilmasini saglar.
Kapat yazan butonun caption özelligine &Kapat yazarsa sonuc; Kapat olur.


BİLEsENLERİ (COMPONENTLERİ) KULLANMAK

NESNE Events

Properties Method

İPUCU : Shift tusu ile birlikte butona basilirsa ayni butondan bir cok buton cizilebilir.

4. CAPTİON : Nesnenin etiketini degistirir.
5. CONSTRAİNTS : Nesnenin en genis veya en dar alabilecegi en yüksek ve en kücük degeri gösterir.
Maxheight : En büyük alabilecegi yükseklik
Maxwidht: Genisliginin en büyük alabilecegi deger.
Minheight : Minimum yükseklik
Minwidht : Minimum genislik



If …(a)…. then
begin (a) sarti temsil eder.
(b) (b) Kosul saglandiginda isleyecek kodlar
end
else
begin (c) Kosul saglanmadiginda isleyecek kodlar
(c)
end;
end;
end.

cALIsMA-1





1 nci butona tiklayinca 4 nolu button enabled (pasif) olsun.

2 nci buttona tiklayinca font özellikleri 1 nciye kopyalansin.

3 ncü buttona tiklayinca 6 nci buttonu genisletsin.

4 ncü buttona tiklayinca button1 eski halini alsin.

5 nci buttona tiklayinca 2 nciyi gizlesin. Show yazsin.

6 nci buttona tiklayinca kendini kücültsün.


cözüm Aciklamasi

1.Button (onclick olayina yazilacak kod)

if button4.enabled=True then {Eger, Button4 enabled(aktif) özelligi dogru ise;}

begin
button4.enabled=False; {Button4'in enabled özelligi yanlis ise,}
button1.caption:='&1 Enabled 4'; {Button1'in Caption özelligine '&1 Enabled 4' yaz.}

end

else Degilse,

begin
button4.enabled.=True; {Button4'ün enabled özelligi dogru ise,}
button1.caption:='&1 Disable 4' {Button1'in caption özelligine '&1 Disable 4' yaz.}

end;
end;
end.

2. Button (onclick olayina yazilacak kod)
button1.font:=button2.font; {Button2'nin font özelligini Button1'e kopyalar.}

3. Button (onclick olayina yazilacak kod)
button6.height:=button6.height+2; {Button6'nin yüksekligini 2 birim artirir.}
button6.widht:=button6.widht+2; {Button6'nin genisligini 2 birim artirir.}

4. Button (onclick olayina yazilacak kod)

button1.parentfont:=True; {Button1'in Parentfont (eski font ayarlansin) dogru yap.}

Not: (PARENFONT özelligi; font ayarlarinin eski haline dönmesini saglar)

5. Button (onclick olayina yazilacak kod)

if button2.visible=True then; {Eger button2 visible (görünür) özelligi dogru ise.}
begin
button2.visible:=False; {Button2nin visible özelligi yanlis ise; (yani görünmüyorsa)}
button5.caption:='&5 Show 2'; {Button5'in caption'una &5 Show yaz.}
end
else Degilse,
begin
button2.visible:=True; {Button2nin visible özelligi dogru ise (görünüyorsa)}
button5.caption:='&5 Hide 2'; {Button5'in capiton özelligine &5 Hide 2 yaz.}
end;
end;
end.

6. Button (onclick olayina yazilacak kod)

button6.height:=button6.height-3; {Button6'nin yüksekligini 3 birim kücültsün}


cALIsMA-2









WORDRAP : Etikette alta yazmasini saglar. (True olursa )
Label'in formu kaplamasi icin Align özelligi alclient yapilir.

Alignment özellikleri
Tacenter à Yaziyi ortalar.
TaLeftJustify à Sola hizalar.
TaRightJustify àSaga hizalar.

Onclick olayina yazilacak kod
Label1.Alignment:=taLeftJustify

Onclick olayina yazilacak kod
Label1.Alignment:=taRightJustify

Onclick olayina yazilacak kod
Label1.Alignment:=taCenterJustify

Renkler icin dialogs bölümünden colordialog kutusu formun üzerine getirilir.

Name özelligi dlgRenkKutusu olarak yazabiliriz.

Onclick olayina yazilacak kod
DlgRenkKutusu.Execute; (execute: dialog kutusunu getirir.)
Label1.color:=dlgRenkKutusu.color;


Onclick olayina yazilacak kod
DlgRenkKutusu.Execute; (execute: dialog kutusunu getirir.)
Label1.font.color:=dlgRenkKutusu.color;

DELPHİDE KAYDETME İsLEMİ
Her uygulamanin adina Application denir.
Project (Program)
Unit (Form)

Her uygulama icin ayri bir klasör olusturmak gerekir.

Project1.exe à Bizim verdigimiz isimler olacak.
Unit1.pas
Project1.dpr
Unit1.dfm


cALIsMA-3 (sürükleme)






Yukaridaki sekilde soldaki Label'lerin renkleri mouse ile yandaki StaticText nesnesinin rengi degisecek.

1. İki cesit sürükleme vardir. Manual ve Automatic
Nesnenin dragmode özelligi ayarlanir.
2. Label'in Properties'inden DragMode özelligi Automatic secilir.
3. üstüne sürüklenen nesnenin dragover olayindaki accept true olacak. Yani statictext'in event bölümünde;
Accept:=True;
4. Sonra sürüklenen yerde ondragDrop olayi olusur.
5. Kendi üzerine birsey sürüklenen nesnenin sürükleme islemi devam ederken onDragDop olayi olusur.
DragDrop : cekti burakti,
DragOver : cekti dolastirdi.
6. StaticText'in ondragDrop olayina yazilacak kod;
StaticText1.color:=(source as Tlabel).color;

calisma 3-1




Yukaridaki uygulamada; edit1.text icindeki yazi label'lerin üzerine sürüklendiginde label'lerin caption özelligine kopyalansin.

Yapilacak İslemler
1. edit1'in DragMode olayi dmAutomatic yapilir. (properties)
2. Label1'in onDragOver olayina Accept:=True; kodu yazilir:
3. Label1'in onDragDrop olayina Label1.caption:=edit1.text kodu yazilir.

Ama burda sadece bir label icin oldu. Biz bütün Label'ler icin olmasini istiyorsak eger;
(sender as Tlabel).caption:=(source as Text).text; kodu yazilir.

Sender : Olayin meydana geldigi yer.

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

NOT: Yazilan kodlar icine kendimiz aciklama yazmak istiyorsak eger; 3 yöntem kullanabiliriz.
1. // tek satirlik aciklamalarda kullanilir.
2. { } birden cok satirli aciklamalarda kullanilir.
3. (* *) birden cok satirli aciklamalarda kullanilir.


cALIsMA-4 (Giris Odaginin Yönetilmesi)







TabOrder : Tabsirasini ayarlar.
Tabstop : True iken False olursa tab sekmesi o nesneye ugramaz.
OnEnter : Odaklanan nesnenin hakkinda bilgi verir.
StatusBar1 (Durum cubugu) : StatusBar'in üzerinde yazi görünmesini saglar. StatusBar'in üzerine yazi yazmak icin simpletext özelligi kullanilir.
Yazinin StatusBar'da gözükmesi icin; SimplePanel à True olacak.

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

Edit2'ye gelince status bar'da yazi görünmesi icin
OnEnter olayinda
Statüs Bar1.snpktext:='Adinizi Giriniz'; diger Ed,tler icinde gecerlidir.
Statüs Bar1'deki yazi fontunun degismesi icin UseSystemFont özelligi True olmalidir.
Hint(ipucu) özelligi
O nesnenin hint özelligine aciklama yazilir.
Showhint özelligi True olmalidir.
StatusBar1.simpletext:=(sender as (edit).hint;
Onexit
Edit1'de cikmaya calistiginda bos ise mesaj verilir.
Tamama tiklayin sonra o edite dönsün
If edit1.text:='' then ('')hicbirsey anlamindadir.
Begin
Showmessage('adinzi yaziniz');
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ü:Agac veya birbirine cok benzeyen islemlerin birden cok kez tekrarlandigi kisimlara denir.
Bu islemleri alt alta yazmak yerine bir döngü icinde tanimlamak kodu kisaltir ve olanakligini arttirir

Ali ayaklarini yikada gel
Bosluklari say
Edit1.text[1] texin ilk degeri

Length(edit1.text) text'deki krakter sayisini gösterir.
Kodu
Var
I,s:integer;
Begin
Fori:=1 to length(edit1.text) do
If edit1.text=" " then s:=s+1;
Show message('bosluk sayisi:'+inttostr(s));
End;
End
End;

Var
Ad:string[10] ad degiskenine en fazla 10
Soyad:string[15] ad degiskenine en fazla 15


öDEV
Klavye yazilan paragraftaki istatiklik kodu yazilacak

Bosluk
Kelime
Cümle
Nokta
Virgül






For Döngü Degiskeni:iİlk deger 10 son deger 00
Begin
……
end;


for x:=1 to 10 do
begin
……..
end;
AcIKLAMA:X döndü degiskeni ilk blok icindeki program satiri 10 kez arka arkaya iletilir.


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

Edit kutusuna girilecek karakterleri tanimlamak


pp









Check ile run edilince






Check butonunun OnClick olayi

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('giris hatali',mterror,[mbOK];


Var
I,sc,sn,skb,sv:integer;
Begin
Sc:=0;
Sn:=0;
Skb:=0;

For I:=1 to length

Edit1'in OnChange Olayi
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('giris hatali',mtError,[mbOK];
End;
End;
End.


Edit'tin OnExit olayi
Odak bir nesneden ayrildigi zaman o nesnenin OnExit olayi 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('giris hatali',mtError[mbOK],0');
End;
End;
End;

Sayi girdikce her edit dosyasina gecisi sagliyor.
Ayni kodu Edit1'in OnChange yazdigimiz zaman (karakter sectigimiz zaman )hata veriyor.






RichEdit1:Sadece secili alanlar icin özellik ayarlar.
Memo1:Hepsi birden degisir (ö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];

Eger memo1'deki yazi hem italic, hemde bold olacaksa, ayrica tiklandiginda, Bold; seciliyken tiklandiginda Bold özelligi 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 yazilan paragraftaki istatistik kodu yazilacak. (Bosluk sayisi, Kelime sayisi, Cümle sayisi, Nokta sayisi, Virgül sayisi)


FOR DöNGü DEĞİsKENİ
İlk deger TO son deger DO

Begin
……….
End;

For x=1 TO 10 DO

Aciklama : X döngü degiskeni
İlk blok icindeki program satiri 10 kez arka arkaya isletilir.

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










CHECK ile RUN edilince;

Check Butonunun OnClick olayi

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('Giris Hatali',mtError,[mbOK];
Editin change olayi
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('giris hatali',mtError,[mbOK];
end;
end;
end.

EDİTİN ONEXIT OLAYI
Odak nesneden ayrildigi zaman o nesnenin onExit olayi meydana gelir.
Var
Sayi,kod:integer;
Begin
Val(edit1.text,sayi,kod);
If kod<>0 then
Begin
Edit1.setfocus;
Label6.caption:=inttostr(kod);
MessageDlg('giris hatali',mtError,[mbOK];
End;
End;
End;

Sayi girildikce her edit dosayasina gecisi sagliyor.

Yani kodu edit1 in OnChange yazdigimiz zaman (karakter girdigimiz zaman)hata veriyor.





RichEdit1:sadece secili alanlar icin özellik ayarlar.
Memo1:hepsi birden degisir(özelliklerinin)





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

Eger memo1 deki yazi hem italikihem bold olacaksa ayrica tiklandigindabold özelligi kalkacak
KOD
CHECKBOX
If checkbox1.checked then
Memo1.fontstyle:=memo1.fontstyle+[fsbold];
Else
Memo1.font.style:=memo1.font:style-[fsbold];
End;
RADIO BUTTON
Begin
Memo1.fontname:=radiobuton1.caption;
End





Label1.caption:=inttostr(radiogroup1.ItemIndex);

CASE OF DEĞİMİ
Case radioGroup1.ItemIndex of
0
memo1.aligment:=toleftjustfy;
1
memo1.aligment:=torightjustfy;
2
memo1.aligment:=tocenter;
end


öDEV


Fist object position second object





RadioGroup1.Items[RadioGroup1.ItemIndex]

ONKEYPRESS

Odak bir nesne üzerindeyken klavyeden bir tusa basilinca meydana gelen olay Editii onkeypress olayidir.
Var(edit1 de sadece rakamlari aliyor)
Key:char
Begin
If not((key in ["0".."y",#8]) then
Begin
Key:=#0;
Beep
End
End;
Eger 9 deger girildigi zaman edit 4'e karakter yazamiyoruz
Program 0'dan büyük harf olmak kosuluyla Y'e kadar degergirebiliriz.
MASKEDIT(Additional altinda 3.button)
Editmask özelligi\cift tikla\extension\ok
Kac haneli rakam girilecegini belirtiyor.
öDEV
Adinizi giriniz(kücük) OnKeypress özelligi

Soyadinizi girin(büyük)

Aksi taktirde klavye yazmiyacak.
PROGRAM
Var
Key:char;
Begin
Key:=#0;
End;
End;
Var
Key:char;
Begin
If not(key in ['A'..'Y',#8]) then
Begin
Key:=#0;
End;
End;


Var
I,sc,sn,sk,b,sv:integer;
Begin
Sc:=0;
Sn:=0;
Skb:=0;
Sv:=0;
For i:=1 to lenght(edit1.text) do
If edit1.text='?' then
Sc:=sc+1;
Else
If edit1.text='.' Then
Begin
Sc:=sc+1;
Sn:=sn+1;
End
End;
Else

SHOWMESSAGE
('cümle sayisi'+inttostr(sc)+#13+'nokta sayisi'+inttostr(sn)+#13+'kelime sayisi' inttostr(skb+1)+#13+'bosluk sayisi'+intostr(skb+#13+'virgül sayisi+inttostr(sv));





Begin
Dlgrenk_kutusu.execute
Label1.color:=Dlgrenk_kutusu
End;
SORU1
Zeminin OnClik
Begin
Dlgrenk_kutusu.color
End;
F9 run ediliyor



--------------------------------------------------------
begin
Dlgrenk_kutusu.execute
Label1.color:=Dlgrenk_kutusu.color;
Label2.color:=Dlgrenk_kutusu.color;
Button1.caption:=Dlgrenk_kutusu.color
End;
F9 run ediliyor
cvp:Button1 color özelligi yok


Var
Key:char;
(program calismiyor eger kullanilmiyorsa)
begin
key:=#0;
.
.
.
.
soru3)
if kod<>0 (<>0 :hatali kod(integer mi))
(<>0 dogru kod,1 hatali kodmu)

EDİTöR YAPIMI DİOLOG ALTINDA PANEL









AlTop ücte tasir Panel'in align özelligini
AlClient akrani kaplar(özelliklerden)
Font'a tikladigimida secili nesne varsa dialog kutusu acilacak
Her procedure begin ile baslar.
Begin
If re.sellength>0 then

Begin
Fd.fontAssign(RE.defAtributes);

Parantezin icindekilerFD'nin icine kopyalaniyor.
If FD.execute then
Re.selAtributes.Assign(FD.font);
Re.setfocus;
End,
Else
Showmessage('metin secin');
F9run edilince
Richtext nesnesi icerigine yazi yazilip secilip,font tusuna basilinca ,font menüsü ekrana gelir.


Ayni panele ekliyoruz.

Begin
If memo1.sellenght>0 then
Begin
Fd.font:memo1.font;
If fd.execute then
Memo1.font:=fd.font;
Memo1.setfocus ;
End ;
Else
Showmesage('önce metin secin'),
Cevapla