Fórum Movendo imagem com o mouse... #317958
31/03/2006
0
E ai amigos, Tudo bem??
Bem é seguinte:
Tem um aplicativo que manipula plantas de fabricas e industrias.
O Problema é que essas imagens são muito grandes então pensei em desenvolver uma forma de arrasta-la com o mouse para melhor visualizá-la.
Assim coloquei um Scrollbox e dentro de mesmo um Image com uma imagem bem grande.
Com o seguinte código:
CODEuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, SkinImage, HotImage;
Porém ao arrastar a imagem ela fica trepidando, alguma dica??
Bem é seguinte:
Tem um aplicativo que manipula plantas de fabricas e industrias.
O Problema é que essas imagens são muito grandes então pensei em desenvolver uma forma de arrasta-la com o mouse para melhor visualizá-la.
Assim coloquei um Scrollbox e dentro de mesmo um Image com uma imagem bem grande.
Com o seguinte código:
CODEuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, SkinImage, HotImage;
type
TForm1 = class(TForm)
ScrollBox1: TScrollBox;
Image1: THotImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
pX , pY : Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then
Begin
pX := X;
pY := Y;
End;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
dX , dY : Integer;
begin
if ssLeft in Shift then
Begin
dX := px - X;
dY := py - Y;
if X <> pX then
ScrollBox1.HorzScrollBar.Position := ScrollBox1.HorzScrollBar.Position + dX;
if Y <> pY then
ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position + dY;
pX := X;
pY := Y;
End;
end;
end.Porém ao arrastar a imagem ela fica trepidando, alguma dica??
Caezar
Curtir tópico
+ 0
Responder
Posts
16/05/2012
Eniorm
Opa...
ressuscitei esse tópico, testei esse código e funciona legal, só com o problema já relatado de trepidar, porém quando pára a movimentação com o mouse, não distorce a imagem.
abraço
ressuscitei esse tópico, testei esse código e funciona legal, só com o problema já relatado de trepidar, porém quando pára a movimentação com o mouse, não distorce a imagem.
abraço
Responder
Gostei + 0
16/05/2012
Joel Rodrigues
Teste alterar a propriedade DoubleBuffered do form para true. Não lembro quais outros componentes containers possuem essa propriedade, veja se os panels e scrollboxes tem também.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)