Arşiv Anasayfa Delphi Open ToolsAPI ler ve IDE Geliştirmeleri
Sayfalar: 1
Delphi 2006 Açılış ekranına bileşen paketimizin simgesini eklemek Gönderen: kocaturk Tarih: 17 June 2007 19:12:58

Notice: Undefined index: current_action in /home/del10000/domains/delphidunyasi.net/public_html/Sources/Subs.php on line 2391
Merhaba arkadaşlar sitede aslında API iler ile ilgili bir bölüm var fakat Delphi IDE sinde değişiklikler yapmak ve yeni özellikler eklemek için kullanılan Delphi ToolsAPI leri ile ilgili bir bölümümüz yoktu bende bu bölümü açıp ilk eklentiyi de yapmak istedim. gelelim konumuza;
Delphi 2006 kullananlar bilirler delphi ilk açılırken açılış ekranında IDE de kurulu bir çok bileşenin artistik açıklamaları bulunur RaveReport,Castalia,Inraweb vs sırası ile her paket yüklendikçe onunla ilgili bir simge ve açıklama açılış ekranına alt alta eklenir. işte biz de bunun nasıl yapıacağını basitçe anlatacağız umuyorum bir çok arkadaşın hoşuna gidecektir.
Mevzuya başlamadan öne ufak bir ön bilgi vermekte fayda var. Malumunuz delphi de özel bileşen paketleri oluşturup kendi yazdığımız bileşenleri bu paketlerde toplayarak Delphi ye entegre edip gerektiğinde kullanabiliyoruz. Herkes bilir ki delphi bileşen paketleri .DPK uzantılı özel dosyalarda saklanır bu dosyalar bileşen paketinin temelini oluşturur ve bileşenlerin kodlarının bulunduğu unitler bileşenlerin kullandığı resource lar vs bu dosyaya bağlanır bu dosya derlendiğinde pakette bulunan bileşenler Register procedure ünde tanımlanan sayfalara eklenir.
Tipik bir .DPK dosyasının kaynak görünümü aşağıdaki gibidir.
Kodlama dili (delphi)
 
package OktComps;
 
{$R *.res}
{$R 'OKTSchedGrid.dcr'}
...
...
...
...
...
 
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
...
...
...
...
...
{$DESCRIPTION 'Oktay KOCATÜRK Components for BDS4.0'}
{$IMPLICITBUILD OFF}
 
requires
 vcl,
 vcldb,
 vclsmp,
 bdertl,
 designide,
 rtl,
 dbrtl,
 vclie;
 
contains
 OKTSchedGrid in 'OKTSchedGrid.pas',
...
...
...
 
 
end.
 
 

sırası ile resource dosyaları, derleyici direktifleri, pketin gerek duyduğu diğer paketler, pakette bulunan bileşenlere ait unit ler vs
işte diyelim ki böyle bir bileşen paketimiz var ve biz de diğer professional bieşen paketlerinde olduğu gibi delphi açılış ekranımızda bileşen paketimizle ilgili bir bilgi eklemek istiyoruz bunu nasıl yapabiliriz? tabi ki ToolsAPI leri kullanarak.
şimdi bu işi adım adım gerçekleştirelim ve sonucu görelim.

1- Önce ilgili paketi delphi de açıyoruz
2 pakete yeni boş bir unit ekliyoruz unit tahminen aşağıdaki gibi olacaktır.

Kodlama dili (delphi)
 
unit Unit1;
 
interface
 
implementation
 
end.
 
 
 

şimdi unit imizin Implementation kısmından sonra aşağıdaki uses bloğunu ekliyerek unitin ToolsAPI,Windows ve Graphics unitlerine referansta bulunuyoruz.

Kodlama dili (delphi)
 
 
uses
 ToolsAPI, Windows, Graphics;
 
 

bu işlemden sonra ben bileşen paketimiz hakkında bilgileri tutan iki adet ResourceString ekledim siz bunu eklemeden de yapabilirsiniz.

Kodlama dili (delphi)
 
resourcestring
 resPackageName = 'Kocaturk''s Components Collection for BDS2006';
 resLicense = 'www.delphidunyasi.net';
 
 
 

daha sonra unitimize  delphi açılış ekranın da paketimiz yüklendiği anda gerekli bilgileri gösterecek RegisterSplashScreen procedure ümüzü yazıyoruz.

Kodlama dili (delphi)
 
procedure RegisterSplashScreen;
var
 bmp: TBitmap;
begin
 bmp := TBitmap.Create;
 bmp.LoadFromResourceName(HInstance, 'MY_SPLASH');
 SplashScreenServices.AddPluginBitmap(resPackageName, bmp.Handle, False, resLicense, '');
 bmp.Free;
end;
 
 

son olarak unit imin Initializiation bölümüne  procedure ü aşağıdaki gibi ekleyerek.

Kodlama dili (delphi)
 
initialization
 RegisterSplashScreen;
 
 
 

Unit imin kodunun aşağıdaki gibi olmasını sağlıyorum


Kodlama dili (delphi)
 
 
unit Unit1;
 
interface
 
implementation
 
uses
 ToolsAPI, Windows, Graphics;
 
resourcestring
 resPackageName = 'Kocaturk''s Components Collection for BDS2006';
 resLicense = 'www.delphidunyasi.net';
 
procedure RegisterSplashScreen;
var
 bmp: TBitmap;
begin
 bmp := TBitmap.Create;
 bmp.LoadFromResourceName(HInstance, 'MY_SPLASH');
 SplashScreenServices.AddPluginBitmap(resPackageName, bmp.Handle, False, resLicense, '');
 bmp.Free;
end;
 
initialization
 RegisterSplashScreen;
 
end.
 
 
Unit1 i RegisterMyComps.pas olarak bileşen paketinin bulunduğu dizine kaydediyor ve unit ile işimizi bitiriyoruz.

Buraya kadar her şey normal uniti oluşturduk fakat açılış ekranında gösterilecek simge yi MY_SPLASH kaynakğından çağıran


Kodlama dili (delphi)
 
 bmp.LoadFromResourceName(HInstance, 'MY_SPLASH');
 
 
kod satırının çalışabilmesi için gerekli olan resource dosyayı olşturup bileşen paketimize bağlamalıyız, bunun için yapmamız gereken açılış ekranında göstermek istediğimiz resmimizi bir resource dosyaya ekleyip resource dosyayı derleyip kullanılabilir hale getirmeliyiz önce resmimizi 32X32 boyutunda ve bitmap formatında oluşturuyoruz ben bunun için sitedeki avatarımı kullandım Smile ve dosyamın adı da MySplash.bmp
önce bir Resource Kaynağı hazırlıyoruz, notepad ile yeni bir metin belgesi oluşturup açıyoruz ve aşağıdaki satırı dosyaya ekleyerek kaydediyoruz

My_SPLASH BITMAP "My_Splash.bmp"

Not:
burada delphi de kaynak dosyaların kullanımı hakkında bilgi vermeyeceğim sadece MY_SPLASH ın My_Splash.bmp yi temsil eden BITMAP tipi bir kaynak olduğunu bilmeniz yeterli.

bu satırı ekledikten sonra ben text dosyayı MySplash.rc olarak kaydettim. Resource kaynağımız hazır olduğuna göre artık bunu Borland'ın komut satırı 32 bit kaynak derleyicisi(Brcc32.exe bu dosya delphi Bin dizinindedir) ile derleyerek gereken kaynak dosyamızı oluşturabiliriz.

komut satırından

brcc32 Mysplash.rc

yazıp ENTER tuşuna basınca derlenmiş kaynak dosyamız MySpalsh.res olarak oluşturulacaktır ben standarda uygun olsun diye dosyanın uzantısını .RES den .DCR (Delphi Compiled Resource) ye çevirdim ve MySplash.dcr adlı derlenmiş bir kaynak dosyam oldu. (.DCR ye çevirmeye gerek yok aslında pakete eklerken .RES olarak ta ekleyebilirsiniz)
Artık işleme kaldığım yerden devam edebilirim, olşturduğum MySplash.dcr adlı kaynak dosyasını bileşen paketime tanıtıyorum bileşen paketinde diğer kaynak dosya tanımlamalarının altına {$R MySplash.dcr'} olarak ekliyorum.

Kodlama dili (delphi)
 
{$R *.res}
{$R 'OKTSchedGrid.dcr'}
{$R MySplash.dcr'}
...
...
 
 

bu işlemden sonra oluşturduğumuz RegisterMyComps.pas eğer paketin contain bölümünde yoksa ekliyorum


Kodlama dili (delphi)
 
contains  
OKTSchedGrid in 'OKTSchedGrid.pas',
...
...
RegisterOktComps in 'RegisterOktComps.pas';
 

işlem tamam. artık bileşen paketini eğer kurulmamışsa derleyip kuruyoruz kurulu ise yeniden derliyoruz, sonra delphiyi kapatıyoruz ve  yeniden başlatıyoruz sonuç aşağıdaki gibi oluyor.



Herkese kolay gelsin.




Ynt: Delphi 2006 Açılış ekranına bileşen paketimizin simgesini eklemek Gönderen: erasersoft Tarih: 03 November 2007 20:22:25

Notice: Undefined index: current_action in /home/del10000/domains/delphidunyasi.net/public_html/Sources/Subs.php on line 2391
delphi 2006 nın cd sını nasıl bulabılırım arkadaslar bana yardımcı olabilecek varmı

unilione@hotmailc.com bana ulasabılırmı lutfen merak edıyorum.