Anahtar kelimeler

Gösterme

    Takvim
    <<  Ocak 2009  >>
    PaSaÇaPeCuCuPa
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678
    info@bahriyilmaz.net , eingetragen am 12. Aralık 2008, 21:13

    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

    İlk makalemde Delphi 8 de DataAdapter ve DataSet konusu ile ilgili bazı gerekli bilgiler ve demo uygulamalar yapacağım. Umarım faydalı bir makale olur.

    DataAdapter : Veri kaynağı ile bu verileri kullanmamızı sağlayan bağsız nesneler arasındaki bir nevi köprüdür. DataAdapterler bilgileri veri deposundan alır ve bağsız DataSetleri bu verilerle doldurur. Aynı zamanda da veri deposuna geri gönderilecek olan değişiklikleri de depolar. DataAdapter 4 yapılandırıcıya sahiptir. Aşağıdaki demo uygulamamızda da bunlardan birini ele alalım.

    Demo Uygulama Olarak Bir DataAdapder Oluşturalım.

    c_cnstr='server=XWING; database=Northwind; Trusted_Connection=Yes';

    c_sel_emp=' SELECT * from Tablo1; {Sql Cümleciği}

     

    var

    sqlDA:SqlDataAdapter;

    SqlCMD:SQLCommand;

    SqlCn:SQLConnection;

    begin

    sqlCn:=SQLConnection.Create(c_cnstr);

    sqlCmd:=SQLCommand.Create(c_sel_emp, sqlConnection);

    sqlDA:=SQLDataAdapter.create;

    sqlDA.SelectCommand:=sqlCmd;

    end.

     

    DataAdapter oluşturduk. Şimdi bu bağlantıyı kullanarak DataSet'in Doldurulmasını inceleyelim. İşte demo uygulamamızın komutları...

    program DataSetDoldur;

     

    uses {Kutuphaneleri cağıralım}

    System.data,

    System.Data.SqlCilent;

    const

    c_cnstr='server=XWING; database=Northwind; Trusted_Connection=Yes';

    c_sel_emp=' SELECT * from Tablo1; select * from tablo2;';

     

    var

    sqlDa:SqlDataAdaper;

    ds:DataSet;

    begin

    sqlDa:=SQLDataAdapter.Create(c_sel_emp, c_cnstr);

    ds:=DataSet.Create;

    sqlDa.Fill(ds);

    end.

    2 kişi tarafından 5.0 olarak değerlendirildi

    • Currently 5/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5