You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi FireMonkey中为TRectangle设置圆角?

Delphi FireMonkey实现带圆角的TRectangle按钮(类似CSS border-radius效果)

完全可以实现,FireMonkey的TRectangle组件原生支持圆角设置,逻辑和CSS的border-radius完全对应,具体操作如下:

一、设计器可视化设置

  • 从组件面板拖入TRectangle到目标容器(窗体、布局等)
  • 在Object Inspector中找到CornerRadius属性:
    • 直接设置主数值:所有角应用统一圆角,对应CSS的border-radius: [数值];
    • 展开CornerRadius的子属性,分别设置TopLeft、TopRight、BottomLeft、BottomRight的数值,可实现不同角的差异化圆角,对应CSS的border-radius: 左上 右上 右下 左下;语法

二、代码动态设置

如果需要在运行时调整圆角,可通过以下代码实现:

// 设置所有角统一圆角
Rectangle1.CornerRadius := 12;

// 设置四个角不同的圆角值
Rectangle1.CornerRadius.TopLeft := 8;
Rectangle1.CornerRadius.TopRight := 16;
Rectangle1.CornerRadius.BottomLeft := 16;
Rectangle1.CornerRadius.BottomRight := 8;

三、完善按钮交互效果

若要把TRectangle做成可点击的按钮,还可以补充以下操作:

  • 给TRectangle添加OnClick事件,编写点击触发的业务逻辑
  • 通过OnMouseEnter和OnMouseLeave实现hover状态切换:
procedure TGameForm.RectangleStartMouseEnter(Sender: TObject);
begin
  (Sender as TRectangle).Fill.Color := $FFD0D0D0; // 鼠标移入时的填充色
end;

procedure TGameForm.RectangleStartMouseLeave(Sender: TObject);
begin
  (Sender as TRectangle).Fill.Color := $FFE8E8E8; // 鼠标移出时的填充色
end;
  • 可搭配TLabel组件放在TRectangle上方,添加按钮文字(比如“开始”)

关于CSS border-radius的对应说明

CSS的border-radius属性用于为元素添加圆角,支持单值统一设置、多值差异化设置单个角,FireMonkey的TRectangle CornerRadius属性完全匹配这一逻辑:

  • 单值设置:对应TRectangle的CornerRadius主属性,四个角圆角一致
  • 多值设置:对应TRectangle CornerRadius的四个子属性,分别控制四个角的圆角大小

内容的提问来源于stack exchange,提问作者liansa111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 17:07:05