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

Delphi 5 Enterprise
Delphi 5 Enterprise internet ve dağıtık hesaplama için yüksek üretkenlik çözümüdür. Delphi'nin InternetExpress'i, e-ticareti destekleyen, esnek, yayılabilen sistemleri oluşturmak için HTML 4 ve XML'i kullanan Web Client Page Wizard'ı, dağıtık HTML uygulamaları oluşturmak için MIDAS PageProducer ve WebBroker'ı içerir. ADOExpress ile her türlü bilgiye hızlı erişim kazanırsınız ve TeamSource ile bütün geliştirme takımınızın üretkenliğini arttırabilirsiniz. CORBA, COM ve MTS gibi bütün dağıtık hesaplama standartlarını kullanan MIDAS'ı kullanarak internet uygulamalarınızı arttırabilirsiniz. 200'ün üstünde tekrar kullanılabilen bileşenleri ve kaynağıyla birlikte Visual Component Library kullanan güvenilir uygulamaları oluşturabilir, hata ayıklayabilir ve programlarınızı yayabilirsiniz. Kilit veritabanı sistemleri oluşturmak için Interbase Express'i kullanabilirsiniz. Ayrıca bu paket InterBase, MS SQL, Informix, Sybase ve Oracle için Native SQL Link'leri içermektedir.
Delphi
5 Professional
Delphi 5 Professional, web ve veritabanı uygulamaları oluşturmak için en hızlı, en üretken Windows geliştirme aracıdır. Delphi 5 Professional , profesyonel IDE, WebBroker, Native Internet Components, InterBase Express ve güvenilir hata ayıklama araçlarını içerir. Project Browser, Code Explorer ve Data Module Designer görüntüleriyle kodunuzu anlayabilir ve araştırabilirsiniz.İşiniz için bileşenleri Frame'ler ile görsel olarak oluşturabilirsiniz. MS Office otomasyon kontrolcülerinin tamamını içeren COM nesne ve sunucularını oluşturup yeniden kullanın. Delphi 150 tekrar kullanılabilir bileşeni ile üretkenliği arttıtır ve bütün uygulama evresini yönetir. Güvenilir uygulamaları pazara daha hızlı getirmek için dünyanın en hızlı 32-bit derleyicisini ve Advanced Project Manager' i kullanır.
Delphi
5 Standard
Delphi 5 Standard , sürükle ve bırak görsel programlama, örnekler ve 85'in üstündeki tekrar kullanılabilir bileşenli Visual Component Library ile Windows altında uygulama geliştirmeyi kolaylaştırır. Kolay ve çabucak Word, Excel, PowerPoint ve Outlook için MS Office bileşenleri gibi COM nesnelerini otomatikleştiren Windows uygulamaları oluşturabilir, hata ayıklayabilir ve yayabilirsiniz. Kodu sizin için tamamlayan CodeInsight Wizard'ı kullanabilir, Tek bir satır kod yazmadan tekrar kullanılabilir bileşenleri oluşturmak için Componenet Template'leri kullanabilirsiniz. Artı Microsoft Windows 95 ve Windows NT, Win32 API, COM, ActiveX ve OLE Automation'ı içeren endüstri standartları için tam destek hakkı kazanın. Geliştirme ortamınızı tamamen kişiselleştirmek için Dockable Toolbars ve Dockable Windows'u bu pakette kullanabilirsiniz.
Delphi
5 Yenilikler
XML:
Delphi 5, veri dağıtımını ve değişimini kolaylaştırır!
Verilerinizi web'e çabucak ulaştıran yüksek hızlı Internet uygulamaları geliştirebilirsiniz.
Delphi'nin XML veri desteği esnek olduğu için internetteki e-ticaret'i desteklemek
için genişletilebilir sistemleri kurmanızı sağlar.
HTML 4 : Web için nitelikli
Dynamic Thin-client
Delphi 5, HTML 4 ve XML kullanan dinamik ultra-thin istemciler kurmanız için
ihtiyacınız olan gücü getiriyor. Bu size nitelikli ve isteklerinize yanıt veren
istemci uygulamalarını Internete hızlı yayma olanağı tanır.
ADO:
Bütün bilgi kaynaklarına hızlı erişim.
Delphi 5 e-posta ve dosya sistemleri de
dahil olmak üzere her türlü veri tabanına hızlı erişim sağlar. Microsoft'un
ActiveX Veri Nesnesini ve OLEDB teknolojisini
kullanarak son-kullanıcılarınızın daha iyi ticari karar vermeleri için ihtiyaç
duydukları veri evrenine anında erişim kazanabilirsiniz. Delphi'nin açık veri
bileşenlerini kullanarak, kısa zamanda ticari verilerinizi internette müşterilerinize,
son kullanıcılarınıza ve bütün hedef kitlenize götüren sistemler kurabilirsiniz.
ADO son kullanıcınızın istemci işletim sisteminin standart bir parçası haline
geldiğinden, programlarınız kolayca yayılabilecek.
InterBase
Express: Yüksek performanslı sistemler
InterBase Express ile, VAR'lar, SI'lar ve ISV'ler programları, çabuk dağıtılabilen
yüksek performanslı sistemleri inşa edebilirsiniz. Delphi ve InterBase ile,
yüksek üretkenlik, yüksek performanslı geliştirme yapabilirsiniz. Ayrıca yüksek
hızlı, az bakım isteyen, small-footprint ilişkisel veri tabanı birleştirilmiştir.
Interbase Express ile mükemmel gömülü sistemler oluşturmak için artık Borland
Database Engine ile geliştirme ve dağıtma yapmanıza gerek kalmayacak.
TeamSource:
Bütün geliştirme takımınıza üretkenlikte cesaret verin
Delphi 5 ile bütün takımınız, birlikte daha iyi ve daha hızlı çalışacak. TeamSource
kaynak kodunuzu yönetim biçiminizde bir devrimdir. TeamSource, varolan kaynak
kodu yönetiminizin ve sürüm motorunuzun üzerinde oluşturulur ve bunları büyük
dağıtık takımlar için kaynak kodu yönetimini basitleştiren yüksek üretkenlikli
iş akışı modeli ile yayar.
Borland
Çeviri Takımı: Dünya çapında yeni pazarları keşfedin!
Delphi 5 ile, programlarınız için pazar bütün gezegeni kapsayacak şekilde büyümüştür.
Borland Çeviri Takımında programlarınızı yeni dil ve kültürler için hızlı bir
şekilde globalleştirmek veya yerelleştirmek için ihtiyacınız olan herşey mevcut.
Programlarınızı daha hızlı pazarlayabilmek için aynı anda birden fazla bölge
için geliştirebilirsiniz. Delphi, kaynakların tercümesini yönetir ve uluslarası
geliştirmenizi ivmelendirmek için çevrilmiş nesnelerin bir örneğini tutar.
MIDAS:
Internet uygulamalarınız için ölçülebilirlik.
MIDAS ile Internet tabanlı uygulamaların taleplerini karşılayan sistemler inşa
edebilirsiniz. MIDAS işlem hacminizin ölçüsü programları dağıtmak için Delphi'nin
yüksek üretkenliği üzerine inşa edilmiştir. Son kullanıcı sayısını arttırır.
Çok sayıda web tarayıcısı istemcilerinin , internetteki veya intranet inizdeki
Windows istemcilerinin kolaylıkla üstesinden gelebilecek Internet uygulamalarını
oluşturabilirsiniz.MIDAS, varolan sistemleriniz ile e-ticaret uygulamalarının
birleştirilmesini kolaylaştırmak için CORBA, COM ve MTS gibi bütün dağıtık hesap
standartlarını kullanır. MIDAS'taki birçok yeni özellikten bazıları:
· Mobil ve düşük bant genişliği durumlarında
daha fazla kontrol için Stateless DataBroker
· Programlarınızı firewall'un dışına güvenli
bir şekilde taşıyabilmek için WebConnection bileşenleri
· Geliştirilmiş ölçülebilirlik için sunucu
nesne havuzlama
IDE:
Geliştirici için yüksek üretkenlik.
Delphi 5 IDE, kodu okuma, yazma ve araştırma işlemini kolaylaştırarak geliştiricinin
üretkenliğini yüksek ölçüde artırır. Kod editörü bir ünite içinde veya ilişkili
üniteler arasında gezinmeyi kolaylaştırır. Proje yöneticisindeki Sürükle ve
Bırak desteği herhangi bir açık projeden veya Windows Gezgini dosya diyalogundan
projeye dosyaları eklemeyi kolaylaştırır. Proje yöneticisinin çoklu proje desteğini
kullanarak, EXE ve DLL dosyaları gibi birden fazla hedefte kolay derleme yapabilirsiniz.
Delphi'nin görsel form dizayncısı ile hızlı bir şekilde Internet, dağıtık hesap
ve Windows uygulanmalarını görsel olarak bir panelden bileşenleri seçerek oluşturabilirsiniz.
Delphi
5 birçok yeni özellik ve VCL'e artırımlar içerir:
· Geliştirme ortamınızın daha fazla kontrolü için
kişiselleştirilebilen Masaüstü Ayarları
· Editörü çalışma şeklinize göre ayarlayabileceğiniz
Editor Key mapping
· Kodunuzu daha iyi anlamak ve VCL'i taramak için
proje çapında araştırma
· Programınızda verinin ayrıntılı anlatılabilirlik
kazanması için Tree ve Data Diagram View ile DataModule Dizayncısı
· Proje yöneticisi ve derleyicisi için bütünleşmiş
RC Dosyaları
· Uygulamanızın takvimini tutmak için Yapılacaklar
listesi
· Programınızın özelliklerini ayarlamak için Denetim
Masası
Visual
Component Library: Kod tekrar kullanımında son nokta
Delphi ile güvenilir ve verimli uygulamalar oluşturmak için nesne tabanlı uygulama
gücünü, kendi yararınıza kullanırsınız. Delphi'nin ispatlanmış nesne tabanlı
bileşen yapısı ile kendi bileşenlerinizi inşa edin. Delphi 5 (Delphi Enterprise'da)
200'ün üstünde Internet ve Windows uygulamalarınız için pazarlama hızını dramatik
arttıran bileşenleri içeren Visual Component Library içerir. Yeni Frame özelliği
ile işiniz için görsel olarak bileşenler inşa edeceğinizden üretkenliğiniz artacak.
Kaynak koda açık erişim ile VCL' in şıklığını keşfedeceksiniz. (Şimdi Decision
Cube bileşenleri ve ek Property Editors için ek kaynak kod içerir). Delphi ile
bileşen tabanlı geliştirme, Windows ya da Internet uygulamaları gibi en zor
geliştirme görevlerini basitleştirir. Delphi 5 VCL ile ilgili birçok yeni özellik
ve artırımlar içerir:
·
Karmaşık bileşenler derlemek ve inşa etmek için Frameler
· Uygulamanızla HTML arattırmayı birleştirmek
için WebBrowser bileşeni
· Word, Excel ve Outlook gibi Office uygulamaları
ile kendi programlarınızı hızlı bir şekilde entegre etmek için MS Office otomasyon
bileşenleri kümesi
· Öğrenme ve üretkenliği arttırmak için Property
Category'ler
· Özellik seçeneklerini basitleştirmek için Property
Editor'ünde Owner Draw desteği
· Windows API üzerinde daha fazla kontrol için
Advanced Custom Draw fonksiyonlarına geliştirilmiş destek
Karmaşık
projeleri pazara daha hızlı taşımak için gelişmiş hata ayıklama
Delphi ile, en karmaşık projelerde bile hataları bulmak ve ayıklamak daha önce
hiç daha basit olmamıştı. Delphi'nin geliştirilmiş hata ayıklayıcısı kodunuzun
ne yapacağını anlamanıza ve kontrol etmenize yardımcı olur. Breakpoint'ler ile
kodda istediğimniz noktada yoğunlaşabilirsiniz. Şimdi breakpoint'te yapılması
gereken işi ayarlayıp breakpoint'leri gruplayarak kodunuzun ilgilendiğiniz bölümlerini
çabucak hata ayıklayabilirsiniz. Delphi 5 hata ayıklayıcısı için birçok yeni
özellik ve artırımlar içerir:
·
Pano ve sürükle ve bırak desteği de dahil olmak üzere, editör ile hata ayıklama
pencerelerinin entegrasyonu ve kolay kullanılabilirlik
· Daha hızlı araştırma için Breakpoint ToolTip'leri
· Hata ayıklama işlemi üzerinde daha fazla kontrol
için Breakpoint Action'ları
· Birden fazla breakpoint'i daha kolay kontrol
için Breakpoint Groups
· DCUlar ve Hata Ayıklama sembol arama yolları
ile daha kolay hata ayıklama
· Artırılmış düşük seviyeli hata ayıklama için
MMX desteğiyle birlikte FPU görüşü
· Çok-işlem hata ayıklama
· Merkezileşmşt çok-işlemli hata ayıklama için
Temporary Process Option'ları
· İşlem sınırlarını geçmek için Çapraz işlem hata
ayıklama
· Üretilmiş işlemleri ayıklama
· Çalışan işleme ekleme yapma ve hata ayıklama
Form1
Form tasarımcısı.
Object İnspector F11 (Bir nesnenin özelliği ve değeri değişir.)
Componet Palet Bileşen Paleti
Run
(F9) Programı çalıştırır.
Her satırdan sonra mutlaka ; konur.
1. SHOWMESSAGE ('yazılacak mesaj');
Butona tıklayınca ekran mesaı verir. Örnek: showmessage('merhaba')
2. CLOSE
Butona tıklayınca kapatsın.
Begin
Close;
end
String
Karakter
İnteger Sayısal değerler
3. TIME
Form1'in
başlığına saati gösterir.
Form1.caption:=TimeToStr(time);
Hem
saat hem tarih için;
Form1.caption:=datetimeToStr(now);
Edit
Butonu :
Form1.caption:=edit1.text
İki
sayının toplamını üçüncüye yazdıran kod: Ama 5+5 sonucunu 55 yazar.
Edit3.text:=edit1.text+edit2.text;
Tam
String ifadeyi integer ifadeye çevirmek suretiyle doğrusu yazılır.
edit3.text:=intToStr(StrToint+(edit1.text)+StrToint(edit2.text));
Butona
tıkladığında .exe dosyasını çalıştıran kod:
Winexec(pchar('C:\windows\scandskw.exe'),sw_shownormal);
&
işareti karakterin altını çizer ve Alt tuşu ile kullanılmasını sağlar.
Kapat yazan butonun caption özelliğine &Kapat yazarsa sonuç; Kapat olur.
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.
EDİTİN
ONEXIT OLAYI
Odak nesneden ayrıldığı zaman o nesnenin onExit olayı meydana gelir.
Var
Sayi,kod:integer;
Begin
Val(edit1.text,sayi,kod);
If kod<>0 then
Begin
Edit1.setfocus;
Label6.caption:=inttostr(kod);
MessageDlg('giriş hatalı',mtError,[mbOK];
End;
End;
End;
Sayı girildikçe her edit dosayasına geçişi sağlıyor.
Yanı kodu edit1 in OnChange yazdığımız zaman (karakter girdiğimiz zaman)hata veriyor.
RichEdit1:sadece
seçili alanlar için özellik ayarlar.
Memo1:hepsi birden değişir(ö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];
Eğer
memo1 deki yazı hem italikihem bold olacaksa ayrıca tıklandığındabold özelliği
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 tuşa basılınca meydana gelen olay Editii
onkeypress olayıdır.
Var(edit1 de sadece rakamları alıyor)
Key:char
Begin
If not((key in ["0".."y",#8]) then
Begin
Key:=#0;
Beep
End
End;
Eğer 9 değer girildiği zaman edit 4'e karakter yazamıyoruz
Program 0'dan büyük harf olmak koşuluyla Y'e kadar değergirebiliriz.
MASKEDIT(Additional altında 3.button)
Editmask özelliği\çift tıkla\extension\ok
Kaç haneli rakam girileceğini belirtiyor.
ÖDEV
Adınızı giriniz(küçük) OnKeypress özelliği
Soyadınızı girin(büyük)
Aksi
taktirde klavye yazmıyacak.
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[i]='?' then
Sc:=sc+1;
Else
If edit1.text[i]='.' Then
Begin
Sc:=sc+1;
Sn:=sn+1;
End
End;
Else
SHOWMESSAGE
('cümle sayısı'+inttostr(sc)+#13+'nokta sayısı'+inttostr(sn)+#13+'kelime sayısı'
inttostr(skb+1)+#13+'boşluk sayısı'+intostr(skb+#13+'virgül sayısı+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 özelliği yok
Var
Key:char;
(program çalışmıyor eğer kullanılmıyorsa)
begin
key:=#0;
.
.
.
.
soru3)
if kod<>0 (<>0 :hatalı kod(integer mi))
(<>0 doğru kod,1 hatalı kodmu)
EDİTÖR YAPIMI DİOLOG ALTINDA PANEL
AlTop
üçte taşır Panel'in align özelliğini
AlClient akranı kaplar(özelliklerden)
Font'a tıkladığımıda seçili nesne varsa dialog kutusu açılacak
Her procedure begin ile başlar.
Begin
If re.sellength>0 then
Begin
Fd.fontAssign(RE.defAtributes);
Parantezin
içindekilerFD'nin içine kopyalanıyor.
If FD.execute then
Re.selAtributes.Assign(FD.font);
Re.setfocus;
End,
Else
Showmessage('metin seçin');
F9run edilince
Richtext nesnesi içeriğine yazı yazılıp seçilip,font tuşuna basılınca ,font
menüsü ekrana gelir.
Aynı 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 seçin'),