Jump to content


Photo

Imagens Em Dll


  • Faça o login para participar
1 reply to this topic

#1 brunobrb

brunobrb

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 19/05/2007, 17:46

Olá, estou tentado inserir imagens em Dll para puxar pelo Delphi, mas os códigos que achei na net são iguais e pra mim não funcionaram... <_<

Olhem o código que achei:

Colocar os bitmaps na dll
Por vezes, quando iniciamos um projecto, temos uma preocupação: fazer
uma
aplicação pequena. Bem, a solução pode passar por colocar todos os
bitmaps
que vamos utilizar numa dll. Então vamos lá começar:

Deve usar o Image Editor, criar uma nova Resource File (.res), neste
ficheiro vamos colocar os bitmaps e icons (ambos funcionam da mesma
forma)
que queremos na nossa aplicação, clique com a tecla direita do rato na
nova
resource file e crie um novo bitmap, depois desenhe ou cole do
clipboard um
bitmap, finalmente guarde o ficheiro com o nome images.res. Depois
disto
estar feito vá ao IDE do Delphi e no File menu clique New... e escolha
DLL
depois cole o código abaixo, não se esqueça de adicionar uma unit vazia
ao
projecto. Guarde o projecta da dll no mesmo directório do ficheiro
image.res, finalmente faça o build da dll (não se esqueça, que não se
pode
correr (executar) uma dll!)

Código da Dll:

library ImageRes; {nome da dll}
uses DummyUnit; {DummyUnit é uma unit vazia, que é necessária}
{$R images.res} {nome da resource file, que deve estar no mesmo caminho
da
dll}
begin
end.
Código da DummyUnit:

unit DummyUnit;
interface
implementation
end.


Usar os bitmaps que estão na dll:
Estão aqui alguns exemplos como extrair os bitmaps da dll:

procedure TForm1.SpeedButton1Click(Sender:TObject);
var
MyHandle :THandle;
Bmp : TBitmap;
begin
MyHandle := LoadLibrary('ImageRes.DLL'); {nome da dll construida
acima}
Bmp := TBitmap.Create;
Bmp.Handle := LoadBitmap(MyHandle, 'BITMAP1'); {Bitmap1 é o nome do
bitmap criado no ficheiro image.res}
SpeedButton1.Glyph.Handle := LoadBitmap(MyHandle,'BITMAP1');
{Carrega o
Bitmap1 para o glyph do SpeedButton1}
Canvas.Draw(0,0,Bmp); {Desenha o bitmap no canvas da form}
Image1.picture.bitmap:=Bmp; {Carrega o bitmap para o componente
Timage}
Bmp.Free;
end;


:wacko:


Em fim isso não funciona, será que alguem pode me apontar algum erro no código ou me passar outro...

Obrigado!

#2 spyke

spyke

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 04/06/2007, 16:32

Olá, estou tentado inserir imagens em Dll para puxar pelo Delphi, mas os códigos que achei na net são iguais e pra mim não funcionaram... <_<

Olhem o código que achei:

Colocar os bitmaps na dll
Por vezes, quando iniciamos um projecto, temos uma preocupação: fazer
uma
aplicação pequena. Bem, a solução pode passar por colocar todos os
bitmaps
que vamos utilizar numa dll. Então vamos lá começar:

Deve usar o Image Editor, criar uma nova Resource File (.res), neste
ficheiro vamos colocar os bitmaps e icons (ambos funcionam da mesma
forma)
que queremos na nossa aplicação, clique com a tecla direita do rato na
nova
resource file e crie um novo bitmap, depois desenhe ou cole do
clipboard um
bitmap, finalmente guarde o ficheiro com o nome images.res. Depois
disto
estar feito vá ao IDE do Delphi e no File menu clique New... e escolha
DLL
depois cole o código abaixo, não se esqueça de adicionar uma unit vazia
ao
projecto. Guarde o projecta da dll no mesmo directório do ficheiro
image.res, finalmente faça o build da dll (não se esqueça, que não se
pode
correr (executar) uma dll!)

Código da Dll:

library ImageRes; {nome da dll}
uses DummyUnit; {DummyUnit é uma unit vazia, que é necessária}
{$R images.res} {nome da resource file, que deve estar no mesmo caminho
da
dll}
begin
end.
Código da DummyUnit:

unit DummyUnit;
interface
implementation
end.


Usar os bitmaps que estão na dll:
Estão aqui alguns exemplos como extrair os bitmaps da dll:

procedure TForm1.SpeedButton1Click(Sender:TObject);
var
MyHandle :THandle;
Bmp : TBitmap;
begin
MyHandle := LoadLibrary('ImageRes.DLL'); {nome da dll construida
acima}
Bmp := TBitmap.Create;
Bmp.Handle := LoadBitmap(MyHandle, 'BITMAP1'); {Bitmap1 é o nome do
bitmap criado no ficheiro image.res}
SpeedButton1.Glyph.Handle := LoadBitmap(MyHandle,'BITMAP1');
{Carrega o
Bitmap1 para o glyph do SpeedButton1}
Canvas.Draw(0,0,Bmp); {Desenha o bitmap no canvas da form}
Image1.picture.bitmap:=Bmp; {Carrega o bitmap para o componente
Timage}
Bmp.Free;
end;


:wacko:


Em fim isso não funciona, será que alguem pode me apontar algum erro no código ou me passar outro...

Obrigado!



olha... pelo que eu penso... para que você consiga acessar uma função/ procedimento de uma DLL você precisa faze-lo e declarar o mesmo...

senão o delphi não acha na memória da dll..

um abraço




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq