Como colocar uma imagem de fundo num Panel?
Pessoal, a princípio pode parecer muito básico, mas estou com uma tremenda dificuldade de carregar uma imagem de fundo num Panel, em tempo de execução. Alías, carregar é fácil, só que ela não aparece em tempo de execução.
Já fiz das seguintes maneiras:
Primeira maneira:
Panel1.Brush.Bitmap := TBitmap.Create;
Panel1.Brush.Bitmap.LoadFromFile(´c:\temp\imagem.bmp´);
Segunda maneira:
var
xCanvas : TCanvas;
begin
xCanvas := TCanvas.Create;
xCanvas.handle := GetDC(Panel1.Handle);
ImageList1.Draw(xCanvas, 10, 10, 0);
ReleaseDC(Panel1.Handle, xCanvas.Handle);
Da segunda maneira até funciona, só que não consigo exibir uma imagem grande.
Alguém pode dar uma ajuda?
Valeu.
Já fiz das seguintes maneiras:
Primeira maneira:
Panel1.Brush.Bitmap := TBitmap.Create;
Panel1.Brush.Bitmap.LoadFromFile(´c:\temp\imagem.bmp´);
Segunda maneira:
var
xCanvas : TCanvas;
begin
xCanvas := TCanvas.Create;
xCanvas.handle := GetDC(Panel1.Handle);
ImageList1.Draw(xCanvas, 10, 10, 0);
ReleaseDC(Panel1.Handle, xCanvas.Handle);
Da segunda maneira até funciona, só que não consigo exibir uma imagem grande.
Alguém pode dar uma ajuda?
Valeu.
Rtava
Curtidas 0
Respostas
Eurismar
17/04/2007
vc pode usar o componente image sobre o panel com a propriedade align = AlClient e usar o comando: Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
GOSTEI 0
Rtava
17/04/2007
Não dá... eu preciso dos eventos de mouse do Panel.
GOSTEI 0
Cabelo
17/04/2007
Colega..
Utilize a propriedade Bitmap do TPanel...
Para deixar a imagem do tamanho do Panel você pode tratá-la com o canvas..
um abraço..
Utilize a propriedade Bitmap do TPanel...
Para deixar a imagem do tamanho do Panel você pode tratá-la com o canvas..
um abraço..
GOSTEI 0
Rtava
17/04/2007
Conforme já postei no início, eu usei isso só que a imagem não aparece. Aparentemente carrega a imagem normalmente, mas ela não aparece.
Você já tentou usar isso? Conseguiu que aparecesse?
Você já tentou usar isso? Conseguiu que aparecesse?
GOSTEI 0
Carlosib
17/04/2007
Tenta assim:
var Canvas : TCanvas; BitMap : TBitMap; begin BitMap := TBitmap.Create; BitMap.LoadFromFile(´c:\imagem.bmp´); Canvas := TCanvas.Create; Canvas.handle := GetDC(Panel1.Handle); BitBlt(Canvas.Handle,0,0, BitMap.Height, BitMap.Width, BitMap.Canvas.Handle,0,0,SRCCOPY); ReleaseDC(Panel1.Handle, Canvas.Handle); end;
GOSTEI 0
Rtava
17/04/2007
Fala carlosib...
Agora sim!
Uma única coisa que tive que implementar é fazer a chamada dessa rotina também no evento OnPaint do formulário Parent do Panel1, pois quando a tela aplicação é sobreposta por uma tela qualquer de outro aplicativo a imagem some do Panel. Mas fora esse detalhe, funcionou blz.
Obrigado.
Agora sim!
Uma única coisa que tive que implementar é fazer a chamada dessa rotina também no evento OnPaint do formulário Parent do Panel1, pois quando a tela aplicação é sobreposta por uma tela qualquer de outro aplicativo a imagem some do Panel. Mas fora esse detalhe, funcionou blz.
Obrigado.
GOSTEI 0
Cabelo
17/04/2007
Conforme já postei no início, eu usei isso só que a imagem não aparece. Aparentemente carrega a imagem normalmente, mas ela não aparece.
Você já tentou usar isso? Conseguiu que aparecesse?
Já usei sim...
mas no início do post, você indica o método Brush..
O panel tem uma propriedade Bitmap que permite inserir um bitmap até em design time..
Mas pelo jeito você já resolveu o problema..
um abraço..
GOSTEI 0
Rtava
17/04/2007
Então acho que estamos nos referindo a ´panels´ diferentes. O TPanel, nativo do Delphi, tem o ´Bitmap´ e pertence ao ´Brush´ (panel1.Brush.bitmap). Não existe ´Panel.Bitmap´ ou ´Panel.Canvas´ no TPanel nativo do Delphi (ao menos no Delphi7, que é o que uso...).
GOSTEI 0
Cabelo
17/04/2007
Colega..
Então devemos estar falando mesmo.. pois trabalho com Delphi 7 em .CLX e uso TPanel... acho que por ser .CLX muda em alguma coisa.. acredito que na classe TControl não existe TBitmap
Realmente TCanvas não existe, pois herda de TBitmap e realmente não poderia existir num TWidgetControl.. mas o TBitmap herda de TWidgetControl, portanto existe no TPanel, que é um TWidgetControl
Então devemos estar falando mesmo.. pois trabalho com Delphi 7 em .CLX e uso TPanel... acho que por ser .CLX muda em alguma coisa.. acredito que na classe TControl não existe TBitmap
Realmente TCanvas não existe, pois herda de TBitmap e realmente não poderia existir num TWidgetControl.. mas o TBitmap herda de TWidgetControl, portanto existe no TPanel, que é um TWidgetControl
GOSTEI 0