Fórum Copiar Parte da tela num Image?? #189240

17/10/2003

0

Como faço para consegui copiar parte da tela em um componente Image. Gostaria de definir um ponto no form (através de um clique, por exemplo) e fosse pega uma área ao redor do clique e copiada para o Image.


Raserafim

Raserafim

Responder

Posts

17/10/2003

Cebikyn

Use este código:

var
  DC : HDc;
  Canv: TCanvas;
  R, DRV: TRect;
  X1, Y1, W1, Z1: Integer;
begin 
  Canv := TCanvas.Create;
  DC := GetWindowDC( GetDeskTopWindow );
  Canv.Handle := DC;
  DRV := Rect(0, 0, Image1.Width, Image1.Height);
  // Aqui você especifica qual área vai ser copiada:
  R := Rect( X1 , Y1 , Z1 , W1 );
  Image1.Canvas.CopyRect( DRV, Canv, R );
  ReleaseDC( GetDeskTopWindow, DC );
  Canv.Free;
end;


Para definir X, Y, Z e W de maneira que o código pegue a área ao redor do clique, vc pode fazer assim no OnMouseDown do seu form:

X1 := X - (Image1.Width div2);
Y1 := Y - (Image1.Height div2);
W1 := X + (Image1.Width div2);
Z1 := Y + (Image1.Height div2);


Se o código não funcionar ou tiver algum problema durante o uso do mesmo, deixe uma mensagem.


Responder

Gostei + 0

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

Aceitar