本文整理自网络,侵删。
1、TImage
var LObj: IControl; LImage: TImage; LImageCenter: TPointF;begin if EventInfo.GestureID = igiZoom then begin LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location)); if LObj is TImage then begin if (not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags)) and (not(TInteractiveGestureFlag.gfEnd in EventInfo.Flags)) then begin { zoom the image } LImage := TImage(LObj.GetObject); LImageCenter := LImage.Position.Point + PointF(LImage.Width / 2, LImage.Height / 2); LImage.Width := LImage.Width + (EventInfo.Distance - FLastDistance); LImage.Height := LImage.Height + (EventInfo.Distance - FLastDistance); LImage.Position.X := LImageCenter.X - LImage.Width / 2; LImage.Position.Y := LImageCenter.Y - LImage.Height / 2; end; FLastDistance := EventInfo.Distance; end; end;
2、TImageViewer
procedure TForm1.ImageViewer1Gesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean);begin case EventInfo.GestureID of igiZoom: begin if (EventInfo.Distance - fDistance)/2 > 0 then ImageViewer1.BitmapScale:=ImageViewer1.BitmapScale + 0.01 else if (EventInfo.Distance - fDistance)/2 < 0 then ImageViewer1.BitmapScale:=ImageViewer1.BitmapScale - 0.01; fDistance:=EventInfo.Distance; Handled:=True; end; end;end;
创建时间:2020.06.26 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao
相关阅读 >>
Delphi 新建文件 复制文件 重命名文件名时 文件存在自动重命名
Delphi 5-7 桥接让Delphi xe2 datasnap中间层支持Delphi低版本开发客户端
Delphi启动/停止windows服务,启动类型修改为"自动"
更多相关阅读请进入《Delphi》频道 >>