当光标悬停在 Delphi 中时,如何放大 TImage?

How do I enlarge a TImage in Delphi when my cursor is over it?

我在 Delphi 中使用 VCL 应用程序。我有一个 TImage。当我的光标在上面时,我想稍微放大 TImage。有人知道怎么做吗?

有很多方法。

就个人而言,我会专门为此目的创建一个新的自定义控件,以便可以重复使用。

但如果您需要快速版本,您可以简单地使用控件的 OnMouseEnterOnMouseLeave 事件:

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 将光标移开,当您返回到图像时,您会发现图像恢复为原始大小桌面。