dcc32.exe Como eu faco para pegar o Library Path do delphi?
E ae pessoal!
Estou usando Delphi 7 e preciso que minha aplicacao compile
um projeto. Ela so ira ser executada nos computadores dos
desenvolvedores....
Acontece que eu preciso pegar do delphi em runtime o library path... aquele q a gente configura em Tools|Environment Options|Library|Library Path:
Assim eu passo como parametro pro dcc32....
Mas se alguem souber como compilar sem passar os paths tambem... acho melhor :D
Alem disso, gostaria que aparecesse a janela de compilacao do delphi, igual aparece na instalacao do Jedi... achei legal aquilo... mas eh soh perfumaria..
nao eh necessario :D
vlw!!!!
Estou usando Delphi 7 e preciso que minha aplicacao compile
um projeto. Ela so ira ser executada nos computadores dos
desenvolvedores....
Acontece que eu preciso pegar do delphi em runtime o library path... aquele q a gente configura em Tools|Environment Options|Library|Library Path:
Assim eu passo como parametro pro dcc32....
Mas se alguem souber como compilar sem passar os paths tambem... acho melhor :D
Alem disso, gostaria que aparecesse a janela de compilacao do delphi, igual aparece na instalacao do Jedi... achei legal aquilo... mas eh soh perfumaria..
nao eh necessario :D
vlw!!!!
_chiappone_
Curtidas 0
Respostas
_chiappone_
16/05/2005
Ja descobri como faz isso
Criei o codigo abaixo:
Agora, o dcc32.... nao estou conseguindo passar o library path pra ele.
Estou utilizando a opcao -I e passando os paths, mas quando aparece uma pasta com um espaco no nome, por ex: C:\Fontes ClubeDelphi, ele se perde.
No exemplo, ele acusaria o erro: File not found: ClubeDelphi.dpr
Alguem sabe como passar isso?
Criei o codigo abaixo:
function TfrmMain.PegaLibraryPath : string;
var
reg : TRegistry;
const
{$IFDEF VER130}
VERSAO_DELPHI = ´5.0´;
{$ENDIF}
{$IFDEF VER140}
VERSAO_DELPHI = ´6.0´;
{$ENDIF}
{$IFDEF VER150}
VERSAO_DELPHI = ´7.0´;
{$ENDIF}
CAMINHO_LIBRARY_PATH = ´\Software\Borland\Delphi\´ + VERSAO_DELPHI + ´\Library´;
KEY_SEARCH_PATH = ´Search Path´;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey(CAMINHO_LIBRARY_PATH, False);
result := reg.ReadString(KEY_SEARCH_PATH);
end;
Agora, o dcc32.... nao estou conseguindo passar o library path pra ele.
Estou utilizando a opcao -I e passando os paths, mas quando aparece uma pasta com um espaco no nome, por ex: C:\Fontes ClubeDelphi, ele se perde.
No exemplo, ele acusaria o erro: File not found: ClubeDelphi.dpr
Alguem sabe como passar isso?
GOSTEI 0
Kotho
16/05/2005
Tenta colocar esses diretorios entre aspas: c:\´nome do dir´\´nome do dir2´
GOSTEI 0
_chiappone_
16/05/2005
Consegui fazer compilar... eu estava passando apenas a opcao -I (includes)... foi necessario adicionar a opcao -U (units)
Substitui -I por -U e compilou.... com os 3 (tem tb o -R, de resources) tb funciona...
vou deixar com as 3 mesmo....
Agora eu to quebrando a kbca com outra coisa... executar a linha de comando... se alguem puder me ajudar como executar em delphi... tentei
WinExec mas nao fui muito feliz... tentei ShellExecute (jah ouvi falar disso) mas nao sei qual unit esta e no help do delphi nao tem referencia a esse comando... ms blz
Vlwz ae!!
Substitui -I por -U e compilou.... com os 3 (tem tb o -R, de resources) tb funciona...
vou deixar com as 3 mesmo....
Agora eu to quebrando a kbca com outra coisa... executar a linha de comando... se alguem puder me ajudar como executar em delphi... tentei
WinExec mas nao fui muito feliz... tentei ShellExecute (jah ouvi falar disso) mas nao sei qual unit esta e no help do delphi nao tem referencia a esse comando... ms blz
Vlwz ae!!
GOSTEI 0
Thiago Vidal
16/05/2005
Achei muito interessante esta dica, já há muito tempo eu vinha tentando fazer compiladores automáticos para meus projetos, para gerar builds diários.
Consegui fazer a rotina funcionar da seguinte forma:
Consegui fazer a rotina funcionar da seguinte forma:
program dcctest;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows,
Registry;
function GetLibPath: string;
const
cRegKey = ´\Software\Borland\BDS\3.0\Library´;
begin
with TRegistry.Create do
try
OpenKey(cRegKey, False);
Result := ReadString(´Search Path´);
finally
Free;
end;
end;
const
DCC32 = ´c:\Arquivos de Programas\Borland\BDS\3.0\Bin\dcc32.exe´;
DPR = ´d:\projetos\temp\temp1.dpr´;
cCmdLine = ´"¬0:s" -B -Q -I"¬1:s" -U"¬1:s" -R"¬1:s" "¬2:s"´;
var
SearchPath: string;
CmdLine: string;
begin
SearchPath := GetLibPath;
CmdLine := Format(cCmdLine, [DCC32, SearchPath, DPR]);
WinExec(PChar(CmdLine), SW_HIDE);
Readln;
end.
GOSTEI 0