Delphimweb delphi sitesine hoş geldiniz...

Ana sayfa Bağlantılar Kaynaklar İpuçları E-Posta
Veritabanı Grafik Object Pascal

Delphimweb.com->İpuçları

Bu sayfada örnek delphi kodları bulunmaktadır. Burada bulunan kodlar sebebiyle sisteminizde oluşabilecek hasarlardan dolayı hiçbir şekilde sorumluluk kabul etmiyoruz. Daha fazla örnek kod için Delphi Türk Sitesine üye olarak KodBank veya Programlarim.com sitesine üye olarak Kod Arşivi programlarını indirerek bakabilirsiniz. Ayrıca belirtilen sitelerden indirilen programları güncelleyerek daha fazla örneğe ulaşabilirsiniz.

  1. Herhangi bir bmp dosyasını ekranda cizdirme:


  2. 1
    2
    3
    4
    5
    6
     
    var resim : Tbitmap;
    Begin
    resim : = Tbitmap.Create;
    resim.LoadFromFile('deneme.bmp');
    canvas.Draw(100, 150, resim);
    ...


  3. Res dosyasından alınan bitmap'ın ekranda çizdirilmesi:

  4. Delphinin Image Editor'ünde bitmap hazırlanarak bitmap1 ismi ile bir res dosyasına kaydedilir

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    implementation
    {$R *.dfm}
    {$R resimler.res}

    ...
    var resim : Tbitmap;
    Begin
    resim : = Tbitmap.Create;
    resim.LoadFromResourceName(HInstance, bitmap1);
    canvas.Draw(100, 150, resim);
    ...


  5. Herhangi bir dosyanın var olup olmadığını kontrol etme:


  6. 1
    2
    3
    4
     
    Function TForm1.DosyaVarmi(const Dosyaadi : String): Boolean;
    Begin
     result : = (fileexists((Dosyaadi));
    End;


  7. Ses kartının olup olmadığını kontrol eden kod:


  8. 1
    2
    3
    4
    5
    6
     
    uses ..., mmsystem;
    ...
    Function TForm1.SesKartiVar: boolean;
    Begin
     result : = ( WaveOutGetNumDevs>0 );
    end;


  9. Wav dosyalarını çalmak için kod:


  10. 1
    2
    3
    4
    5
    6
     
    uses ..., mmsystem;
    ...
    Function TForm1.WavCal(const DosyaAdi : String): Boolean;
    Begin
     result := PlaySound(PChar(DosyaAdi), 0, SND_ASYNC);
    End;


  11. Çalan Wav dosyasını durdurmak için kod:


  12. 1
    2
    3
    4
    5
    6
    7
     
    uses ..., mmsystem;
    ...
    Procedure TForm1.WavDur;
    var buffer: array[0..2] of char;
    Begin
     buffer[0] := #0; PlaySound(Buffer, 0, SND_PURGE);
    End;


  13. Programın çalıştığı dizini bulmak ve o dizindeki bir dosya ile çalışmak:


  14. 1
    2
    3
    4
    5
    6
     
    ...
    var dizin, yol : String;
    dizin : = extractfilepath(application.ExeName);
    { Programın dizini bulundu }
    yol := dizin + 'dosya.txt';
    ...


  15. Windows dizinini bulmak ve o dizinde bir programı çalıştırmak:

  16. 1
    2
    3
    4
    5
    6
    7
     
    var WinDir: array[0..144]of char;
    Begin
     GetWindowsDirectory(WinDir, 144);
     { Windows dizinini Windir değişkene atar }
     WinExec(Pchar(Windir+'\NOTEPAD.EXE '), SW_SHOWNORMAL);
     { Windows dizininde NOTEPAD programı çalıştırılıyor }
     ...


  17. Delphinin To-Do List özelliği:

  18. Delphinin 5. sürümünde eklenen To-Do List diyalogu delphinin kullanışlı özelliklerinden biridir. Programcı, Delphi ile oluşturduğu projesinde yaptığı ve ileride yapacağı işlemlerin listesini tutmak isteyebilir. İşte To-Do List bu ihtiyaç için doğmuştur. To-Do List, projelerde yapılan ve yapılacak işlemlerin listesinin tutulmasını, düzenlenmesini ve .todo dosyasında saklanmasını sağlar.

  19. Delphide kodlar arasında not tutma:

  20. Delphinin kod sayfasında bazen kodlar arasında notlar düşmek gerekebilir. Not yazmak için üç yol vardır:

    1
    2
    3
    4
    5
    6
    7
    8
     
    { Bu iki satırdan oluşan
    bir nottur. }

    (* Bu iki satırdan oluşan
    başka bir nottur. *)

    // Bu ise bir satırlık bir nottur.
    // Bu başka bir satırlık not.


    NOT: Birden fazla satırdan oluşan notların başına $ işareti konulmamalıdır. Bu, delphinin notu derleyici direktifi zannetmesine ve hata vermesine sebep olur. Örneğin {$R *.RES} direktifi gibi

  21. Projelerin .res dosyalarında değişiklik:

  22. Delphi projelerinde proje açık iken projenin .res uzantılı dosyalarında değişiklik yapıldığında veya bu dosyalara yeni bir kaynak eklendiğinde delphi değişiklikleri fark etmeyecektir. Değişikliklerin aktif olması için mevcut proje kapatılıp yeniden açılmalıdır. Ancak bu sayede değişiklikler aktif hale gelecektir.

  23. DelphiX'deki DXTimer yerine TTimer kullanı:

  24. DelphiX ile gelen DXTimer bileşeni oyunlarda zamanlama amacıyla kullanılan gelişmiş bir bileşendir. Bu bileşen aynı zamanda yapılan oyunun saniyedeki çerçeve sayısını da (framerate) ölçmektedir. Bu bileşen gelişmiş özelliklere sahip olmasının yanında işlemciye çok yük bindirerek işlemciyi yormaktadır. Bu yüzden DelphiX kullanılan basit uygulamalarda DXTimer yerine Win32 sayfasındaki TTimer kullanılırsa işlemciye daha az yük binecektir.

  25. DelphiX'de Canvas kullanımı: 

  26. DelphiX ile gelen DXDraw bileşeninin Surface özelliğinin de Canvas özelliği vardır. Delphinin Canvas özelliği ile Delphixde Surfacenin Canvas özelliği aynıdır. Delphide Canvas ile yapılabilen tüm işlemler Delphixde Surface.Canvas ile yapılabilir.

  27. DelphiX'de Canvas kullanırken dikkat edilmeli: 

  28. Delphide Canvas ile yapılabilen tüm işlemler Delphixde Surface.Canvas ile yapılabilir. Delphixde canvas ile işlem yaptıktan sonra aşağıdaki komutlar unutulmamalıdır. Aksi taktirde çizim yapılmayacak, delphi hata verecektir:

    1
    2
     
    dxdraw1.Surface.Canvas.release;
    dxdraw1.Flip;


  29. Delphi IDE parametrelerinden bazıları 

  30. Delphi IDE yi başlatırken çalıştırdığımız delphi32.exe dosyasının birçok komut satırı özelliği vardır. Bu komutlar genellikle ileri seviye kullanıcılara hitap ederler. Bu komutların işimize yarayabilecek olanlardan bazıları şunlardır :

    -ns : Bu parametre ile delphi nin splash screen(açılış resmi) ni göstermesini engeller.
    -np : Bu parametre delphi nin açılışta boş bir proje yaratmasını önler.
    

    Bu parametreler Delphi7'de denenmiştir. Kullanımı, Delphinin kısayoluna sağ tıklanıp Özellikler açılarak Hedef: "C:\Program Files\Borland\Delphi7\Bin\delphi32.exe" -ns -np şeklinde olabilir.

  31. Delphi programlarında komut satırı parametrelerini kullanma: 

  32. Delphi ile yapılan programlarda komut satırı parametrelerini okumak ve kullanmak gerekebilir. Program çalıştırılırken verilen komut satırı parametresi sayısını ParamCount komutu verir. Komut satırı parametrelerinin kendilerine ulaşmak için ise istenilen komut satırı parametresinin numarası ile birlikte Paramstr komut kullanılır. Örneğin ParamStr(1), ParamStr(2) gibi. Paramstr(0) ise çalıştırılan programın yolunu ve ismini verir.

    1
    2
    3
    4
    5
    6
    7
    8
     
    Procedure TForm1.FormCreate(Sender: TObject);
    var i: Integer;
    Begin
     for i := 1 to ParamCount do begin
      if LowerCase(ParamStr(i)) = '/bip' then Beep;
      if LowerCase(ParamStr(i)) = '/kapat' then Application.Terminate;
     End;
    End;


  33. Delphi programları açılırken ekrana çizim yapmak: 

  34. Delphi ile yapılan programlar açılırken ekrana çizim yapılması gerekiyorsa OnShow veya OnCreate gibi olaylar kullanılamaz. Çizim programın oluşturulması bittikten sonra yapılmalıdır. Aşağıdaki kod ile bir Timer nesnesi oluşturularak bu nesnenin programın girişinde bir kez çalıştırılması sağlanmaktadır. Ekranda yapılmak istenen çizim işlemleri bu Timer nesnesinin OnInterval olayının gösterdiği fonksiyonun içerisinde tanımlanmaktadır. Çizim bittikten sonra Timer nesnesi silinmektedir.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    var
     Form1: TForm1;
     Tmr: TTimer;

    implementation

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    Begin
     Tmr := TTimer.Create(Self);
     Tmr.Interval := 1;
     Tmr.OnTimer := Timer1Timer;
    End;

    procedure TForm1.Timer1Timer(Sender: TObject);
    Begin
     form1.Canvas.Rectangle(8, 5, 129, 46);
     form1.Canvas.MoveTo(20, 60);
     form1.Canvas.LineTo(120, 90);
     tmr.Enabled:= false;
     tmr.Free;
    End;


  35. Delphinin TTimer bileşeninin Interval özelliği: 

  36. Delphide TTimer bileşeni belli sürelerle yapılması gereken işler için biçilmiş kaftandır. TTimer'ın süresi Interval özelliği ile ayarlanır. Interval 1 ms ile 1000 ms (1 Sn) arasında değer alabilir. Fakat Interval'a 0 değeri verilirse -bu geçerli bir değerdir- bu TTimer'ın hiç çalışmamasına sebep olur. Buna dikkat edilmelidir.

    TTimer'ın sadece bir sefer çalıştırılması isteniyorsa OnInterval olayının gösterdiği fonksiyonun son satırında TTimer'ın Enabled özelliği false yapılmalıdır.

  37. Delphide resimlerin arka plan renklerini saydam yapmak: 

  38. Delphide resimlerin (Image) üzerinde bulunan herhangi bir renk kolayca saydam yapılabilir. Böylece bir resim diğer resmin üzerine yerleştirildiğinde görülen dörtgen şekilden ve gereksiz renklerden kurtulunmuş olur. Bunu için aşağıdaki gibi basit bir kod yeterlidir. Bu kodda resim üzerindeki siyah renkler saydam olacaktır. Başka renk değerleri de kullanılabilir.

    1
    2
    3
     
    resim := Tbitmap.Create;
    resim.Transparent := true;
    resim.TransparentColor := clblack;


  39. Paradox tablosunda Türkçe kod sayfası: Yeni 

  40. Bir Paradox tablosu tanımlarken "Language Settings" seçeneğinde ANSI gelir. Standart olarak tablonun dili ingilizceye uygun kod sayfasıdır. Eğer Türkçe bir kod sayfası kullanmak istiyorsanız.Aşağıdakilerden birini kullanabilirsiniz.

    Base Trk cp857

    Paradox Turk

    Pdox ANSI Turkish


  41. Windows 7 üzerinde Delphi 7 Yeni 

  42. Windows 7 üstüne Delphi 7 kurup çalıştırmak istediğinizde "Unable to rename 'C:\Program Files\Borland\Delphi7\Bin\delphi32.$$$' to 'C:\Program Files\Borland\Delphi7\Bin\delphi32.dro'" hatası ile karşılaşabilirsiniz. Düzeltme ve problemsiz çalıştırma için 'C:\Program Files\Borland\Delphi7\Bin' klasörüne sağ tıklayarak Özellikler sonra Güvenlik sekmesi seçilir. Listeden 'Administrators...' seçilir ve 'Düzenle' tuşuna tıklayarak gelen diyalogdan Tam denetimin karşısında 'İzin ver' kutusu seçilerek 'Uygula' tuşuna tıklanır. Pencereler 'Tamam' tuşuna tıklayarak kapatılır. Delphi 7 problemsiz çalışacaktır.

    Özellikler ve İzinler


    Windows 7 üzerinde Delphi 7'de bileşen kurma veya diğer işlemleri yaparken yukarıdakine benzer bir hata ile karşılaşılırsa Delphi kapatıldıktan sonra kısayoluna sağ tıklayarak "Yönetici olarak çalıştır" seçeneği ile çalıştırılmalı ve işlem baştan yapılmalıdır.

  43. Delphi 7 programlarında Windows 7 ve Vista XPManifest hatası: Yeni 

  44. Bilindiği gibi XPManifest bileşeni Delphinin Win32 sayfasında bulunan, yapılan programın bileşenlerinin Windows XP stilinde görüntülenmesini sağlayan bir bileşendir. Windows Xp altında hatasız çalışan bu bileşen Windows 7 ve Vista altında problem çıkarmaktadır. "Alt" tuşuna basıldığında yapılan program ekranında bileşenlerin bazıları ekrandan kaybolmaktadır. Bu problemin çözümü programdaki XPManifest bileşeninin silinmesidir. Aynı zamanda "uses" kısmındaki "XPMan" yazısıda silinmelidir. Bileşenlerdeki XP görünümü kaybolacak fakat bileşenlerin kaybolması sorunu ortadan kalkacaktır.

    Delphi 7'de problemsiz XPManifest kullanımı için diğer bir yöntem ise standart sayfasındaki bileşenler yerine aynı işi yapan ücretsiz bileşenler internetten indirilip, kurulup kullanılmasıdır.

    Bu sorun sadece Delphi 7'de vardır. Rad Studio 2010 gibi Windows 7 altında çalışmak için tasarlanmış Delphi sürümlerinde bu sorun yoktur. Zaten bu sürümlerde XPManifest bileşenine de gerek yoktur. Bu bileşen yerine "Project Options" seçeneği ile açılan Proje seçenekleri diyalogunun "Application" sekmesindeki "Enable runtime themes" kutusunun işaretlenmesi yeterlidir.

    Project options

Devam edecek...

Veritabanı Grafik Object Pascal


Ana sayfa Bağlantılar Kaynaklar İpuçları E-Posta