我喜欢在滚动框中平移图像后创建平滑的减速滚动效果.就像在maps.google.com中平移地图一样.我不确定它是什么类型,但完全相同的行为:当快速移动拖动地图时,它不会立即停止释放鼠标,但它开始减慢速度.
任何想法,组件,链接或样本?
这是我的目标.使用鼠标左键滚动图像,使用鼠标右键选择缩放矩形,然后双击以恢复完整缩放.
我目前已经厌倦了,到目前为止发现它与我加载图像或显示图像的方式无关,而是与绘制方式有关.无论表格或源图像的形状如何,屏幕上的图像总是填充控件的客户区域,因此不能保留纵横比.我不知道如何改变它或保持纵横比.从而给我一个干净漂亮的画面.
我发布了我的ZImage单元的整个代码虽然我认为问题出现在Zimage.paint或Zimage.mouseup中但是想想如果你需要在其中一个中看到一个函数,那将有助于将它全部发布.
unit ZImage;
interface
uses
Windows, Messages, SysUtils,jpeg, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TZImage = class(TGraphicControl)
private
FBitmap : Tbitmap;
PicRect : TRect;
ShowRect : TRect;
FShowBorder : boolean;
FBorderWidth : integer;
FForceRepaint : boolean;
FMouse : (mNone, mDrag, mZoom);
FProportional : boolean;
FDblClkEnable : boolean;
FLeft :integer;
FRight :integer;
FTop :integer;
FBottom :integer;
startx, starty,
oldx, oldy : integer;
procedure SetShowBorder(s:boolean);
procedure SetBitmap(b:TBitmap);
procedure SetBorderWidth(w:integer);
procedure SetProportional(b:boolean);
protected
procedure Paint; override;
procedure MouseDown(Button: TMouseButton; Shift: …Run Code Online (Sandbox Code Playgroud)