当光标悬停在 Delphi 中时,如何放大 TImage?
How do I enlarge a TImage in Delphi when my cursor is over it?
我在 Delphi 中使用 VCL 应用程序。我有一个 TImage。当我的光标在上面时,我想稍微放大 TImage。有人知道怎么做吗?
有很多方法。
就个人而言,我会专门为此目的创建一个新的自定义控件,以便可以重复使用。
但如果您需要快速版本,您可以简单地使用控件的 OnMouseEnter
和 OnMouseLeave
事件:
procedure TForm1.Image1MouseEnter(Sender: TObject);
var
R: TRect;
begin
R := Image1.BoundsRect;
R.Inflate(6, 6, 6, 6);
Image1.BoundsRect := R;
end;
procedure TForm1.Image1MouseLeave(Sender: TObject);
var
R: TRect;
begin
R := Image1.BoundsRect;
R.Inflate(-6, -6, -6, -6);
Image1.BoundsRect := R;
end;
这实际上比您想象的更强大。例如,如果将光标放在图像上方,使其放大,然后按 Ctrl+Alt+Del 将光标移开,当您返回到图像时,您会发现图像恢复为原始大小桌面。
我在 Delphi 中使用 VCL 应用程序。我有一个 TImage。当我的光标在上面时,我想稍微放大 TImage。有人知道怎么做吗?
有很多方法。
就个人而言,我会专门为此目的创建一个新的自定义控件,以便可以重复使用。
但如果您需要快速版本,您可以简单地使用控件的 OnMouseEnter
和 OnMouseLeave
事件:
procedure TForm1.Image1MouseEnter(Sender: TObject);
var
R: TRect;
begin
R := Image1.BoundsRect;
R.Inflate(6, 6, 6, 6);
Image1.BoundsRect := R;
end;
procedure TForm1.Image1MouseLeave(Sender: TObject);
var
R: TRect;
begin
R := Image1.BoundsRect;
R.Inflate(-6, -6, -6, -6);
Image1.BoundsRect := R;
end;
这实际上比您想象的更强大。例如,如果将光标放在图像上方,使其放大,然后按 Ctrl+Alt+Del 将光标移开,当您返回到图像时,您会发现图像恢复为原始大小桌面。