Movendo imagem com o mouse...
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
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
Clique aqui para fazer login e interagir na Comunidade :)