4 Haziran 2012 Pazartesi

Timer İle Formun Caption Özelliğindeki Yazıyı Kayan Yazı Haline Getirmek


Timer bileşeni kullanılarak formun caption özelliğine yazılan yazının sabit kalması yerine kayan yazı şeklinde olmasını sağlayabiliriz.
Bunun için forma 1 tane timer bileşeni eklememiz yeterli.

  1. procedure TForm1.Timer1Timer(Sender: TObject);
  2. var
  3.     a,b: String;
  4. begin
  5.     a := copy(form1.Caption,1,1)// caption’ın ilk karakterini kopyalar
  6.     b := copy(form1.Caption,2,length(form1.caption))// caption’ın ilk karakterden sonraki kısmını kopyalar
  7.     form1.Caption := b+a; // kopyalanan metinleri ters bir şekilde birleştirir
  8. end;



3 Haziran 2012 Pazar

Delphi Timer Bileşeni



Belirli zaman aralıklarında veya belirli bir süre içerisinde çalışmasını istediğiniz her hangi bir kod, olay varsa, istenilen bu işi yapmamız için gereken bileşen timer bileşenidir. Eğer her saniye çalışmasını istediğiniz bir kod varsa bunu timer bileşeninin OnTimer olayına yazarız. Ardından bileşenin Interval özelliğini 1000 olarak ayarlarsak yazdığımız kod her saniye işletilir.
Enabled Özelliği: Timer bileşeninin kodları çalıştırıp çalıştırmayacağına karar verdiği özelliğidir. Eğer enabled özelliği true ise timer istenilen sürelerde kodları çalıştırır. Enabled özelliği false ise timer çalışmaz.


Aşağıdaki kodlarda timer bileşenin enabled özelliği true ve false olarak değiştiriliyor.

Timer1.Enabled := True; // timer aktif hale getiriliyor
Timer1.Enabled := False; // timer pasif hale getiriliyor

Interval Özelliği: Bu özellik timer bileşeninin hangi aralıklarla işletileceğini belirten özelliğidir. Eğer Intervali 1000 olarak ayarlanırsa timer her saniye işleyecektir. Yani 1000 değeri 1 saniye anlamına gelmektedir. Eğer Interval değeri 500 olursa timer saniyede 2 kez işleyecektir.
Timer İle Kronometre Yapımı
Delphide timer kullanarak krometre yapımını aşağıdaki örnekte olduğu gibi gerçekleştirebiliriz. Uygulama için forma 3 adet button (başla/devam, durdur ve sıfırlamak için), 1 adet label (süreyi yazmak için) ve 1 tanede timer bileşeni (süreyi kontrol etmek için) eklenir.
Bileşenlerin isimlerini aşağıdaki şekilde değiştirelim.
Button: btnBasla
Button: btnDurdur
Button: btnSifirla
Label: lblSure
Timer: tmrZaman
Timer bileşenin Interval özelliği 100 olarak ayarlanırsa kronometre her saniyeyi 10 eşit parçaya bölerek çalışacaktır.

  1. var
  2.     sure : Integer;
  3. procedure TForm1.tmrZamanTimer(Sender: TObject);
  4. var
  5.     sn, ss :Integer;
  6. begin
  7.     inc(sure)// sure := sure + 1 ile aynıdır. Sure değişkeninin değerini 1 artırır
  8.     sn := (sure div 10);  // geçen sürenin 10a bölümünden bölümü alır ve saniyeyi bulur
  9.     ss := (sure mod 10)// geçen sürenin 10a bölümünden kalanı alır ve saliseyi bulur
  10.     lblSure.Caption := Inttostr(sn)+‘.’+Inttostr(ss)// saniye ve saliseyi birleştirerek labela yazar
  11. end;
  12. procedure TForm1.FormCreate(Sender: TObject);
  13. begin
  14.     sure := 0// form oluşturulurken sure değişkenini sıfırlar
  15. end;
  16. procedure TForm1.btnBaslaClick(Sender: TObject);
  17. begin
  18.     tmrZaman.Enabled := true// timer bileşenini aktif hale getirir
  19. end;
  20. procedure TForm1.btnDurdurClick(Sender: TObject);
  21. begin
  22.     tmrZaman.Enabled := false// timer bileşenini pasif hale getirir
  23. end;
  24. procedure TForm1.btnSifirlaClick(Sender: TObject);
  25. begin
  26.     tmrZaman.Enabled := false;  // timer bileşenini durdurur
  27.     sure := 0// süreyi sıfırlar
  28.     lblSure.Caption := ’0′// süreyi labela yazar
  29. end;





Delphi PDF Kitap

ARKADAŞLAR İNTERNETTE BULDUGUM VE HOŞUMA GİDEN BİR DELPHİ 7 PDF KİTABİ SİZE GÖSTERMEK İSTEDİM...ARZU EDENLER AŞAĞIDAN İNDİREBİLİRLER...ÇOK GELİŞMİŞ BİR KAYNAK...DELPHİ İÇİN BİZE ÇOK YARDIMLARI OLACAKTIR..:)

PDF Formatında Delphi 7 Kitabı indirmek için buraya sağ tıklayıp farklı kayıt et'e basınız.

25 Mayıs 2012 Cuma

DELPHİ'DE YAPILAN ÖRNEK UYGULAMALAR


 DELPHİ'DE YAPILAN ÖRNEK UYGULAMALAR


Örnek 1) Formun başlığını değiştirmek ve forma tıklandığında mesaj veren program

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure Mesaj(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Mesaj(Sender: TObject);
begin
showmessage('aaaaaa');
Form1.Caption:=('borland Delphi 7')
end;

end.




Örnek 2) Boolean değişkenini kullanarak ögrencinin inputbox fonksiyonu ile girilen notunun 50'den büyükse geçerli not 50 den küçükse geçerli not değil oldğunu gösteren,ögrencinin aldığı notun 0-100 arası olması gerektiğini gösteren programı yazınız.

procedure TForm1.FormClick(Sender: TObject);
var
sonuc:Boolean;
sinav_sonucu:integer;

begin
sinav_sonucu:=strtoint(inputbox('sınav sonucunu ','lütfen 0-100 arası değer giriniz..',''));
sonuc:=sinav_sonucu>50;
sonuc:=sinav_sonucu<100;
if sonuc=true then
showmessage('alınan sonuç geçerli');
if sonuc=false then
showmessage('alınan sonuç geçerli değil');

if sinav_sonucu>100 then
showmessage('girdiğiniz değer sınav aralığından büyük olduğundan dolayı geçerli değildir..lütfen 0-100 arası değer giriniz..');

end;
end.



Örnek 3)Herhangi bir değişkene 2 farklı değer atadığımızda en son girdiğimiz değeri kaideye alan program.
procedure TForm1.FormClick(Sender: TObject);
var
degisken1:variant;
tip:variant;
begin
degisken1:='dddd';
degisken1:=121;
tip:= vartype(degisken1);
showmessage(tip);
end;
end.
Örnek 4) Tarih ve zaman atamalarını yapan program.

procedure TForm1.FormClick(Sender: TObject);
var
tarih:tdatetime;
zaman:tdatetime;
begin
tarih:=strtodate('25.05.2012');
zaman:=strtodate('22:30');

end;
end.



Örnek 5) ilk 4 karekterden sonrasını silen program.

procedure TForm1.Button1Click(Sender: TObject);
var
sehir:String;
sonuc:String;

begin
sehir:='erzincan';
sonuc:=leftstr(sehir,4);
showmessage(sonuc);

end;

end.

10 Mayıs 2012 Perşembe

Anolog Saat Uygulaması



procedure TForm1.Timer1Timer(Sender: TObject);
begin
Min_Check:=min;
Hour_Check:=hour;
tid:=timetostr(time);
ss:= tid[7] +tid[8];
sek:=strtoint(ss);
m:= tid[4] +tid[5];
min:=strtoint(m);
h:= tid[1] +tid[2];
hour:=strtoint(h);
 
if (min_check <> min) then
Min_Update:=true;
 
if (Hour_Check <> Hour) then
Hour_Update:=true;
form1.Canvas.Pen.Width :=1;
form1.Canvas.pen.Color:=clwhite;
form1.Canvas.LineTo(strtoint(floattostr(oldx)),str toint(floattostr(oldy))) ;
form1.Canvas.LineTo(strtoint(floattostr(midx)),str toint(floattostr(midy))) ;
 
HourX1 := s * Cos((Pi / 180) * (30 * hour - 90)) + MidX;
HourY1 := s * Sin((Pi / 180) * (30 * hour - 90)) + MidY;
 
MinX1 := s * Cos((Pi / 180) * (6 * Min - 90)) + MidX;
MinY1 := s * Sin((Pi / 180) * (6 * Min - 90)) + MidY;
 
X1 := s * Cos((Pi / 180) * (6 * sek - 90)) + MidX;
Y1 := s * Sin((Pi / 180) * (6 * sek - 90)) + MidY ;
x:=int(x1);
y:=int(y1);
OldXMin := XMin ;
OldYMin := YMin ;
XMin:=int(MinX1);
YMin:=int(MinY1);
OldXHour:=XHour;
OldYHour:=YHour;
XHour:=int(HourX1);
YHour:=int(HourY1);
 
form1.Canvas.pen.Color:=clred;
form1.Canvas.Pen.Width :=1;
form1.Canvas.LineTo(strtoint(floattostr(x)),strtoi nt(floattostr(y))) ;
form1.Canvas.LineTo(strtoint(floattostr(midx)),str toint(floattostr(midy))) ;
OldX := X ;
OldY := Y ;
if (Min_Update=true) then
begin
 
form1.Canvas.pen.Color:=clwhite;
form1.Canvas.LineTo(strtoint(floattostr(OldXMin)), strtoint(floattostr(OldYMin))) ;
form1.Canvas.LineTo(strtoint(floattostr(MidX)),str toint(floattostr(MidY))) ;
Min_Update:=false;
end;
 
form1.Canvas.pen.Color:=clblack;
form1.Canvas.LineTo(strtoint(floattostr(XMin)),str toint(floattostr(YMin))) ;
form1.Canvas.LineTo(strtoint(floattostr(MidX)),str toint(floattostr(MidY))) ;
 
if (Hour_Update=true) then
begin
form1.Canvas.Pen.Width :=3;
form1.Canvas.pen.Color:=clwhite;
form1.Canvas.LineTo(strtoint(floattostr(OldXHour)) ,strtoint(floattostr(OldYHour))) ;
form1.Canvas.LineTo(strtoint(floattostr(MidX)),str toint(floattostr(MidY))) ;
Hour_Update:=false;
end;
form1.Canvas.Pen.Width :=3;
form1.Canvas.pen.Color:=clblack;
form1.Canvas.LineTo(strtoint(floattostr(XHour)),st rtoint(floattostr(YHour))) ;
form1.Canvas.LineTo(strtoint(floattostr(MidX)),str toint(floattostr(MidY))) ;
 
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
form1.Width :=200;
form1.Height:=200;
 
 
s := Form1.Width * 0.3;
MidX := 50;
MidY := 50;
form1.Canvas.LineTo(strtoint(floattostr(midx)),str toint(floattostr(midy))) ;
oldx:=midx;
oldy:=midy;
form1.Canvas.Pen.Color :=clblack;
form1.Canvas.Ellipse(0,0,100,100);
form1.Canvas.Pen.Width :=8;
end;
//ekranda sadece akrep yelkoval ve saniye gözükecektir 
//saat ler için ayrı ayrı shape ekleyebilirsiniz
//eğer her saat için bi shape eklemek isterseninz
// formun wiev as tet kısmına bunları yazmanız gerekmektedir
//tabi shapeleri ekledikden sonra
object Shape2: TShape
Left = 48
Top = 0
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape3: TShape
Left = 0
Top = 48
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape4: TShape
Left = 88
Top = 48
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape5: TShape
Left = 25
Top = 4
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape6: TShape
Left = 69
Top = 85
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape7: TShape
Left = 85
Top = 70
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape8: TShape
Left = 48
Top = 88
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape9: TShape
Left = 6
Top = 70
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape10: TShape
Left = 5
Top = 24
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape11: TShape
Left = 69
Top = 4
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape12: TShape
Left = 25
Top = 85
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape13: TShape
Left = 86
Top = 24
Width = 5
Height = 5
Brush.Color = clLime
Shape = stCircle
end
object Shape14: TShape
Left = 48
Top = 48
Width = 5
Height = 5
Brush.Color = clRed
Shape = stCircle
end

3 Boyutlu Küp Örneği


 TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  x,y,x1,y1:integer;
  aci:real;
  p1,p2,p3,p4,p5,p6,p7,p8:tpoint;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
aci:=aci+2*pi/360;
  p1.X:=200;
  p1.Y :=200;
  p2.X :=p1.X +100;
  p2.Y :=p1.Y ;
  p3.X :=p1.X +100;
  p3.Y :=p1.Y +100;
  p4.X :=p1.X ;
  p4.Y :=p1.Y +100;
  p5.X :=p1.X +round(sin(aci)*50);
  p5.Y :=p1.X +round(cos(aci)*50);
  p6.X :=p5.X +100;
  p6.Y :=p5.Y ;
  p7.X :=p5.X +100;
  p7.Y :=p5.Y +100;
  p8.X :=p5.X ;
  p8.Y :=p5.Y+100 ;
  canvas.Pen.Color :=clblack;
  canvas.Pen.Style:=psdot;
  canvas.Pen.Width :=1;
  canvas.MoveTo(p1.X ,p1.y);
  canvas.LineTo(p2.X ,p2.Y);
  canvas.LineTo(p3.X ,p3.Y);
  canvas.LineTo(p4.X ,p4.Y);
  canvas.LineTo(p1.X ,p1.Y);
  canvas.Pen.Style :=pssolid;
  canvas.Pen.Width:=3;
  canvas.LineTo(p5.X ,p5.Y);
  canvas.LineTo(p6.X ,p6.Y);
  canvas.LineTo(p7.X ,p7.Y);
  canvas.LineTo(p8.X ,p8.Y);
  canvas.LineTo(p5.X,p5.Y);
  canvas.MoveTo(p2.X,p2.Y);
  canvas.LineTo(p6.X ,p6.y);
  canvas.MoveTo(p3.X,p3.Y);
  canvas.LineTo(p7.X ,p7.y);
  canvas.MoveTo(p4.X,p4.Y);
  canvas.LineTo(p8.X ,p8.y);
  sleep(1);
  canvas.Pen.Color :=form1.Color;
   canvas.MoveTo(p1.X ,p1.y);
  canvas.LineTo(p2.X ,p2.Y);
  canvas.LineTo(p3.X ,p3.Y);
  canvas.LineTo(p4.X ,p4.Y);
  canvas.LineTo(p1.X ,p1.Y);
  canvas.LineTo(p5.X ,p5.Y);
  canvas.LineTo(p6.X ,p6.Y);
  canvas.LineTo(p7.X ,p7.Y);
  canvas.LineTo(p8.X ,p8.Y);
  canvas.LineTo(p5.X,p5.Y);
  canvas.MoveTo(p2.X,p2.Y);
  canvas.LineTo(p6.X ,p6.y);
  canvas.MoveTo(p3.X,p3.Y);
  canvas.LineTo(p7.X ,p7.y);
  canvas.MoveTo(p4.X,p4.Y);
  canvas.LineTo(p8.X ,p8.y);
end;
end.

13 Nisan 2012 Cuma

HESAP MAKİNESİ UYGULAMASI

Hesap Makinesi Uygulaması

Şimdide hesap tabanlı bir örnek üzerinde çalışacağız.Bu örnek dört işlemi kolaylıkla yapabilecektir.

- Yeni Uygulama Başlatın

File - New - Application menü seçenekleri ile yeni bir proje başlatın.

Bu programımızda; hesaplanan sonuçları görmek için Label , kullanıcının sayıları girebilmesi için edit kutusu ve işlemi yapabilmesi için de button kontrollerini kullanacağız.

- Formun Tasarımını Yapın

Sözü edilen araçları Component paletin Standart sayfasından alarak form tasarımını yapın.

Form üzerindeki Label ve Button bileşenlerin Caption özelliklerini aşağıdaki değiştirin.

                                                                                                                                                                                                    

- Bileşenlerin Özelliklerini DeğiştirinSonuç İçin kullanacağımız Label4 elemanının Name özelliğini değiştirerek lblsonuc yapın.

Form üzerindeki düğmeleri sırasıyla btntopla,btncikar,btncarp ve btnbol olarak değiştirin aynı yöntemle.

- Düğmeler İçin Program Kodunu Yazın

Her bir düğmeyi tıklayarak onlara ait prosedürlere kodları yazabilirsiniz.

Toplama İşlemi İçin Aşağıdaki Kod Kullanılacaktır.


procedure TForm1.btntoplaClick(Sender : TObject); begin //iki sayıyı topla lblsonuc.Caption:=intToStr(StrToint(Edit1.text)+StrToint(Edit2.text)); end; end.
Açıklama : Burada Edit1 ve Edit2 kutularının içerisindeki sayısal olmadığı için önce onları StrToInt fonksiyonu ile sayısala çeviriyoruz.Daha sonra hesaplana sonuç sayısal olmayan (string) lblsonuc etiketi içerisine aktarılacağı için dönüştürme yapyıoruz.Bu iş içinde IntToStr fonksiyonunu kullanıyoruz.Çıkarma işlemi için aşağıdaki kodu kullanacağız.


procedure TForm1.btncikarClick(Sender : TObject); begin //iki sayıyı çıkar lblsonuc.Caption:=intToStr(StrToint(Edit1.text)-StrToint(Edit2.text)); end; end.

Çarpma işlemi için aşağıdaki kodu kullanacağız.


procedure TForm1.btncarpClick(Sender : TObject); begin //iki sayıyı çarp lblsonuc.Caption:=intToStr(StrToint(Edit1.text)*StrToint(Edit2.text)); end; end.

Bölme işemi için aşağıdaki kodu kullancağız.


procedure TForm1.btntoplaClick(Sender : TObject); begin //iki sayıyı Böl lblsonuc.Caption:=FloatToStr(StrToint(Edit1.text)/StrToint(Edit2.text)); end; end.
Bölme işleminde farklı bir durum ortaya çıkmaktadır.Çünkü elde edilecek sonuç ondalık olabileceği için bu defa FloatToStr fonksiyonunu kullanıyoruz