Evo nasao sam malo vremena da objasnim postupak
dodavanja komponenata u Turbo Delphi Explorer
(racunajuci InterBaseExpress, Indy, IntraWeb, Sample i TeeChart),
ako ga je neko skorije preuzeo sa net-a, kroz 'Dclusr.dpk'
(za razliku od avgustovske verzije iz 2006 gde
su nepaznjom ostavili otvorena vrata bas kroz
'Dclusr.dpk', sto je kasnije ispravljeno i gde nije bilo
moguce dodati spomenute kompnente bez nekog krekovanja),
no da ne duzim nego:
prvo je potrbno kreirati 'Loader.pas' fajl ili ga preuzeti sa
'
http://kazantsev.nm.ru/packloader.zip', u kome je
Code:
Unit Loader;
//
// Ìîäóëü ñîäåðæèò ôóíêöèîíàë çàãðóçêè ñòîðîííèõ ïàêåòîâ â ñðåäó Turbo Delphi Explorer.
// Copyright (c) 2006 Êàçàíöåâ Àëåêñåé (
[email protected])
//
Interface
Implementation
Uses
Classes, SysUtils, Windows,Registry;
//
Procedure _CheckRegisterProcAndCall(Const Name : String; NameType : TNameType; Flags : Byte; Param : Pointer);
Var
RegProc : TProcedure;
Begin
If NameType = ntContainsUnit Then
Begin
@RegProc := GetProcAddress(HMODULE(Param), PAnsiChar('@' + Name + '@' + 'Register$qqrv'));
If Assigned(RegProc) Then
RegProc;
End;
End;
//
//
Procedure _LoadPackage(Const Name : String);
Var
Flags : Integer;
Handle : HMODULE;
Begin
Handle := LoadPackage(Name);
If Handle <> 0 Then
GetPackageInfo(Handle, Pointer(Handle), Flags, _CheckRegisterProcAndCall);
End;
//
//
Var
LIndex : Integer;
FileName : Array[0 .. MAX_PATH - 1] Of AnsiChar;
PackName : String;
//
Initialization
Try
If GetModuleFileName(hInstance, @FileName, SizeOf(FileName)) > 0 Then
With TStringList.Create Do
Try
LoadFromFile(ExtractFilePath(FileName) + 'packages.lst');
For LIndex := 0 To Count - 1 Do
Begin
PackName := Trim(Strings[LIndex]);
If (Length(PackName) > 0) And (PackName[1] <> ';') Then
begin
_LoadPackage(PackName);
end;
End;
Finally
Free;
End;
Except
End;
i dodati u njega
(to sam ja licno dodao)
Code:
Var
Reg: TRegistry;
Key: string;
Finalization
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Key := 'Software\Borland\BDS\4.0\Package Cache\dclusr100.bpl';
if Reg.OpenKey(Key, True) then
begin
Reg.WriteInteger('Package Age', 909610468);
Reg.CloseKey;
end;
finally
Reg.Free
end;
end;
kako sam dosao do ovog, pa izgubio sam ceo dan uporedjujuci izmene u registry bazi,
no vazno je da radi.
E sad taj fajal dodati u prazan 'Dclusr.dpk' ('dclusr100.bpl' desni klik pa add)
i u samom dclusr.dpk-u izmeniti
Code:
{$R *.res}
u
Code:
//{$R *.res}
i odmah ispod '//{$R *.res}' dodati
Code:
{$R 'dclusr.dcr'}
a 'dclusr.dcr' je prilozen sa ostalim fajovima na dnu mog posta
(napravite backup od ranije instalisanih 'dclusr.dpk' i 'dclusr.res'-a iz 'lib' foldera,
a prilozene iz 'dclusr.zip'-a - 'dclusr.dpk' , 'dclusr.dcr' i 'Loader.pas' ubacite u 'lib'
pa samim time mozete da preskocite prethodbe korake)
Izvrsite compile i install,
kreirajte fajl 'packages.lst'
(dodajte u isti pocev od donje linije
C:\Program Files\Borland\BDS\4.0\Bin\dclib100.bpl
C:\Program Files\Borland\BDS\4.0\Bin\dclsmp100.bpl
C:\Program Files\Borland\BDS\4.0\Bin\dcltee100.bpl
C:\Program Files\Borland\BDS\4.0\Bin\dclIndyCore100.bpl
C:\Program Files\Borland\BDS\4.0\Bin\dclIndyProtocols100.bpl
C:\Program Files\Borland\BDS\4.0\Bin\dclintraweb_80_100.bpl
)
i dodajte ga u
'C:\Documents and Settings\<user>\My Documents\Borland Studio Projects\Bpl\'
mozete svaku komponentu da kompajlirate i da dodate u 'packages.lst'
npr. 'C:\Documents and Settings\<user>\My Documents\Borland Studio Projects\Bpl\FREEREP10.bpl'
i pri sledecem pokretanju TD-a u glavnom meniju 'component->Instal Packages..->Add..' i izaberete
kompajliranu kompnentu u 'C:\Documents and Settings\<user>\My Documents\Borland Studio Projects\Bpl\FREEREP10.bpl' i cekirajte je.
p.s.
Potrebno je dva-tri pokretenje TD-a posle ovih koraka
da bi sve korektno proradilo.
[Ovu poruku je menjao milance_kg dana 27.01.2007. u 16:55 GMT+1]