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

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.