dcc32.exe Como eu faco para pegar o Library Path do delphi?

Delphi

16/05/2005

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!!!!


_chiappone_

_chiappone_

Curtidas 0

Respostas

_chiappone_

_chiappone_

16/05/2005

Ja descobri como faz 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

Kotho

16/05/2005

Tenta colocar esses diretorios entre aspas: c:\´nome do dir´\´nome do dir2´


GOSTEI 0
_chiappone_

_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!!


GOSTEI 0
Thiago Vidal

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:

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
POSTAR