Benim Yazılarım. Benim Düşüncelerim.
Icon yükleyebilen bir SpeedButton türevi..
// 15 Mayıs 2009 // 2 Yorum » // Delphi, Grafik, Programlama
Delphi’nin kendi VCL’inde bulunan button sınıflarında Icon yüklenememesine hep kızmışımdır ama garip garip bitmap dosyaları ile hep idare etmiş ve aman sonra yazarım demiştim.Eh geçenlerde bir arkadaşımın da teşvikiyle oturdum yazdım.Sizlerle paylaşayım istedim. Buyrun; kodda anlaşılmayan sormak istediğiniz birşeyler olursa yardımcı olmaya çalışırım.
Devamını Okuyun
Read-Only bir property’nin değerini nasıl değiştiririm ?
// 15 Mayıs 2009 // 3 Yorum » // Delphi, Programlama
Başlıktaki sorunun ne kadar gereksiz olduğunu düşündüğünüzü hisseder gibiyim Kim sadece okuma yapılması için tasarlanmış bir property’nin değerini değiştirmek isteyebilir ki ? Zaten adı üstünde readonly. Ancak kazın ayağı pek de öyle değil. Buyurun okuyalım;
Şimdi size anlatacağım biraz tehlikeli bir duruma sebep olabilir..En azından programların yada tasarladığınız component’lerin sağlıklı çalışması açısından sıkıntılar doğurabilir. Bu açıdan şimdiden dikkatli olmakta fayda olduğu konusunda uyarmak isterim. Diyelim ki bir component tasarladık, component’imizi kullanacak arkadaşlarımız için bazı metodları ve property’leri public yaptık.Ancak değiştirilmesini istemediğimiz çok can alıcı bir özelliği de public kısmında sadece okunabilir yaptık. Ya bu değiştirilebilirse o zaman ne yaparız ? Lafla olmuyor, hemen koda geçelim:
TMyClass = class private fMyString : String; public constructor Create; property ReadOnlyProperty : String read fMyString; end;
Her türlü veritipini kıyaslamak için..
// 15 Mayıs 2009 // 2 Yorum » // Delphi, Programlama
Şimdi veritiplerinin kıyaslanması ile alakalı bir dökümana ne gerek var diye düşünebilirsiniz, haklı da olabilirsiniz Ama ben yine değişik bir yolla nasıl yapıldığını göstermeye çalışacağım.. Ve bu yol çok esnek bir yol olacak. Şimdi sizlerle bir fonksiyon yazacağız, bu fonksiyon; içerisine karşılaştırılacak veritiplerini alacak ve byte byte kıyaslama yapacak.(En sağlam yöntem ) Ardından da sonucu Boolean olarak döndürecek.
Yazmaya başlayalım..
function IsEqual(var Source , Dest ; Size : Integer) : Boolean; type TBytes = array[0..MaxInt-1] of Byte; var N : Integer; begin N := 0; while (N < = Size) and (TBytes(Source)[N] = TBytes(Dest)[N]) do Inc(N); Result := (N = Size); end;
Şimdi bu da nedir demeyin, açıklayalım..
Devamını Okuyun
Record’lar sadece gruplanmış verileri tutmaya mı yarar..!
// 15 Mayıs 2009 // 1 Yorum » // Delphi, Programlama
Uzun zaman önce delphi.zaxaz.com zamanında Sadettin POLAT’ın sitesine yazmış olduğum makalelerimi kendi sitemde de yayınlamak istiyorum. Yeni makalelerime başlamadan evvel malum biraz alıştırma yapmak gerekiyor
Genelde evet ancak Record’lar ile Parse işlemleri de yapılabilir. Şöyle düşünelim kayıt deseni sabit olan bir dosyanız olsun.Örneğin:
Adı Soyadı(14 karakter) + Yasi(2 karakter) + Doğum Tarihi(10 Karakter) olan bir dosya yapısına sahip olduğumuzu düşünelim. Bu gibi bir durumda bu dosya içerisinden verileri okurken Copy fonksiyonu ile istediğimiz alanların başlangıç ve bitiş noktalarını bildiğimiz için verileri elde ederiz. Ama gelin biz bunun için record yapısından istifade edelim.(Tabii burada verileri untyped record olarak save edebilir ve bir record’un içerisine otomatik de okuyabilirsiniz ama ben size daha az bilinen bir yolu göstermeye çalışacağım.)
TBolParcalaYonet = record AdiSoyadi : array[0..13] of Char; Yasi : array[0..01] of Char; DogumTarihi : array[0..09] of Char; end; var myStr : String; myRec : TBolParcalaYonet; begin myStr := 'Tuğrul HELVACI3110.03.1975'; myRec:= TBolParcalaYonet(myStr); ShowMessage(myRec.AdiSoyadi); // Tuğrul HELVACI ShowMessahe(myRec.Yasi); // 31 ShowMessage(myRec.DogumTarihi); // 10.03.1975 end;
Paylaşımın başlangıcı..
// 15 Mayıs 2009 // Yorum Yok » // Genel
Uzan bir zamandır programlama dünyasının içerisinde kâh o site senin kâh bu site benim dolaştım durdum. Pek çok programlama sitesinde paylaşım yapmaya ve bilgim dahilinde yardımcı olmaya gayret ettim. Nasipte kendi sitemiz üzerinden bilgilerimizi de paylaşmak varmış. Allah utandırmasın.