📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, ExtDlgs;
type
TMainForm = class(TForm)
FramePanel: TPanel;
BackImage: TImage;
ForeImage: TImage;
OpenPictureDialog1: TOpenPictureDialog;
open: TBitBtn;
exit: TBitBtn;
about: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure ForeImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure exitClick(Sender: TObject);
procedure ForeImageDblClick(Sender: TObject);
procedure openClick(Sender: TObject);
procedure aboutClick(Sender: TObject);
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
procedure ImageCopy(CenterX, CenterY, Side: Integer);
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
const
sSide=30;
dSide=45;
var
msHide: Boolean;
OldX, OldY, NewX, NewY: Integer;
Dest, Source : TRect;
{$R *.DFM}
procedure TMainForm.FormCreate(Sender: TObject);
begin
msHide:=True;
Canvas.CopyMode:=cmSrcCopy //复制模式
end;
{实现复制图像的过程}
procedure TMainForm.ImageCopy(CenterX, CenterY, Side: Integer);
begin
with Source do
begin//获取图像像素信息
Left:=CenterX-Side;
Top:=CenterY-Side;
Right:=CenterX+Side;
Bottom:=CenterY+Side;
end;
with Dest do
begin//复制图像相关像素
Left:=CenterX-dSide;
Top:=CenterY-dSide;
Right:=CenterX+dSide;
Bottom:=CenterY+dSide;
end;
ForeImage.Canvas.CopyRect(Dest, BackImage.Canvas, Source);//复制图像
end;
{放大图像}
procedure TMainForm.ForeImageMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
NewX:=X;//鼠标位置
NewY:=Y;
if msHide then
begin
OldX:=NewX;
OldY:=NewY;
msHide:=False;
ShowCursor(False);//隐藏鼠标
end
else
begin
ImageCopy(OldX, OldY, dSide);// 复制图像
end;
ImageCopy(NewX, NewY, sSide);//放大图像
OldX:=NewX;
OldY:=NewY;
end;
procedure TMainForm.exitClick(Sender: TObject);
begin
close;//关闭窗体,退出程序
end;
procedure TMainForm.ForeImageDblClick(Sender: TObject);
begin
showcursor(true);//显示鼠标
exit.Visible:=true;//激活窗体中的按钮
open.Visible:=true;
about.Visible:=true;
end;
procedure TMainForm.openClick(Sender: TObject);
begin
mainform.OpenPictureDialog1.Title:='请选择一个图像文件打开';//打开对话框的标题
mainform.OpenPictureDialog1.InitialDir:='C:\My Documents\My Pictures';//打开文件的路径
if mainform.OpenPictureDialog1.Execute then
mainform.foreImage.Picture.LoadFromFile(mainform.OpenPicturedialog1.filename);//导入图像文件
mainform.backImage.Picture.LoadFromFile(mainform.OpenPicturedialog1.filename);
showcursor(false);
exit.Visible:=false;//使窗体中的按钮不可见
open.Visible:=false;
about.Visible:=false;
end;
{窗体的关于信息}
procedure TMainForm.aboutClick(Sender: TObject);
begin
messagedlg('这是一个图片放大镜工具'+
' 移动鼠标可以放大光标所在处的区域图片',mtinformation,[mbok],0);
end;
{点击窗体给出提示信息}
procedure TMainForm.FormClick(Sender: TObject);
begin
messagedlg('在图片上双击鼠标左键就可以出现按钮了哦!!',mtinformation,[mbok],0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -