> Tags > Delphi

Post about "Delphi"

7 Adımda Delphi Uygulamalarını Daha da Hızlandırın

24 Şubat 2009 Category :Delphi 12

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.

» Continue Reading

14.739 defa okunmuş , ,

Delphi ile Thread(Kanal) Kullanımı – Bölüm 2

06 Ekim 2007 Category :Delphi 22

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.

» Continue Reading

31.317 defa okunmuş , , ,

Delphi ile Thread(Kanal) Kullanımı – Bölüm 1

02 Ekim 2007 Category :Delphi 31

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.

» Continue Reading

32.702 defa okunmuş ,

Enine Boyuna Generics – Bölüm 2

23 Eylül 2007 Category :Delphi 1

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.

» Continue Reading

8.383 defa okunmuş , , , , ,

Enine Boyuna Generics – Bölüm 1

18 Eylül 2007 Category :Delphi 1

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.

» Continue Reading

4.697 defa okunmuş , , , , ,

Delphi 7 ile Şimdiki Delphi Sürümleri Arasındaki Farklar

14 Ağustos 2007 Category :Delphi 5

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.

» Continue Reading

7.104 defa okunmuş , , , , , , , , , , , , , , , , , ,

Delphi ve Operator Overloading

06 Ağustos 2007 Category :Delphi 3

"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.

» Continue Reading

8.303 defa okunmuş , , , ,

Başka bir bilgisayarda debug yapın!

30 Temmuz 2007 Category :Delphi 2

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.

» Continue Reading

5.237 defa okunmuş , ,

Delphi programcıları, Generics ile tanışıyor…

25 Temmuz 2007 Category :Delphi 3

Şu an betası test edilen Highlander sürümünde göreceğimiz generic tipler, aslında c++ programcılarına pek de yabancı olmayan bir terim. .Net 2.0 ile birlikte, managed kodlar generics ile tanıştı. Haliyle Delphi de, highlander sürümü ile birlikte .net 2.0’ı ve generics’i destekliyor. Ama IDE ve kod editörü tam manasıyla generics’e destek vermeyecek. Ama derleyici olarak generics’in tüm özelliklerinden faydalanabileceğiz. Özellikle generics için refactoring bulunmayacak. Ayrıca help insight ‘da da generic tipler "<>" şeklinde görünecek. Ayrıca editor, generic tipleri generic tip olarak nitelememekte. Generic tipi ayrı bir sınıf olarak almakta. Her neyse bu gibi sorunlar bir update ile ya da 2008’in ilk çeyreğinde çıkması beklenen Tiburon sürümünde halledilecektir. Önemli olan generic tipleri derleyici bazında tam olarak kullanabileceğimiz.

Bütün bunları geçelim ve generic tiplere yabancı olanlar için bir kaç küçük örnek verelim.

» Continue Reading

5.577 defa okunmuş , , , , , ,

Delphi ve C++ Builder ile Assembler

20 Haziran 2007 Category :Assembler| Delphi 11

Bu makalede, başlangıç düzeyi için, Borland Inline Assembler(Basm) kullanımını göstermeye çalışacağız. Basm kullanarak Delphi’de ve C++ builderda assembler kullanarak, kodlarınızı daha da hızlandırabilirsiniz. Bildiğinizi gibi Delphi ve C++ Builder’a monte edilen FastMM projesi, temelde çokca kullanılan fonksiyonların, optimize edilmiş assembler hallerini barındırmaktadır. Böylelikle hem derleme performansı artmakta, hem de runtime’da çalışan kod daha verimli ve hızlı çalışmaktadır. Fakat derleyici her ne kadar kodu optimize etse de ileride göreceğiniz gibi bazı yerlerde yapay zeka yetersiz kalmaktadır. Bu yüzden bu kısımlara müdahale edip kodların boyutunu azaltıp, performansını artırmaya çalışacağız.

Ayrıca derleyicinin kod üretimi(code generation) safhasının nasıl işlediği hakkında da fikir sahibi olacaksınız.

Örneklerimizi Delphi üzerinde yapacağız. Az da olsa assembler bildiğinizi kabul ediyorum.

» Continue Reading

8.151 defa okunmuş , , ,