Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo H Oliveira

Imagem no MDI Form Centralizado

Recommended Posts

Olá Galera,

 

Estou usando o seguinte código para colocar uma imagem de fundo no meu formulário principal, mas quero centraliza-lo, alguem pode me dar uma força.

 

unit exemplo;

interface

uses
  ...

type
  TForm1 = class(TForm)
	Image1: TImage;
	procedure FormCreate(Sender: TObject);
	procedure FormPaint(Sender: TObject);
	procedure ClientWndProc(var Message: TMessage);
  private
	{ Private declarations }
	FClientInstance: TFarProc;
	FPrevClientProc: TFarProc;
  public
	{ Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ClientWndProc(var Message: TMessage);
var Dc : hDC;
	Row, Col : Integer;
begin
  with Message do
	case Msg of WM_ERASEBKGND:
	begin
		Dc := TWMEraseBkGnd(Message).Dc;
		for Row := 0 to ClientHeight div Image1.Picture.Height do
		  for Col := 0 to ClientWidth div Image1.Picture.Width do
			BitBlt(Dc, Col * Image1.Picture.Width, Row * Image1.Picture.Height,
				  Image1.Picture.Width, Image1.Picture.Height,
				  Image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
		Result := 1;
	end
	else
		Result := CallWindowProc(FPrevClientProc, ClientHandle,
								Msg, wParam, lParam);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FClientInstance := MakeObjectInstance(ClientWndProc);
  FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
  SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
end;

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu fiz da seguinte forma coloquei um componete TImage = name=image.

No Create do form coloquei o seguinte:

 

Image.Picture.loadfromfile(caminho da imagem) //caso queira carregar a imagem em tempo de execução.

 

 

Image.top:= (ChildHeight - Image.Height) div 2;

Image.left:= (Childwidth - Image.width) div 2;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Joe,

 

Ocorre o seguinte erro:

 

"Undeclared identifier: 'ChildHeight'"

"Undeclared identifier: 'ChildWidth'"

 

Sabe qual unit devo declarar para que funcione ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.