Professional Documents
Culture Documents
6 Unit
6 Unit
191
I.SATIR:
Unit Unit1;
Bu satr Unit inizin ismidir. Her formun bir Unit i oldu u için, adlandrmada
ayn sralamayla Delphi tarafndan otomatik olarak yaplmaktadr. Yani ilk
formun Unit ismi Unit1, ikinci formun Unit ismi Unit2 vs. Delphi Unit
isimlerini de i tirmeye u a amada imkan vermemektedir. E er ismini
de i tirirseniz hatayla kar la rsnz .
II.SATIR:
nterface
III.SATIR
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
192
UYGULAMA 1:
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms;
//Dialogsu sildim
imdi de programnz çal trn. Daha önce çok kolay bir ekilde çal trd nz
uygulamanz hata mesaj verecektir. Sebebi çok basit ShowMessage methodu
Dialogs class içerisinde tanmldr. Bu class projeden sildi iniz için artk
uygulamanz bu methodu bulamayacak, tanmayacak ve çal tramayacaktr.
193
Önemli Uyar: Bir methodun tanml oldu u kütüphanesine ula mak için, Mous
ile o komutun üzerine gidin ctrl tu u baslyken (mousun ekli de i ecektir)
mousun sol tu uyla üzerine tklayn, sizi tanmland kütüphaneye
yönlendirecektir.
UYGULAMA 2:
lk olarak formunuzun üzerine iki adet button kontrolü yerle tirerek, a a daki
tasarm olu turunuz.
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
StdCtrls,Dialogs,MMSystem;//Eklemeyi unutmayn
194
Sanyorum olayn mant n anladnz. Bir methodu kullanmak için öncelikle
onun tanmlanm oldu u kütüphaneden müsaade almalsnz (Onu projenize
dahil ederek). Aksi takdirde methodu proje içerisinde kullanamazsnz.
IV.SATIR:
type
TForm1 = class(TForm)
Görsel dillerde kod yazma i lemi çok basit oldu u için, formunuzun üzerine
sürükledi iniz kontrollerle örnekler geli tirebildi inizi, bir çok kodu ezbere
yazd nz maalesef biliyorum. Class ksmnda yazlan kod satrlarndan
ço unun ne içerdi i hakknda bilgisi olmayan programclarn oldu unu hatta
195
bazlarnn i i abartp kitap bile yazdklarn maalesef görüyoruz (Hatta
kapaklarnda 4. veya 5. bask bile yazan var). Bu kitab hazrlamamdaki asl
amaç, Fakülte içerisinde verdi im derslere kaynak bulamadklar için bu
kalitesiz kitaplar koltu unun altna alp gelen (Ö rencilerimi bu hususta
suçlamyorum) ö rencilerime k tutabilmek maksatl olmu tur
(Referanslarmz hakknda ufak bir fikir edinebilmeniz için kitabun açl
sayfalarna baknz).
imdi tekrar konumuza dönerek Unit satrlarmz izah etmeye devam edelim.
V.SATIR:
private
{ Private declarations }
Sadece o Unit tarafndan (Buradaki Unit Forma ait oldu u için sadece form
kontrolleri tarafndan da denilebilir. Genel anlamda hangi class a aitse)
kullanlabilecek de i ken ve methodlarn declare edilebilece i bloktur. Burada
tanmlad nz bir de i keni di er formlardan (veya Unit lerden) ça ramazsnz.
Private blo u içerisinde yapm oldu unuz tanmlamalar Implementation dan
sonra yaplanlardan farkldr (class ksmnda inceleyebilirsiniz). Burada
tanmlayaca nz bir de i keni proje içerisinde nasl kullanabilece inizi
göstermek istiyorum.
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
deger:Integer; //Buradaki de i ken tanmlamasnda var kullanlmaz
Tanmlam oldu unuz deger isimli de i ken bütün alt yordamlar tarafndan
kullanlabilecektir. Fakat ba ka bir Unit içerisinden bu de eri kullanabilmek
mümkün de ildir.
196
deger isimli de i keni, Unit inizin private ksmnda tanmlad nz için tüm
alt yordamlar tarafndan kullanlabilecektir.
197
imdi de private ksmnda bir prosedür tanmlayarak Unit içerisinde nasl
kullanabilece imizi görelim.
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
deger:Integer; //De i ken tanmland
procedure uyar();//Prosedür tanmlanyor.
198
Burada de inmek istedi im di er bir noktada, bu prosedüre formun di er
methodlarna nasl eri ebiliyorsanz o ekilde eri ebilece inizdir. Yani Form2
yazp . tu una basarsanz açlacak olan pencerede prosedürün ismi
gözükecektir.
199
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
deger:Integer; //De i ken tanmland
procedure uyar();
function hesapla(ilk:Integer;son:Integer):Real;//Function tanmland
{ Private declarations }
Prosedür ksmnda yapt nz gibi, imleç fonksiyonun tanmland satrda iken
Ctrl+Shift+c tu larna beraberce basp a a daki blo un olu masn sa layn.
200
Hatrlatmak istedi im di er bir hususta, tanmlanan fonksiyon Form2 class
nda türetildi i için Editör de Form2 yazp . tu una basarsanz, a a daki
gibi açlacak olan pencerede fonksiyonunuzu bulabileceksiniz.
201
VI.SATIR:
public
{ Public declarations }
end;
VII.SATIR:
end;
VIII.SATIR:
var
Form2: TForm2;
TForm2 class ndan Object Oriented mant kullanlarak Form2 isminde yeni
bir de i ken türetilip kullanma sunulmaktadr. Hatrlatalm TForm2 nin tüm
özellikleri bu yeni de i kene de aktarlm olacaktr.
IX.SATIR:
implementation
Forma ait Event lar için yazlacak olan kodlar bu satrdan itibaren ba lar. E er
Unit içerisinden silerseniz uygulamanz çal mayacaktr.
X.SATIR:
{$R *.dfm}
.dfm uzantl dosyaya yazlacak olan kodlar belirleyen çok önemli bir
bildiridir. Sakn Unit inizin içerisinden silmeyiniz. Silerseniz uygulamanzn
çal trlmas ba arszlkla sonuçlanacaktr.
202