Anasayfa > Lazarus > İlk proje…

İlk proje…


Lazarus ile bir kelime test  programı yapmaya ne dersiniz?

Cevabınız eğer evet ise aşağıdaki örnek sizin için iyi bir başlangıç noktası olacaktır.

Biraz projeyi düşünelim, nelere ihtiyacımız olacaktır.

Bunlar kısaca,

– Kelime Test olduğu için bir miktar İngilizce kelime ve karşılığı olan Türkçe kelime.

– Eldeki kelimelerin hangi şekilde sorulacağı veya hatırlatma yapılacağına dair bir algoritma.

Türkçe – İngilizce kelimeleri iki ayrı dosyada tutalım ve bu sistemde herhangi şu anda bir veri tabanı olmasın.

İlk versiyonumuz şu şekilde çalışsın :

Açıldıktan sonra otomatik olarak minimize edilsin ve kelimeler rastgele olarak tray (tepsi) kısmında bir baloncuk olarak ekranda gözüksün.

kelimator_01

Önce formumuzu tasarlıyalım, dikkat edilirse formda bir adet trayicon componenti ekledik. Lazarus’ta trayicon hazırda geliyor.

 

 

 

 

 

 

 

 

Formun on create kısmında;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TrayIcon1.Show;
  lstWords := TStringList.Create;
  lstWords_tr := TStringList.Create;
  Randomize;
end;

Trayıcon program çalışırken gözüksün. Eğer programı simge haline küçültülürse taskbarda gözükmesin isteniyorsa,

procedure TForm1.FormWindowStateChange(Sender: TObject);
begin
  if Form1.WindowState = wsMinimized then
    begin
      Form1.WindowState := wsNormal;
      form1.Hide;
      Form1.ShowInTaskBar := stNever;
    end;
end;

şeklinde bir kodlamayı WindowState değişiminde yapmamız gerekiyor.

Lazarus burada biraz garip davranıyor kabul ediyorum :S

Button1 click olayında Türkçe ve ingilizce kelimleri yüklüyoruz.

procedure TForm1.Button1Click(Sender: TObject);
begin
  //ListBox1.Items.LoadFromFile('words.txt');
  lstWords.LoadFromFile('words.txt');
  lstWords_tr.LoadFromFile('words_tr.txt');
  lstWords_tr.Text := AnsiToUtf8(lstWords_tr.Text);    //gerekli...
  l := lstWords.Count;
{ TODO : Şimdilik listboxlar kalacaklar.
  Kontrol için
 }
  ListBox1.Items := lstWords;
  ListBox2.Items := lstWords_tr;
  //l := ListBox1.Items.Count;
end;

Şimdi Timer1’in olaylarına bakalım,

procedure TForm1.Timer1Timer(Sender: TObject);
var
  s ,xs: String;
begin
  if lstWords.Count>0 then
    begin
      n := Random(l);
      s := lstWords.Strings[n];
      xs := lstWords_tr.Strings[n];
      TrayIcon1.BalloonHint:= s + chr(13) + chr(13) + xs;
      TrayIcon1.ShowBalloonHint;
    end;
end;

rastgele olarak İngilizce ve Türkçe kelimeleri alıp TrayIcon’un BaloonHint’inde gösteriyoruz.

Form üzerinde bir de popup menu bulunuyor bu menü TrayIcon’a bağlı ve Exit ile Show Main Prog adlı itemlara sahip.

procedure TForm1.MenuItem1Click(Sender: TObject);
begin
  Form1.Show;
end;
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
  Close;
end;

Program şu anda hazır sayılır, gerisi sizin kendi ekleyeceğiniz özelliklere kalmış.

Programı indirmek için  http://mehmetulukaya.4shared.com adresinden kelimator.rar dosyasını indirebilirsiniz.

Kategoriler:Lazarus
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Görüşlerinizi belirtin

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s