Fórum dcc32.exe Como eu faco para pegar o Library Path do delphi? #281739

16/05/2005

0

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_

Responder

Posts

16/05/2005

_chiappone_

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?


Responder

Gostei + 0

16/05/2005

Kotho

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


Responder

Gostei + 0

16/05/2005

_chiappone_

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


Responder

Gostei + 0

16/05/2005

Thiago Vidal

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.



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar