AppletModule
05/12/2005
0
é possivel usar um arquivo recursos.res dentro de um AppletModule
implementation {$R *.dfm} {$R \Resource\Resource.res}
sempre fala q não achou o arquivo de recurso quando tento usa-lo.
Obrigada.[/code]
Renatacoimbra
Posts
05/12/2005
Renatacoimbra
dentro do meu arquivo de recursos tem essa linha:
Recurso1 RCDATA configBD.exe
quando tento extrair o arquivo fala q não encontrou o recurso1
06/12/2005
Emerson Nascimento
Recurso1 RCDATA configBD.exe
o arquivo de recursos é um arquivo compilado!
faça assim:
crie um arquivo chamado Resource.RC e ponha essa sua linha nele.
depois compile seu arquivo com a seguinte linha de comando no prompt:
brcc32 Resource.RC
(brcc32 está na pasta ¬DELPHI¬\Bin)
depois de executar essa linha será gerado o arquivo Resource.res.
06/12/2005
Renatacoimbra
sim a linha citada está dentro do Resource.RC depois compilei e gerou o .res
Linha dentro do Resource.RC:
[color=red:ae8b59a322]Recurso1 RCDATA configBD.exe[/color:ae8b59a322]
mais quando tento extrair o arquivo de dentro do .res fala q não encontrou o
Recurso1
06/12/2005
Emerson Nascimento
um exemplo seria:
Procedure SaveConfigDB; var PathToSave : String; Res : TResourceStream; begin PathToSave := ExtractFilePath(Application.ExeName)+´\ConfigDB.exe´; if not FileExists(PathToSave) then begin Res := TResourceStream.Create(Hinstance, ´Recurso1´, ´RCDATA´); try Res.SavetoFile(PathToSave); finally Res.Free; end; end; end;
06/12/2005
Renatacoimbra
// Extrair arquivos de configuracao procedure InstalarArquivos; var i: integer; Fres: TResourceStream; fFile: TFileStream; begin //Setar Path e nome dos arquivos de destino SetPathFiles; for i := 0 to Files.Count - 1 do begin //Extrair arquivo do Resource Fres := TResourceStream.Create(0, ´RECURSO´ + IntToStr(i + 1), RT_RCDATA); fFile := TFileStream.Create(Paths[i] + Files[i], fmCreate); try //Copiar arquivo para o local indicado Ffile.CopyFrom(Fres, Fres.Size); finally //Destruir objetos Fres.Free; Ffile.Free; end; end; end;
07/12/2005
Emerson Nascimento
TResourceStream.Create(0, ´Recurso´ + IntToStr(i+1), ´RCDATA´)
uma outra coisa: porque RT_RCDATA? no arquivo você colocou somente RCDATA, não foi?
07/12/2005
Renatacoimbra
será se não é porque esse aplicativo é um CPL
{$E cpl}
é uma DLL daquelas q ficam no Painel de Controle do Windows?
testei essa mesma rotina com um aplicativo EXE normal e funciona certinho.
Clique aqui para fazer login e interagir na Comunidade :)