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

如何在Delphi FireMonkey移动端应用中制作圆角按钮(无需第三方组件)

在Delphi FireMonkey移动端实现圆角按钮(无需第三方组件)

嘿,我刚好有几个靠谱的办法,不用依赖任何第三方组件就能搞定FireMonkey移动端的圆角按钮,都是实际项目里用过的,给你一步步说清楚:

方法一:通过StyleBook自定义按钮样式(推荐,灵活可控)

这是最常用的方式,能精准控制按钮的所有视觉细节,包括不同状态下的圆角表现:

  1. 给你的Form添加一个TStyleBook组件,双击打开样式编辑器
  2. 在样式编辑器的Structure面板里,找到TButtonStyle(如果没有,右键点击Styles -> New Style,选择TButton创建基础样式)
  3. 展开TButtonStyle下的background节点,选中里面的TRectangle(通常叫background或fill)
  4. 在Object Inspector里找到CornerRadius属性,设置你想要的圆角值(比如8、12,移动端建议根据按钮大小按比例设置)
  5. 如果需要按钮边框也带圆角,找到stroke节点的TRectangle,同样设置CornerRadius为相同值
  6. (可选)如果要区分按钮的不同状态(正常、按下、禁用),可以分别修改Normal、Pressed、Disabled状态下的Rectangle圆角属性
  7. 最后把Button的StyleLookup属性设置为你自定义的样式名称,搞定!

方法二:动态代码设置(快速实现)

如果只是临时需要一个简单的圆角按钮,直接写代码更高效,不用折腾样式:
在Form的OnCreate事件或者按钮的OnApplyStyleLookup事件里添加以下代码:

procedure TForm1.FormCreate(Sender: TObject);
var
  LBackground: TRectangle;
  LStroke: TRectangle;
begin
  // 获取按钮的背景矩形
  LBackground := Button1.FindStyleResource('background') as TRectangle;
  if Assigned(LBackground) then
    LBackground.CornerRadius := 10; // 设置圆角值

  // 获取按钮的边框矩形(如果需要边框圆角)
  LStroke := Button1.FindStyleResource('stroke') as TRectangle;
  if Assigned(LStroke) then
    LStroke.CornerRadius := 10;
end;

注意:如果按钮的样式结构不同,FindStyleResource的参数可能需要调整,比如有些默认样式里背景叫fill,可以在样式编辑器里确认节点名称。

额外小提示

  • 移动端建议使用相对圆角值,比如根据按钮的高度按比例设置(比如按钮高度的1/4),这样在不同分辨率的设备上显示更协调
  • 如果想要椭圆按钮(比如圆形按钮),可以把CornerRadius设置为按钮高度的一半,同时确保按钮的宽高相等
  • 不要忘了设置按钮的ClipChildren属性为True,避免按钮内部的内容超出圆角范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:10:02