拖两个TcxImage控件到界面,一个是用于重绘时作为基点的。
一、导入图片:
procedure TForm1.btnLoadClick(Sender: TObject);
begin
if ImageCert.Picture.Graphic = nil then
begin
ImageCert.Picture.LoadFromFile('E:\学习文档\LoadImage.png');
ImageCert1.Picture.LoadFromFile('E:\学习文档\LoadImage.png');
end;
end;
二、响应鼠标滑轮事件
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
tmpbmp:TBitmap;
begin
tmpbmp :=TBitmap.Create;
if WheelDelta < 0 then
begin
tmpbmp.Width := ImageCert.Width - 2; //图位置大小
tmpbmp.Height := ImageCert.Height - 2;
tmpbmp.pixelformat:=pf32bit;
tmpbmp.Canvas.StretchDraw(tmpbmp.Canvas.ClipRect,ImageCert1.Picture.Graphic );
ImageCert.Picture.Assign(tmpbmp);
ImageCert.Width := ImageCert.Width - 2; //图片大小
ImageCert.Height := ImageCert.Height - 2;
end
else
begin
tmpbmp.Width := ImageCert.Width + 2; //图位置大小
tmpbmp.Height := ImageCert.Height + 2;
tmpbmp.pixelformat:=pf32bit;
tmpbmp.Canvas.StretchDraw(tmpbmp.Canvas.ClipRect,ImageCert1.Picture.Graphic );
ImageCert.Picture.Assign(tmpbmp);
ImageCert.Width := ImageCert.Width + 2; //图片大小
ImageCert.Height := ImageCert.Height + 2;
end;
ImageCert.Update ;
end;
三、运行时可移动
procedure TForm1.ImageCertMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
HintStr:String;
begin
releaseCapture;
ImageCert.Perform(WM_SYSCOMMAND,SC_MOVE+1,0);
// HintStr:='Left:'+INTTOSTR(ImageCert.Left)+', Top:'+INTTOSTR(ImageCert.Top)+'; Height:'+INTTOSTR(ImageCert.Height)+',Width:'+INTTOSTR(ImageCert.Width);
ShowMessage(HintStr);
end;