GARANTIR DESCONTO

Fórum jpeg dentro de arquivo .res #346292

19/09/2007

0

Amigos,

alguem conseguiu essa façanha:

colocar um arquivo JPEG dentro de um arquivo .RES e carrega-lo dentro de um TIMage??


Uildenei

Uildenei

Responder

Posts

19/09/2007

Uildenei

Amigos,

desculpe a afobação, mas quando se esta de cabeça quente as ideias nao fluem normalmente.

mas vamos ao que interessa:

como utilizar JPEG em Resources (.RES) e embutir ele numa DLL de recursos:

1º passo:
utilize um editor de .RES ex: ResourceBuilder, XN Resource Editor, etc..
crie um novo item de recurso do tipo RCDATA e importe o arquivo desejado;

2º passo:
Compile o arquivo de recursos (se necessario) para ser gerado o arquivo .RES;

3º passo:
inclua o arquivo .RES na DLL via diretiva {$R seu_arq_res.res};

4º passo:
compile sua aplicação para que a DLL seja gerada;

5º passo
a carga da DLL e da imagem .. vejam abaixo a funcao para tal procedimento:

procedure CarregaRecursoJPG(sID: String; Picture: TPicture);
var h, r: THandle;
jpg: TJPEGImage;
rs: TResourceStream;
begin
h:=LoadLibrary(´baseres.dll´);//carrega a DLL
jpg:=TJPEGImage.Create; //cria o jpeg para carregar a imagem
rs:=nil;//inicializa o stream dos recursos
try
r:=FindResource(h, PAnsiChar(sID), RT_RCDATA);//localiza o recurso dentro da DLL
if r <> 0 then//se encontrar
begin//carrega o conteudo do recurso pra dentro do stream
rs:=TResourceStream.Create(h, PAnsiChar(sID), RT_RCDATA);
jpg.LoadFromStream(rs);//carrega do stream pra dentro do objeto JPEG
Picture.Assign(jpg);//atribui a imagem pro objeto Picture que pode ser de um TImage por exemplo
end;
finally//libera toda a galera da memoria ... e soh alegria
FreeLibrary(h);
FreeAndNil(jpg);
end;
end;


Responder

Gostei + 0

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

Aceitar