Posted by: sadettinpolat in Uncategorized, bağlantılar, bileşenler, delphi, ipucu, kod ornekleri, programlama, tags: cover flow, flying cow, itunes, opengl
Apple iTunes ile meshur olan bir kullanici arabirimi var. Cover Flow 1 , 2 , 3
Elemanin biri bu efekti Delphi 5 ile gerceklestirip Flying Cow adiyla kaynak kodu ile birlikte internete koymus. Beraberinde bircok dosya formati icinde destegi eksik etmemis. Jpeg , Gif , Png , Pdf ve bircok video dosyasi.
Elemanin kendi sitesi su an Sayfa Bulunamadi hatasi versede su adresteki forumda butun seyler zaten detaylari ile mevcut.
Uygulamanin derlenmis halini ve kaynak kodlarini ise su adresten indirebilirsiniz.
FlyingCow-2007-11-28-pre-release-tests.rar
FlyingCow-sources-2007-11-28.rar
Uygulamayi derlemek icin gerekli olan ucuncu parti bilesenlere ise yine forum sayfasindan ulasabilirsiniz.
Delphinin hali hazirda destekledigi dosya turleri icin ek bir bilesen yuklemeye gerek yok. Sadece OpenGL ile ilgili olan pas dosyasini eklemeniz yeterli olacaktir.
Bu adreste ise ayni ornekten yola cikarak yapilmis baska bir uygulama var. Bu ornekte golge ve transparan ayarlarini manuel yapabiliryosunuz.
Bu habere kisaca eklemek istedigim not ise sudur. Hakkında “öldü , bitti , tarih oldu” denilen Delphi siz ölmeden asla ölmez. Eger gercekten birseyler yapma hevesiniz varsa birakin delphi 2007 yi Delphi 5 bile bircok ihtiyacinizi karsilayacak guce sahiptir flying Cow orneginde oldugu gibi…
No Comments »
Delphi 2007 de ReportMemoryLeaksOnShutdown adli guzel bir global degisken mevcut. Eger bu degiskene True degeri atarsaniz programi sonlandirdiginizda olusan hafiza kayiplarini cok detayli olmasada gorebilirsiniz… Bu degiskenin diger bir yarari VCL icerisindeki sakat kutuphaneleri gormenize yardimci olur. En basitinden Indy i ele alalim. Indy icerisinde yer alan TIDHTTP bilesenini kullanmayan nerdeyse yok gibidir. TIDHTTP bilesenini kullanmak demek uses satirina IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP unitlerinin eklenmesi demektir.
Simdi yeni bir proje olusturalim.
Project–> View Source kismindan dpr dosyamizin kaynak kodunu acalim.
Application.Initialize; satirinin hemen ustune ReportMemoryLeaksOnShutdown :=true; satirini ekleyelim.
begin
ReportMemoryLeaksOnShutdown :=true;
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
Formun uzerine bir adet TIDHTTP bileseni birakalim. F9 ile costuralim. Hicbir islem yapmadan -ki zaten yapacak bir islem yoktur- programi kapatalim. Iste olusan Memory Leak ler karsimizda…

40 byte lik nur topu gibi bir memory leak’imiz oldu
Peki idhttp yi form uzerinden silersek olusan bu hafiza kaybindan kurtulabilir miyiz ?
Hemen deniyoruz.
…
…
Hayir, malesef kayiplar yine karsimizda cunku uses satirinda ki indy ile ilgili olan unitler hala orada.
Uses satirindaki indy ile alakali olan unitleri elimizle silip yeniden derliyoruz. Denememizi yeniden yapiyoruz. Unitlerle birlikte hafiza kaybida yok oluyor…
Gozume carpan diger bir kutuphane IntraWeb. IWVCLBaseControl unitini uses satirina ekler eklemez 508 byte lik bir memory leak sahibi olmus oluyorsunuz….
Memory leak ‘ ler uzerinde daha fazla denetime sahip olmak icin acik kaynak kodlu Denomo yu kullanabilirsiniz…
No Comments »
Daha önce belirtmiş olduğum ve PHP ile yazdığım fonksiyonun Delphi’de yazılmış hali. Kullanmak için TRegexpr modülünü ihtiyacınız var. ( TRegexpr’i buradan indirebilirsiniz )
(more…)
No Comments »
Daha once burada 3-katmanli mimari konusuna ufak bir giris yapmistik. simdi sira bir sonraki adima geldi. Ufak bir ornek gelistirerek olayi biraz daha somut bir hale getirelim.
(more…)
1 Comment »
How to read and write form elements dökümanı delphi’de webbrowser kullanarak form elemanlarıyla uğraşmak (benim uğraşım aynı işi sürekli yapan bir trainer yapmak idi) için birebir bir döküman. Ayrıca TWebBrowser OleObject and Document data da aynı sitede bulunan diğer bir referans döküman.
Kullanmadan önce yapmanız gereken Microsoft HTML Object Library ‘yi projenize eklemek ve MSHTML_TLB dosyasını uses kısmına eklemek.
No Comments »
PNG Delphi Delphi’de PNG işlemleri yapmamızı sağlayan bir modül. Oldukça çok fonksiyon ve prosedüre sahip. Örneğin basitçe TImage alanına bir PNG resmi yüklemek için yapmanız gereken :
procedure xyz;
var
filepng : TPngObject;
begin
...
...
filepng := TPngObject.Create;
filepng.LoadFromFile('C:\resim.png');
JvImage1.Picture.Assign(filepng);
...
...
end;
No Comments »
Bazi programlarin arabirimleri cok ucuk kaciktir. mesela asagidaki resimde gorundugu gibi, mesela http://www.fruityloops.com/ gibi.

tahmin edebileceginiz gibi bunlari vcl’in orjinal tBitmap’i ile gelistirmek oldukca zordur. Bayagi bi modifye etmek, hiz kazandirmak gerekir. daha hizli bir cozum istiyorsaniz DIB Controls bilesenlerini kullanmaniz gerekir. 
Acik kaynak kodlu bu arac ile oldukca hos , degisik , hizli arabirimler gelistirmek mumkun.
Bileseni bu adresten indirebilirsiniz.
ve bu adresten de uygulamali videolarini ya da ornek programlarini indirebilirsiniz.
No Comments »

OTA Nedir ?
Delphi IDE’ni kullandığı ve IDE içinde kullanılan servislere kısaca OTA (Open Tools API) denir. Diğer bir deyişle Delphi IDE için yazılan Plug-in’ler olarak da bilinirler. OTA açıklamaları ve class tanımları ToolsAPI.pas içindedir. Delphi help içerisinde OTA konusunda herhangi bir dokumana rastlanmamaktadır. Daha fazla bilgi için ToolsAPI.pas incelenebilir. Bulunduğu yer, Delphi’yi kurduğunuz klasörün altında BDS\4.0\Source\ToolsAPI\ToolsAPI.pas. (Delphi 2005 için 3.0)
ToolsAPI.pas bakıldığında bazı global değişkenler göze çarpacaktır.
Bunlar:
BorlandIDEServices: IBorlandIDEServices;
SplashScreenServices: IOTASplashScreenServices;
SplashScreenServices: Delphi açılırken global olarak bu değişkeni tanımlar. Bu değişken Delphi açıldığında ilk geçerli olan değişkendir.
yazının devam icin http://yusufcelik.googlepages.com/delphiota
No Comments »
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.
(more…)
6 Comments »
Delphi’de en çok kullanılan bileşenlerden olan DBGrid’de genelde TEXT tipteki alanlar (MEMO) olarak gözükür. Bu sorunu çözmek için yapmanız gereken oldukça basit bir işlem var.
Öncelikle ne tür bir sorgu bileşeni kullanıyorsanız bileşene sağ tıklayıp “Fields Editor” deyin. Karşınıza gelecek olan panele sağ tıklayıp Add Fields deyin. Eklemek istediğiniz Field’ları ekleyin. Daha sonra (MEMO) olarak görünmek yerine belli bir karaktere kadar görünmesini istediğiniz Field’a tıkladıktan sonra Events kısmından OnGetText eventine aşağıdaki gibi bir komut yazın:
procedure TmyForm.MySQLQuery1KOLONADGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
Text := Copy(mySQLQuery1KOLONAD.AsString, 1, 200);
end;
Bu çözüm DBGrid’de (MEMO) yerine MEMO alanın ilk 200 karekterinin görünmesini sağlayacaktır.
No Comments »