Delphi, etkili ve hızlı sonuç alabileceğiniz nadir geliştirme ortamlarından birisi. Delphi’nin hızlı program geliştirme özelliği, bazen bizlerin müsrif davranmasına yol açabiliyor. Aslında birazdan vereceğim adımlardan bazıları, çoğu programlama dillerinde dikkat etmemiz gereken kurallardan. Uygulamayı dağıtmadan önce hız için dikkat etmemiz gerekenleri 7 adımda toplayıp sizlere sunuyorum.
7 Adımda Delphi Uygulamalarını Daha da Hızlandırın3.308 defa okunmuşDerleyici Tasarım Notları – 13.034 defa okunmuşDerleyici tasarımı, uzun zamandır kendimi geliştirmek için uğraştığım bir konu. Bu konu ile ilgili çok kitaplar ve makaleler okudum ve araştırmalar yaptım. Ama ne yazık ki, bu konuda kendimi ciddi manada ilerleyebilmiş olarak hissetmiyorum. Şimdi ise bu araştırma ve notlarımı burada toplamayı düşünüyorum. Böylece kendimi bu konuda geliştirmeyi ve bununla beraber bu notları sizlerle paylaşmayı düşünüyorum. Bu yazı serisi, önceden yazdığım makaleler gibi tecrübe ve bilgiye dayalı olmayacak. Okuduğum kitap ve makalelerden ve denemelerimden oluşacak. Bu yüzden bu makale serisinin hedeflediği kitle, sadece bu işin meraklılarına hitap ediyor. Derleyici-yorumlayıcı yazmak isteyenlere faydalı bir konu özeti olacağını düşünüyorum. Ayrıca bu işe yeni başlayacak olanlara veya başlamış ama bir sebepten dolayı yarım bırakmış kimselere de bir fihrist, bir yol haritası olacağını düşünüyorum. Tabi bu notları çıkarmakla ben de kendimi bu konuda geliştirmeyi düşünüyorum. Kategori: Derleyici Tasarımı 12 Adet Yorum
C / C++ ‘dan Delphi’ye Kod Çevirme Klavuzu (1)2.214 defa okunmuşÖzellikle işe yarar bir kütüphane bulduğunuz zaman eğer yoksa hemen Delphi sürümlerini araştırırız. Çoğu zaman “Delphi port” ismiyle, kütüphanelerin Delphi versiyonlarına erişebiliriz. Eğer Delphi versiyonlarını bulamazsak, iş başa düşmüş demektir. Kütüphaneler bir çok dilde olabilirler. Fakat genel manada en çok C++ veya C kodlarının adaptasyonu ve çevrilmesi programcıları zorlayabilmektedir. Bu yazımızda C / C++ ve Delphi gramer bilgisi vermek yerine, daha çok C / C++ kodlarını en doğru şekilde Delphi’ye nasıl adapte edebileceğimizi göreceğiz. Yapacağımız işlem sadece bire bir kod çevirisi olmayacak. Yeri geldiğinde hiç bir kod çevirmeden sadece orjinal kütüphaneyi Delphi programımızın içine gömebileceğiz. Eğer siz de, ister derlenmiş olsun, ister açık kaynak kodlu olsun, bir C / C++ kütüphanesini Delphi’ye nasıl çevirebileceğimizi merak ediyorsanız buyurun beraber yazımıza giriş yapalım. Stream’de Uzmanlaşalım… (Bölüm 2)1.784 defa okunmuşGeçen bölümde stream’e giriş yaptık. Ve değişik veri tipleri ile stream üzerindeki okuma ve yazma işlemlerini gördük. Bu bölümde stream kullanımının sadece dosya okumak-yazmak olmadığını da göreceğiz. Ayrıca .net ve vcl.net ortamında stream kullanımından da bahsetmeye çalışacağız. Kategori: Delphi Etiketler: BinaryReader, BinaryWriter, BufferedStream, MemoryStream, stream, StreamReader, StreamWriter, TBlobStream, TFileStream, TMemoryStream, TResourceStream, TStream 1 Adet Yorum
Stream’de Uzmanlaşalım… (Bölüm 1)2.391 defa okunmuşDiyezon’a yazmayalı baya bir süre olmuştu. Neredeyse diyezon, kendi işlerim yüzünden hayalet site olma yolunda ilerliyordu. Bundan önceki son yazımı yaklaşık bir sene önce yayınlamıştım. Her neyse… Stream’ler hakkında bir makale yazmak, yapacaklarım arasındaydı. En son gelen bir istek üzerine stream konusuna el atalım istedim. Bu makale serimizde hem VCL’de bulunan TStream, hem de .NET’de bulunan Stream sınıfları ve kullanımlarından bahsetmeye çalışacağım. Özellikle TStream üzerinde stringlerle uğraşmak gibi bir çok konu programcıların kafasını karıştırabilmektedir. Bu ve bunun gibi sorunların çözümlerine de çareler bulmaya çalışacağız. Kategori: Delphi Etiketler: stream, TBlobStream, TFileStream, TMemoryStream, TResourceStream, TStream 10 Adet Yorum
Delphi ile Thread(Kanal) Kullanımı – Bölüm 27.041 defa okunmuşBu bölümde kanalları nasıl eş zamanlı olarak çalıştırabileceğinizi göreceksiniz. Bunun için kritik bölgeler ve muteksler ile tanışacaksınız. Ayrıca kanal uyumlu olmayan VCL’in, kanallar ile nasıl kullanılabileceğini de göreceksiniz. Bununla beraber kanal kullanımındaki yaşanan bazı problemlere de değinmeye çalışacağız. Özellikle veritabanlarını kanallar ile kullanmada uyulması gereken püf noktalarına da değinmeye çalışacağız. Aslında bu bölüm gerçekten uzun oldu. Normalde VCL kullanımını üçüncü bir bölüme taşımayı düşünüyordum. Ama bu konuda istekler olunca birleştrip yayınlamayı düşüdüm. İçeride sizi iki sayfalık bir makale bekliyor. Bu yüzden sayfa sonunda bitti zannedip kapatmayın! Hazırsanız başlayalım. Delphi ile Thread(Kanal) Kullanımı – Bölüm 16.396 defa okunmuşYaptığımız projelerin bir bölümü eninde sonunda bu konuya dayanıyor. Genelde kanal gerekli olduğu halde Timer ya da Application.ProcessMessages gibi çarelere gitmeye çalışıyoruz Ve devamında hem görsel hem de işleyiş açısından istemediğimiz sonuçlarla karşılaşıyoruz. Halbuki kanalların kullanılması sanıldığı kadar zor değildir. Bu ön yargıyı bu makalede aşmaya çalışacağız. Bu makale, ileri seviye Windows programcılığına geçiş kapısıdır. Bu makeledeki konuları öğrendikten sonra Win32 programcılığının en güçlü özelliklerini öğrenmiş olacaksınız. Yanlız "ileri seviye" tabiri gözünüzü korkutmasın. Çünkü makeleyi bitirdiğinizde thread kullanımının aslında ne kadar kolay olduğunu göreceksiniz. Bununla birlikte bu makalede bu konu ile ilgili her ayrıntıyı anlatabilmemiz için yüzlerce sayfalık kitap yazmamız gereklidir. Bu yüzden burada işin mantığını kapıp, ihtiyacınız oldukça yardım dosyalarına müracaat etmeniz gerekebilir. Kanallar hakkında hiç bir bilginiz olmayabilir. Bu makalede işin temelinden alacağız ve makaleyi bitirdiğinizde kendi programlarınıza kanal ekleyebilecek duruma geleceğinize inanıyorum. Bu makale serisinde kanallar temelden anlatılmakla beraber, ileri seviye kanal kullanımı, VCL bileşenlerinde kanal kullanımı ve Muteksler de ana konularımız arasına girecektir. Enine Boyuna Generics – Bölüm 21.770 defa okunmuşBir önceki bölümde Generics hakkında bazı terminolojiler üzerinde durduk. Ayrıca ilk başta verdiğimiz örnek ile, bir sınıfı veya bir metodu object yaklaşımı ile nasıl genlleştirilebileceğini gördük. Önceki makaleyi okuduktan sonra objcet yaklaşımı ile Generics arasındaki farkı idrak ettiğinize inanıyorum. Ve Generics’in avantajlarını ve kolaylığını anladığınızı düşünüyorum. Bu bölümde Sınırlandırıcıları(Constraints) göstermeye çalışacağız. Hazırsanız buyrun. Enine Boyuna Generics – Bölüm 12.102 defa okunmuşBir iki önceki makalemizde, Delphi gramerine katılan generics ve parametrize tipleri yüzeysel olarak tanıtmıştık. Generics, RAD Studio 2007′ nin çıkması ile artık sadece beta tester’larını değil, tüm Delphi programcılarını ilgilendiren bir konu olmuştur. Gerçi şu an için sadece .NET ortamında kullanabildiğimiz bu özellik bir sonraki sürümde Win32 için de kullanılabilir bir gramer olacaktır. Başlangıç için önceki makalemizi okuyabilir ya da direk buradan başlayabilirsiniz. Zira bu bölümde Generics ile ilgili temel bilgiler vereceğiz. Delphi 7 ile Şimdiki Delphi Sürümleri Arasındaki Farklar2.835 defa okunmuşBildiğiniz gibi VCL, .NET ortamına taşınırken derleyici bazında bir çok değişikliğe ve geliştirmeye gidildi. Bu geliştirmeler, hem Delphi.NET derleyicisini hem bildiğimiz klasik Delphi for Win32 derleyicisini etkiledi. Tabi bu geliştirmeler, en çok biz programcıların işine yaradı. Bu makalemizde bu yeniliklere değinmeye çalışacağız. Bunlardan bir kısmını önceki makalelerimizde ayrıntılı olarak işlemiştik. Burada sadece bu sitede bahsetmediğimiz kısımlar bahsedilecek ve önceden bahsettiklerimize linkler içerecektir. Kategori: Delphi Etiketler: abstract, class helper, class static, Delphi, delphi.net, final metodlar, fonksiyon, for-in, inline, miras, nesne, nested classes, operator overloading, property, record, sealed, strict private, strict protected, sınıf 4 Adet Yorum
Delphi ve Operator Overloading1.905 defa okunmuş"Operator Overloading"(operator aşırı yükleme), Delphi’ye Delphi.NET ile birlikte gelen class helper’lar gibi yeni özelliklerden birisidir. Bu teknik, class helper’lar gibi hem Win32 hem de .NET için kullanabilirsiniz. Delphi’ye, belki de çok uzun zaman önce eklenmesi gereken bu özellik ile, herhangi bir sınıf veya record için toplama(+), çıkarma(-), çarpma(*) gibi operatörlere bazı özel anlamlar yükleyebiliyoruz. C++ programcılarının hiç de yabancı olmadıkları bu teknik ile kendimize özel veri tipleri tanımlayıp, bu tiplerin Integer, string gibi başka tipler ile etkileşimlerinin nasıl sonuç vereceğini belirleyebilirsiniz. Delphi.NET’in Yeni Oyuncağı “Class Helper”1.514 defa okunmuş.Net ortamı için sadece Delphi’de bulunan bir nesne özelliği ile tanışalım bugün, Class Helper(Sınıf Hizmetçisi, Yardımcısı, ya da ne isim verirseniz.). C# kullanıcıları, 2.0 sürümü ile benzer bir tip olan "Partial Type" ile tanıştılar. Ama partial tipler hali hazırda derlenmiş kodlar üzerinde işlem yapamazlar. Ama class helper’lar yapabilirler! Yani derlenmiş bir assembly’ de bulunan bir sınıf üzerine de class helper yazılabilir. Nedir bu Class Helper? Yenilir mi, içilir mi, grameri nasıldır, ne işimize yarayacak? Bütün bu soruların cevaplarını bu kısa makalemizde vermeye çalışacağız. Başka bir bilgisayarda debug yapın!2.029 defa okunmuşUzun uğraşlar vererek hazırladığınız projeniz üzerinde bir çok testler yaptınız, hataları bulup giderdiniz. Ardından programı son kullanıcıya verdiniz. Kullanıcı belli bir süre sonra size telefon açtı ve programın hata verdiğini söyledi. Siz de hatayı nasıl çıkarttığını öğrenip, aynı şeyi kendi bilgisayarınızda denediniz ama ne yazık ki sizin bilgisayarınızda böyle bir hata oluşmadı ve siz kafayı yeme hadlerine yaklaştınız. Bu senaryo hemen hemen çoğu programıcının başına gelebilecek hadiselerden. Ve çok sinir bozucu bir durum. O an herkesin içinden, son kullanıcının bilgisayarına Delphi, C++ Builder, ya da VS’yi kurup programı orada test etmek geçer. Ama bu her zaman için müsait olmayan bir durum. Üstelik kaybolan zaman da cabası. Bu gibi sorunların üstesinden gelebilmek için Remote Debugging denen bir sistem geliştirilmiştir. Kullanıcının bilgisayarına Remote Debugger programı kurulur ve siz kendi bilgisayarınızdan uzaktaki bilgisayara bağlanarak debug işleminizi yaparsınız. Ve hatanın ne olduğunu anlamaya çalışırsınız. Bir çok geliştirme ortamı remote debug işlemine izin vermektedir. Bizim bu yazıda bahsedeceğimiz işlem, Delphi ve C++ Builder için olacak. Bir kaç adımda bu işlemin nasıl yapıldığını öğrenin ve yukarıdaki senaryonun aktörlerinden biri olmayın. Fonksiyon Çağırım Mekanizmaları2.693 defa okunmuşGerek C++ programlamada gerekse Delphi ve diğer programlama dillerinde fonksiyonların stdcall, cdecl, pascal gibi terimler ile tanımlandığını görmüşüzdür. Eğer biraz da merakımız olmuşsa bunların az çok neyi ifade ettiklerini bir yerlerden okumuşuzdur. DLL yazanlar ve başka bir dilde yazılmış bir DLL’i kullanmaya çalışanlar mutlaka bu terimlerden en az biri ile aşina olmuştur. Çünkü DLL yazıp bunu dağıtacağınızda bu terimleri biliyor olmalısınız. Bu makalede bu terimlerin derinlerine ineceğiz ve Delphi inline assembler ile kullanımına örnek vermeye çalışacağız. |
| Sitede bulunan herhangi bir makale, yazı, resim, dosya, vs. ister tamamen olsun, ister bir kısmı değiştirilerek olsun izinsiz olarak yayınlanması, dağıtılması yasaktır. Lütfen herhangi bir süreli veya süresiz yayında kullanmadan önce ilgili yazar ile temasa geçiniz. Blog gibi kişisel sitelerde yazarların ve sitenin ismi korunmak ve belirtilmek şartıyla izinsiz olarak yayınlanabilir. Tüm hakları saklıdır © Diyezon 2005-2009. |

(3 kişi oy kullanmış, ortalama: 5 üzerinden 4,33)