Com teknolojisinden bagimsiz bir datasnap mimarisi delphi 2009 ile birlikte karsimiza cikiyor. Kullanimi oldukca basit olan bu yeni mimari ile 3-katmanli uygulama gelistirmek cok daha kolay olacak.
Tiburon ile yaptigim ufak bir demoyu buraya tiklayarak online olarak izleyebilir ya da buraya tiklayarak videoyu bilgisayariniza indirebilirsiniz. Videodaki projenin kaynak kodlari ise kisa bir sure sonra burada..
No Comments »
Generic nedir ne ise yarar ?
Delphi Highlander surumu ile Delphi for .Net* icin dile eklenen Generic ozelligi artik Win32 icinde mevcut.
Genericler kisaca bazi durumlarda fazladan kod yazmamizin onune gecip bakimi , gelistirmesi daha kolay olan kodlar yazmamiza olanak sagliyorlar. Ornek vermek gerekirse hem integer hem de string veri tipinde elemanlar saklamak istediginiz bir listeye ihtiyaciniz olsun. Genericler olmadan bu isi kotarabilmenizin elbet degisik bir kac yolu mevcut. Mesela listeye eleman eklediginiz metodun hem integer tipindeki verileri kabul eden hem de string tipindeki verileri kabul eden iki farkli metodunu tanimlar ve bunlari da overload olarak isaretlerseniz hedefinize ulasmis olursunuz ya da tip cevrimleriyle ugrasmak istemiyorsaniz ayri ayri siniflar tanimlayarak siniflardan birinde integer veri tiplerini digerinde ise string veri tiplerini saklayabilirsiniz. Iste genericler bu tur durumlarda bizi taklalar atmaktan kurtarip bizim yerimize compilerin takla atmasini sagliyor. Sakladiklari veri tipleri haricinde hicbir farkliligi mevcut olmayan bu iki sinifi ayri ayri tanimlamak biz programcilar icin bosuna zaman kaybina neden oluyor. Genericler ise bu zaman kaybinin onune geciyor. Nasil ki prosedur ve fonksiyonlara duruma gore degisik parametreler degisik sonuclar elde ediyorsak genericler ile birlikte artik sinif tanimlarina da bazi parametreler ekleyip tek bir sinif tanimini farkli veri tipleriyle kullanmamiz artik mumkun.
basit bir ornek vermek gerekirse hem integer tipi ile hem de string veri tipi ile (aslinda butun tiplerle ) uyumlu calisabilecek bir sinif tanimlayalim.
TGenericSinifim<T> = Class
private
FEleman: T;
procedure SetEleman(const Value: T);
protected
public
property Eleman:T read FEleman write SetEleman;
End;
...
...
procedure TGenericSinifim<T>.SetEleman(const Value: T);
begin
FEleman := Value;
end;
sinifimizi tanimladik simdi de nasil kullanacagimizi gorelim.
Read the rest of this entry »
No Comments »
class function MethodAddress(const Name: string): Pointer; overload;
function FieldAddress(const Name: string): Pointer; overload;
class function UnitName: string;
function Equals(Obj: TObject): Boolean; virtual;
function GetHashCode: Integer; virtual;
function ToString: string; virtual;
Bunlardan ilk ikisi olan MethodAddress ve FieldAddress zaten eski delphi surumlerinde de mevcuttu. Delphi 2009 da sadece unicode degisikliginden dolayi String tipinde parametre alan yeni surumleride ilave edilmis o kadar.
Diger dort metod ise Vcl.net uyumlulugu icin eklenmis. Zira ToString metodunun yaptigi tek sey Classname degerini geri dondurmek.
function TObject.ToString: string;
begin
Result := ClassName;
end;
GetHashCode ve Equals metodlari ise system unitinde su sekilde tanimlanmislar.
Read the rest of this entry »
No Comments »
iste ilk tiborun uygulamamiz karsinizda 
bilesen isimlerinden metod isimlerine kadar herşey artık unicode…
Artik butonlara ya da diger nesnelere isim verirken tirsmadan ı,ü,ğ,ş,ç,ö gibi karakterleri kullanabilirsiniz. Biraz fantezik bir kisiyseniz 尔福 gibi harfleri de kullanabilirsiniz Tabi biz yine geriye uyumluluk ve free pascal gibi diger pascal derleyicilerle herhangi bir sorun yasamamaniz icin string ifadeler haricinde cok gerekli olmadigi surece ingilizce karakterleri kullanmanizi tavsiye ediyoruz
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, CategoryButtons, ScreenTips, RibbonActnCtrls,
ToolWin, ActnMan, ActnCtrls, Ribbon,shellapi;
type
TForm1 = class(TForm)
TürkçeDüğme: TButton; // turkce karakterleri artik
// bilesen isimlerinde de kullanabilirsiniz.
Memo1: TMemo;
delphipeak: TButton;
procedure TürkçeDüğmeClick(Sender: TObject);
procedure delphipeakClick(Sender: TObject);
private
{ Private declarations }
public
procedure 德尔福高峰(); // hatta prosedur ve fonksiyonlara
// cince isim bile verebilirsiniz.
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.德尔福高峰;
begin
//德尔福高峰 -->delphipeak
ShellExecute(0,'open','http://tr.delphipeak.com',nil,nil,0);
end;
procedure TForm1.delphipeakClick(Sender: TObject);
begin
德尔福高峰;
end;
procedure TForm1.TürkçeDüğmeClick(Sender: TObject);
begin
memo1.Lines.Clear;
memo1.Lines.Add('دلفي (arapca delphi)');
memo1.Lines.Add('德尔福 (cince delphi)');
memo1.Lines.Add('Δελφοί (yunanca delphi)');
memo1.Lines.Add('डेल्फी (hinduca delphi)');
memo1.Lines.Add('デルファイ (japonca delphi)');
memo1.Lines.Add('Делфи (rusca delphi)');
end;
end.
1 Comment »
David amca Tiburón’a yeni eklenen ve gelistirilen vcl bilesenlerinin kullanimini , ozelliklerini gosterdigi videoya bu adresten ulasabilirsiniz.
Bloglardan takip edebildigim kadariyla Tiburon ile ilgili yazilan yazilarda unicodeden cok dile yeni eklenen Anonymous Methodlar tartisiliyor. Ismi gibi kendisininde tam olarak ne oldugu belirsiz Genelde herkesin sordugu soru nedir bu Anonymous Methodlar ve kod yazarken bize ne gibi faydalari olacak ?
Anonymous Methodlar bizlere daha onceden yapamadigimiz bir takim ozellikleri sunan ozel bir tip vs degil. Sadece codegear in ileriye yonelik olarak dile ekledigi biir ozellik. Gelecek surumlerde Linq for Delphi , Paralel programlama hatta cross platform ozelliklerinin kolay bir sekilde hayata gecirilebilmesi icin eklenen bir ozellik gibi duruyor daha cok.
videoda ilgimi ceken husus ise TEdit bileseninin PasswordChar ozelliginin gosterilmesi. Bu ozellik uzun suredir TEdit te olan bir ozellik zaten. Bu videoda bu ozelligi neden gostermisler bir anlam veremedim dogrusu.
3 Comments »
Bloglardan takip edebildigim kadariyla yakin bir zamanda cikacak olan Delphi 2009 (Tiburón) hakkinda ki bazi fikirlerimi paylasmak istedim sizinle.
1- Unicode destegi.
Artik Delphi 2009 ‘un idesi, vcli , compileri herseyi artik unicode destekli. Hatta delphi urun yoneticisi bu durumu vurgulamak icin Unicodified tabirini kullanmayi uygun gormus. Veritabani baglantilari , bilesen isimleri , temel string tipi , mesajlar falan hersey artik unicode. Unicode destegi sizin icin gerekli ya da gereksiz olabilir ama eninde sonunda kacinilmazdi ve delphi 2009 ile bu destek karsimiza cikti. Simdi bundan sonra neler olabilir , ne gibi durumlarla karsilasabiliriz soyle bir liste yapmaya calisalim.
- Delphi 2009 ile yaptiginiz uygulamalar artik win98 lerde calismayacak. Geriye uyumluluk adina bircok seyden vazgececegiz. Aslinda bu konudan cok emin degilim ama unicode degisikliginin compiler seviyesinde yapildigini dusunursek % 99 ihtimal win98 lere artik elveda diyebiliriz.
- Artik cince sitelerde gordugumuz kodlari anlamamiz ve modifiye edip kendi projemizde kullanmamiz cok daha zor olacak. Eskiden string degerler haric geriye kalan ifadeler ingilizce oldugundan kodlari okuyup anlamamiz daha kolay oluyordu. Simdi cinliler herseyi unicode var diye kendi harflerinde yazarlarsa isler arap sacina donecek
- Unicode yillardir alistigimiz ansii karakter setinden cok farkli. Uzun yillardir unicode destegine sahip dillerde bile bircok kisi hala bu karakterlerin duzgun bir sekilde saklanmasi ve gosterilmesi ile ilgili problemler yasarken bu problemleri bizlerinde yasamasi kacinilmaz. Alismak biraz zaman alacak ve bu arada epey bir sac bas yolabilirsiniz.
- Unicode benim cok ihtiyac duydugum bir sey degildi acikcasi ve bu nedenle Tiburon kullanmak su an icin bana biraz luks kaciyor. Hayatimda unicode destegine ihtiyac duydugum sadece bir tane proje gelistirdim onda da TNT nin unicode destekli bilesenleri isimi fazlasiyla gormustu. O nedenle su an icin delphi 2007 ile yoluma devam etmek bana daha cazip gibi gorunuyor lakin urunu canli canli minciklamadan kesin birsey soylemek istemiyorum.
- Temel String sinifi artik unicode bir string tipi oldugundan eski kodlarinizi Tiburon da derlediginizde bazi garipliklerle karsilazmaniz muhtemel olacaktir.
Listbox1.Items.LoadFromFile(’c:\temp\MyListBoxItems.txt’,TEncoding.UTF8)
tarzindaki kodlarinizin duzgun dosya formatlari ile duzgun calisabilmesi icin artik parametre olarak sonuna hangi karakter turuyle islem yapmak istediginizi belirtmeniz gerekebilir.
- unutmayin! SizeOf(Char) artik geriye 1 degil 2 degerini donderecek. string = UnicodeString , PChar = PWideChar
2- Object Pascal’a eklenen yeni ozellikler
- Win32 icin Generics metodlar. Generics metodlar hakkinda bilgi icin bkz:1 , bkz:2
- Anonymous Methodlar. Bu metodlarin tam olarak nerde nasil ne ise yarayacagini anlayabilmis degilim. Bizim procedur ve functionlarin icinde kullandigimiz embed metodlara benziyor ama bloglarda verilen orneklerde tam olarak varolus nedenini cikartabilmis degilim. bkz:3
3- Yeni datasnap mimarisi
Acikcasi Tiburonda Datasnap ile ilgili iyilestirmelerin yapilacagi yol haritasinda soyleniyordu ama bu iyilestirmeden oteye gecmis ve karsimiza JSON/RPC tabanli yepyeni bir mimari getirmisler. Unicode olmasa da bu yeni Datasnap mimarisini kullanmak icin bilgisayarima Tiburon kurabilirim. Datasnap artik cok gicik oldugum ve kullanmayi bi turlu sevemedigim COM/DCOM bagimliligindan tamamen kurtulmus. Artik sunucuyu register etmek gibi dertlerimiz olmayacak ve eminim bu yeni mimari cok daha kolay kullanilabilir , basit , sade ama cok guclu olacak. Yeni datasnap mimarisi DBExpress ile icice tasarlarmis. Birbirleriyle iletisimleri ust duzeyde ve datasnap kullanirken dbexpress kullanmak olmazsa olmazlardan olacak gibi duruyor. Bu iki nokta aklima su dusunceyi getiriyor benim. DBExpress zaten yuzde yuz object pascal ile yazilmis bir framework ve platform bagimsiz sayilir. Datasnap COM/DCOM ve midas.dll ortamlarina bagimliydi. Tiburon ile bu bagimliligi kaldirmislar. Yani ileriki bir zamanda CodeGear Delphiyi cross platform yapmak icin onunde bulunan buyuk bir engelden kendini kurtarmis oldu. Bilmem anlatabildim mi ?
Bu kismin eksik kalan tek yanina hala Firebird icin dogal dbexpress surucusunun kutudan cikmiyor olmasini ekleyebiliriz.
bkz:1
bkz:2
4- Com ve ActiveX mimarisinin yenilenmesi
Bu yenilenme tam olarak neleri iceriyor cok net bilgim yok ama en azindan bloglarda yer alan resimlerde Import ActiveX gibi islevler yenilenmis ve biraz daha gelistirilmis.
5- ideye eklenen yeni ozellikler
Component palete bir tane edit ekleyerek daha onceden yaptigimiz bilesen aramasini biraz daha anlasilir ve mantikli bir hale getirmisler. Islev olarak ideye yeni bir ozellik getirmesede Delphi 2007 de o ozelligi kullandikca aklima hep Git dugmesi olmayan internet explorer surumleri geliyordu. Acmak istedikleri siteyi adres cubuguna yazdiktan sonra Entera basmak gerektigini bilmeyen bircok kullanici site acilacak diye dakikalarca beklemislerdi. 

6- VCL e eklenen yeni bilesenler…
Bana gore Cagetory Panel haricindeki diger bilesenlerin “dostlar alisveriste gorsun” mantigiyla VCL e eklendigini dusundugum gereksiz bilesenler toplulugu.
bkz1
Sonuc olarak delphi 2007 ve daha onceki versiyonlar ile gelistirmis oldugunuz bir proje icin getirmis oldugu cok ahim sahim bir ozellik delphi 2009 da mevcut degil. Ancak yeni bir proje baslarken Unicode destegini de yaniniza almak ve windows 2000 den öncesine elveda demek isterseniz ya da yeni yaptiklari Datasnap nasil birseymis diye merak ederseniz mutlaka edinmeniz gereken bir surum olmus. Onun haricinde Delphi 2007 ile yola devam etmeniz halinde kacirmis olacaginiz pek fazla birsey mevcut degil delphi 2009 versiyonunda. Hatta bana kalirsa eski projelerinizi baliklama delphi 2009 gecirirseniz unicode ayagina basiniz cok agriyabilir. Bir zamanlar Delphi 3 ten Delphi 4 e gecerken real tipinde yapilan degisikligin zamaninda bizi ne kadar ugrastirdigini bilenler ne demek istedigimi cok iyi anlayacaktir 
1 Comment »
Bizler 258 kişiyle Tez-koop-iş sendikasına üye IBM Türk çalışanlarıyız.
Sendikamız, toplu sözleşme yapma hakkımızı almak için 26 Mart 2008 tarihinde Çalışma Bakanlığına yetki başvurusunda bulundu.
Çalışma Bakanlığı 209 IBM Türkiye çalışanının(26 mart tarihindeki üye sayımız), Noter kanalı ile yapmış olduğu üyelik başvuru bilgilerini doğruladı, onayladı ve 11 haziran 2008 tarihinde IBM’i bilgilendirdi.
Ancak, IBM yönetimi Toplu sozlesme ve grev yapma hakkımızı geciktirmek için 17 Haziran 2008 tarihinde “Gerceğe aykırı ve uydurma gerekçelerle itirazda bulundu.
Sendikal örgütlenmemizi engellemek ve toplu sözleşme yapma hakkımızı geciktirmek için çalışanların isteğini hiçe sayan IBM Türk yönetiminin bu davranışını Türk halkına şikayet ediyor, kınıyor ve protesto ediyoruz.
Bilişim sektöründe ilki gerçekleştirmek, örnek oluşturmak ve örgütlenmeyi ülke geneline yaymak için lütfen bizleri destekleleyin.
İlginiz ve yazacağınız destek mesajlarınız için şimdiden teşekkür ederiz. Saygılarımızla.
bilisimsendikasi.org
No Comments »
2005 ortalarinda o zamanlar hala bir borland calisani olan Danny Thorpe Delphi 2005 icin Delphi for .NET Compact Frameworks Technology Preview yayinlamisti. Adam Borlanddan ayrildi microsofta gecti , ordan ayrildi google ordan ayrildi tekrar microsofta geçti falan filan feşmekan olaylari cereyan ederken bizde “oh ne guzel , previewi cikti bir sonraki surumde (Delphi 2006) tasarim destegiyle beraber resmi olarak gelir” diye beklerken aradan gecti koca bir uc yil ortada ne Compacti var ne frameworku ne de tasarim destegi. Sadece gecen gun yayinlanan RAD Studio ile CF uygulamasi olusturmak adinda ufacik bir makale. Sanirim CodeGear 2008 de oldugumuzu unuttu ya da 2005 yilinda yayinlanan Compact Frameworks Technology Preview in kaynak kodlarini Danny giderken yaninda goturdu ve CodeGear yeniden basa dondu. Marco (ki kendisine kitap hadisesinden dolayi hala gicigimdir :)) bile Highlander surumunun bu destekle cikacagini saniyordu ama beklentileri suya dustu. Birakin delphi 2006 yi mevcut yol haritasina gore Delphinin 2009 Haziranda cikmasi dusunulen Commodore surumunde bile bu destek mevcut olmayacak.
Bazen burdan CodeGear’a kizinca ise yariyor Bir kez daha kizalimda cocun oyuncagina cevirdigi bu compact framework destegini belki o zaman adam akilli bir guncelleme cikarirda Tiburon - Commodore arasinda bir yere sikistiriverir. Bu sefer farkli olarak kizma islemini ben degil bu islerde oldukca basarili olan Engin Jurnal yapsin 
Hamdi !
Hamdi !
Bagla bana su Nicki , uste al Nicki , baglandin mi ?
Asagiya da tombis David i bagla. Bi firca kayayim ben bunlara. Yeter cok uzattilar bu compact framework olayini. Baglandin mi ? Tamam hamdi sen cekil kenara…
Nick ! Nick ! Ne yapiyorsun sen allah askina ! Hepten isi gucu bosverdin newslerde bloglarda takilir oldun. Bi suru insan sizi bekliyor sen blogunda delphi ile gelistirilmis uygulamalarin listesini cikartiyorsun. birak onlari baskasi yapsin sen isine bak. Valla tepemin tasini attirma burdan sana bi korum Vick Vick ote ote eve gidersin.
Al hamdi bunu burdan , al gozum gormesin…
David ! David ! Titre ve kendine gel, eskiden boyle miydin sen ya. Seni abisi diye biraktim ben onlarin basina. Agirligini koy biraz, epey agirsin ama olsun onlara birsey olmaz. Ezilsinler biraz , Hadi kapat kapat. Dinleyemem simdi ben seni. Cabuk bi suru is bekliyor sizi, laf sirasi degil is sirasi.
Hamdi al bu Davidide burdan. Al ! Al ! Gozum gormesin. Gordukce istahim aciliyor.
Evet sevgili seyirciler , sirada ki haberimize geciyoruz.
Gun gecmiyor ki ulkemizde bir gariplik yasanmasin…….
1 Comment »
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 »
Gun icerisinde en cok kullandiginiz projeleri Rad Studio ve Delphi 2007 de Welcome Page sayfasinda yer alan Your Favorite Projects kismina ekleyerek zaman kaybetmeden acabilirsiniz. Tabi once biraz zaman kaybedip projelerinizi Your Favorite Projects bolumune nasil ekleyebileceginizi arayip bulmaniz gerekiyor. Gercektende CodeGear firmasi ide ye bu ozelligi eklerken “acaba nasil bir yol izlersek kullanicilar bunu bulamazlar” diye dusunmus olmali. Daha onceden bu ozelligi arayip bulmama ragmen iki hafta sonra yeni bir projeyi buraya eklemek istedigimde fareyi parcalamak uzereydim Your Favorite Projects bolumune daha once eklemis oldugum bir proje olmasa bu ozellik henuz eklenmemis diyip aramaktan vazgececektim ama daha once yaptigim bir isi simdi yapamamak gercekten cok sinir bozucu bir durum. En azindan nasil yapildigini burda yazarak hem ilerde kendi ruh sagligimi korumus olurum hem de bu ozelligi kullanmak isteyen arkadaslara yol gostermis olurum.
Welcome Page ‘in sol tarafinda Show Recent Projects adli bir link var. Bu linke tiklayin. En son calistiginiz projeler sag tarafta listelenecektir. Her projenin yaninda yer alan (Make me a Favorite) linkine tiklayarak projeyi favorilerinize ekleyebilirsiniz..
No Comments »
|