Delphi Programlama I dersinde haftalık proje olarak verilen küçük bir uygulama. Diğer arkadaşlarımın da projeyi yaparken yararlanmasını istediğimden burada paylaşmak istedim. Umarım faydalı olur. :) Uygulamaya Geçelim...
İlk olarak aşağıda görünen nesneleri forma ekleyelim...
Kısaca nesneleri sayacak olursak bir adet Timer, bir adet Kronometre için Label, iki adet Radiobutton, bir adet edit, bir adet Checkbox, iki adet Listbox, bir adet Trackbar ve iki adet Buton ekliyoruz. Groupbox ve diğer Label nesneleri görsellik açısından ekledim. bunları isterseniz ekleyebilirsiniz..
unit Unit1;
interface
{Kullandığımız kütüphaneleri "uses" başlığı altına ekliyoruz. Bunlar standart delphi kütüphaneleri ayrıca bi eklenti yok. }
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls;
{Form üzerinde bulunan nesnelerimiz aşağıda "type" başlığı altında tanımlanmıştır.}
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Timer1: TTimer;
Button2: TButton;
ListBox1: TListBox;
TrackBar1: TTrackBar;
Label2: TLabel;
GroupBox1: TGroupBox;
Edit1: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ListBox2: TListBox;
Label3: TLabel;
Label4: TLabel;
CheckBox1: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure GroupBox1Click(Sender: TObject);
// procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
{Değiken tanımlamaları. "sayi" ve "durdur" değişkenlerini tanımlayalım. "durdur" değişkeni boolean tipte olması gerekir. Çünkü iki farklı durum için kullanacağız.}
var
Form1: TForm1;
sayi: longint;
durdur : boolean = false;
implementation
{$R *.dfm}
// Geri dönüş değeri olduğu için basit bir fonksiyon tanımlayalım.
Function sayac(x : String) : String;
var
a:Integer;
begin
result := x;
{for a := 1 downto Length(x) Do
Result :='0'+Result; }
end;
// İlk butonumuz duruma göre değişecek. "Başla" "Durdur" ve "Devam Et" gibi..
procedure TForm1.Button1Click(Sender: TObject);
begin
if durdur = false then
begin
Button1.Caption := 'Durdur' ;
timer1.Enabled := true ;
durdur := true ;
end else
begin
Button1.Caption := 'Devam et' ;
timer1.Enabled := true ;
durdur := false ;
// Her durdurduğumuzda sayı çift veya tekse ayrı listelere atacak..
if strtoint(label1.Caption) mod 2=0 then begin
listbox1.Items.Add(label1.Caption);
end else
begin
listbox2.Items.Add(label1.Caption);
end;
end ;
end;
{ Kronometremizin saydırma işlemini Timer nesnesi ile yapacağız.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if durdur then
begin
if radiobutton1.Checked=true then begin
sayi:=sayi+strtoint(edit1.Text); // Fonksiyondan dönen sayıyı edit'in içine girdiğimiz değer kadar artırmak için..
end else
begin
inc(sayi) ; // Fonkiyondan dönen sayıyı her defasında 1 artırmak için.. bunun yerine "sayi:=sayi+1;" de kullanabiliriz..
end;
Label1.Caption := sayac(inttostr(sayi)) ;
if sayi = 1000000 then //sayımız 1000000 kadar gitsin..
sayi:=00;
end;
end;
//Bitir butonu.. Burada yapılan işlemler basit. Sadece formu ilk haline getirir..
procedure TForm1.Button2Click(Sender: TObject);
begin
timer1.Enabled:=false;
sayi:=00;
label1.Caption:='00';
button1.Caption:='Başla';
durdur:=false;
edit1.Text:='';
radiobutton1.Checked:=false;
listbox1.Items.Clear;
trackbar1.Position:=0;
radiobutton2.Checked:=false;
listbox2.Items.Clear;
end;
{Trackbar nesnesini Kronometremizin hızı için kullanacağız.. trackbarın pozisyonuna göre Timer nesnesinin Interval olayını değiştiriyoruz.}
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if trackbar1.Position=1 then begin
timer1.Interval:=1000;
end;
if trackbar1.Position=2 then begin
timer1.Interval:=875;
end;
if trackbar1.Position=3 then begin
timer1.Interval:=750;
end;
if trackbar1.Position=4 then begin
timer1.Interval:=625;
end;
if trackbar1.Position=5 then begin
timer1.Interval:=500;
end;
if trackbar1.Position=6 then begin
timer1.Interval:=375;
end;
if trackbar1.Position=7 then begin
timer1.Interval:=250;
end;
if trackbar1.Position=8 then begin
timer1.Interval:=125;
end;
if trackbar1.Position=9 then begin
timer1.Interval:=50;
end;
if trackbar1.Position=10 then begin
timer1.Interval:=20;
end;
end;
// Buradan sonraki işlemlerin herhangi bir bağlayıcılığı yok. Yapmasanız da çalışacaktır.
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked=false then
begin
groupbox1.Enabled:=false;
checkbox1.Caption:='Artırma İşlemlerini Başlat';
radiobutton1.Checked:=false;
radiobutton2.Checked:=true;
end else
begin
groupbox1.Enabled:=true;
checkbox1.Caption:='Artırma İşlemlerini Bitir';
if edit1.Text='' then begin
radiobutton1.Checked:=false;
radiobutton2.Checked:=false;
end else
begin
radiobutton1.Checked:=true;
radiobutton2.Checked:=false;
end;
end;
end;
procedure TForm1.GroupBox1Click(Sender: TObject);
begin
if checkbox1.Checked=false then
begin
groupbox1.Enabled:=false
end else
begin
groupbox1.Enabled:=true;
end;
end;
end.
// Ve uygulamanın son hali...
Kolay gelsin.... :)
1 kişi tarafından 5.0 olarak değerlendirildi
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5