火猴之抽奖大转盘(firemonkey)

2023-11-08

活动中往往有抽奖环节,如何使用firemonkey制作一个抽奖的程序呢?

效果:

思路:

    1、rectangle+line+text作为可以转动的转盘和指针以及按钮。

    2、pie 共 10个作为不同颜色的底。(每个startangle和endangle不同,fill.color)

 

 name

startangle

endangle

Fill.Color

pie 1

0

36

#FF2D71DC

pie 2

36

72

#FFFEDE71

pie 3

72

108

#FFFE6400

pie 4

108

144

#FFFEDE71

pie 5

144

180

#FF99CE40

pie 6

180

216

#FFFEDE71

pie 7

216

252

#FFA63BC7

pie8

252

288

#FFFEDE71

pie9

288

324

#FFD9004F

pie10

324

360

#FFFEDE71

    3、Arc作为最外圈。

    4、使用floatanimation来控制rectangle的转动角度。 

 

组件属性设置:

Text1:

object Text1: TText
  Align = Center
  Cursor = crHandPoint
  Size.Width = 113.000000000000000000
  Size.Height = 89.000000000000000000
  
  Text = 开始抽奖
  TextSettings.Font.Family = 琥珀
  TextSettings.Font.Size = 42.000000000000000000
  TextSettings.FontColor = xFFB90241
  OnClick = Text1Click
  object ShadowEffect1: TShadowEffect //阴影
    Trigger = 'IsMouseOver=true'
  end
  object FloatAnimation1: TFloatAnimation //移动文字的横坐标
    Duration = 0.200000002980232200
    PropertyName = 'Position.X'
    StartValue = 28.000000000000000000
    StopValue = 30.000000000000000000
    Trigger = 'IsMouseOver=true'
    TriggerInverse = 'IsMouseOver=false'
  end
  object FloatAnimation2: TFloatAnimation//移动文字的纵坐标
    Duration = 0.200000002980232200
    PropertyName = 'Position.Y'
    StartValue = 40.000000000000000000
    StopValue = 43.000000000000000000
    Trigger = 'IsMouseOver=true'
    TriggerInverse = 'IsMouseOver=false'//反向动作
  end
 
end

circle1: 

 

object Circle1: TCircle
  Align = Center
  Fill.Color = xFFFCED73
  Size.Width = 170.000000000000000000
  Size.Height = 170.000000000000000000 
  Stroke.Color = xFFD11702
  Stroke.Thickness = 0.000000000000000000
end

 

circle2:

​​​​object Circle2: TCircle //外边为红色,里面填充色为黄色
  Align = Center
  Fill.Color = xFFFCED73
  Size.Width = 249.000000000000000000
  Size.Height = 209.000000000000000000 
  Stroke.Color = xFFD11702
  Stroke.Thickness = 20.000000000000000000  
  object Line1: TLine //柱状指针
    Cursor = crHandPoint
    LineType = Diagonal
    Position.X = 117.000000000000000000
    Position.Y = -32.000000000000000000
    Size.Width = 17.000000000000000000
    Size.Height = 113.000000000000000000   
    Stroke.Color = xFFD11702
    Stroke.Thickness = 20.000000000000000000
  end
  object FloatAnimation5: TFloatAnimation //动画组件来控制圆盘2的旋转角度
    Duration = 3.000000000000000000
    Interpolation = Quadratic //渐变加速而不是线性
    PropertyName = 'RotationAngle'
    StartValue = 0.000000000000000000
    StopValue = 36000.000000000000000000
  end
end

pie1~10 :

object Pie1: TPie
  Align = Center //居layout容器的中央
  Fill.Color = xFF2D71DC //10个颜色,1,3,5,7,9颜色不同,2,4,6,8,10颜色相同
  Size.Width = 476.999938964843800000
  Size.Height = 476.999969482421900000
  Size.PlatformDefault = False
  Stroke.Thickness = 0.000000000000000000
  StartAngle = 0.000000000000000000 //开始角度不同
  EndAngle = 36.000000000000000000  //结束角度不同
 
end

Arc1:

object Arc1: TArc
  Align = Center
  Size.Width = 477.000000000000000000 //x同y大小一样
  Size.Height = 477.000000000000000000
  Stroke.Kind = Gradient //颜色渐变色
  Stroke.Gradient.Points = <
    item
      Color = xFFFA8E36
      Offset = 0.000000000000000000
    end
    item
      Color = xFFDE1E09
      Offset = 1.000000000000000000
    end>
  Stroke.Gradient.StartPosition.Y = 0.080450206995010380
  Stroke.Gradient.StopPosition.X = 1.000000000000000000
  Stroke.Gradient.StopPosition.Y = 0.919549763202667300
  Stroke.Thickness = 25.000000000000000000
  Stroke.Join = Round
  EndAngle = 360.000000000000000000 //圆形

  object ShadowEffect2: TShadowEffect //加阴影
    Distance = 3.000000000000000000
    Direction = 45.000000000000000000
    Softness = 0.300000011920929000
    Opacity = 0.600000023841857900
    ShadowColor = claBlack
  end
end

代码:

procedure TForm3.Text1Click(Sender: TObject);
begin
  FloatAnimation5.Enabled := false;
  self.FloatAnimation5.StopValue := 15 * Random(1000); //随机设置角度
  self.FloatAnimation5.Enabled := True;
//Self.GradientAnimation1.Enabled:=True;
end;

代码下载:

链接:https://pan.baidu.com/s/1oH2mAWWg1iFBki134uddGw 
提取码:o0l0 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

火猴之抽奖大转盘(firemonkey) 的相关文章

  • 如何在Delphi XE3中解析JSON对象中的指定值?

    我的 JSON 对象如下所示 destination addresses Paris France origin addresses Amsterdam Nederland rows elements distance text 504 k
  • FireMonkey 应用程序中是否有可使用的 Web 浏览器组件?

    对于 Delphi VCL 有TWebBrowser和一些第三方组件 例如TEmbeddedWebBrowser可用于浏览网页 有没有类似的网络浏览器组件 但对于火猴框架在德尔福XE2 最好有 Windows 和 Mac 支持 您可以使用C
  • 关于 Firemonkey (Delphi) 中的 TidHttp、mshtml、ActiveX、COMObj

    我正在审查以下有趣的文章 使用 Delphi 从 HTML 页面中提取链接 我在 Firemonkey 中进行了测试 它非常有用 但是此代码使用来自 Mshtml ActiveX 和 COMObj 的对象 所以我的问题是 上面的这些对象是否
  • 加载自定义 True Type 字体

    在 Mac Firemonkey 应用程序 Delphi XE7 中 如何加载自定义 TrueType 字体 对于 Windows 我的应用程序安装程序将我的字体添加到 Windows 本身 我已经使用 FPC Lazarus 完成了此操作
  • 使用 TObject 后代调用 std::vector::push_back 时,C++ Builder bcarm 错误

    我有一些简单的 C 代码 无法由 C Builder 10 1 Berlin 的基于 Clang 的 C 11 编译器 bccaarm 编译 这是代码 TComponent Comp new TComponent this std vect
  • Delphi Firemonkey 跨平台 - 传递 Windows 句柄的通用方法

    我正沉浸在我的第二个适用于 Windows 和 OSX 的 Firemonkey 应用程序中 并慢慢地转换我的函数库以处理跨平台问题 我正在尝试创建一个通用的 SelectDirectory 函数 它将运行 Windows 或 OSX 平台
  • Delphi xe7 android 中的 Messagedlg

    我只是想执行在安装Delphi xe7期间给出的示例 即Android平台上的MessageAlerts 不幸的是它不起作用 它给出了以下错误消息 该平台未实现阻止对话框 procedure TMessageAlertsForm btnMu
  • 缺少 .bpl 文件

    编译 FireMonkey 项目并在另一台 PC 上执行该应用程序后 我遇到了错误 rtl190 bpl 丢失 所以我搜索了谷歌 找到了对我不起作用的 解决方案 它说我应该取消选中 与动态 RTL 链接 和 与 Delphi 运行时链接 事
  • 在 Delphi XE2 FireMonkey 中 - 如何在按下按钮后更改按钮的颜色

    我只想在按下按钮后更改按钮的颜色 我必须使用 样式 来执行此操作还是 您可以更改button StyleLookup属性来更改样式 颜色 您需要将新样式添加到样式簿中 从按钮的鼠标右键菜单中选择 编辑自定义样式 更改背景下 TRectang
  • Firemonkey TTabControl 可以复制 VCL TPageControl.OnChanging 事件吗?

    我正在运行 Delphi Dx 西雅图 在 Delphi VCL 的 TPageControl 中 有一个 onChanging 事件 您可以在其中阻止页面控件更改选项卡的 procedure TForm1 pgc1Changing Sen
  • Firemonkey T编辑高度

    我正在使用 Delphi Seattle 我的应用程序适用于 Windows 桌面 我正在尝试更改 TEdit 的字体大小 因此高度也被修改 在设计时一切正常 但当我运行应用程序时 TEdit 会忽略高度修改并剪切文本 我试图找到Fixed
  • 有没有办法用 FireMonkey 添加提示或工具提示?

    我已经搜索过但找不到任何东西 有没有办法用 FireMonkey 添加提示或工具提示 是否有可用的组件可以实现此目的 理想情况下 我正在寻找这样的东西 标注类型工具提示 对于搁置此问题的版主 我正在寻找有关如何实现此目标的源代码行 而不是购
  • 如何在其自身事件中释放控件?

    我有一个清单TPanels在 FMX 应用程序中 如果我单击面板 我想释放它 直接在 Onclick 处理程序中释放它们不是正确的方法 因为我遇到了访问冲突 我不想使用windowsmessages 推荐于如何释放其事件处理程序内部的控制权
  • 如何在Firemonkey中绘制虚线?

    我想在 Firemonkey 项目中的 TPaintbox 画布上绘制点状网格 结果应该如下所示 首先 我想我会绘制垂直虚线 然后绘制水平虚线 因此考虑到这一点 我尝试先绘制一条线 以使外观恰到好处 这就是我尝试过的 Canvas Stro
  • 类分割错误 (11)

    请按照以下步骤操作 创建新的Firemonkey Moblie Application Add TGeustureManager表单的组成部分 Add 2 TButton表单的组件 Button1 Text Button1 做某事 Butt
  • FireMonkey 控件是否具有与 VCL Invalidate() 等效的方法?

    我正在创建一些自定义 FireMonkey GUI 控件 组件需要更新以响应用户交互 VCL 控件可以调用 Invalidate 将其放入队列中进行重绘 FireMonkey 有等效的方法吗 FireMonkey 控件有一个 Repaint
  • 有 Delphi XE2 样式库吗?

    在 XE2 中 有一个新函数 styles 用于 VCL vsf 和 Firemonkey styles 有些是在C Program Files Embarcadero RAD Studio 9 0 Redist styles目录 创建新样
  • 在其事件处理程序中删除 FMX 对象

    我有以下组件 tncrdragdata tframedscrollbox tdragdata tgroupbox 主要思想是将它们组合起来并将它们用作列表框 我需要这样 该组框包含五个tedit 一个 tcombobox 和一个tbutto
  • 德尔福XE5安卓。硬件后退按钮按下

    如何模拟硬件后退按钮按下来关闭应用程序 我需要通过代码关闭应用程序 但 Application Terminate Close Hide 和 DisposeOf 不起作用 所以我想到模拟硬件后退按钮按下来实现我的目标 IFDEF ANDRO
  • Firemonkey - 更新视觉组件

    我们从版本 1 开始就使用 Firemonkey 但仍然发现更新当前在屏幕上可见的组件很困难 在 Firemonkey 中请求重画的 方式 有很多 也许太多了 应用样式 ApplyStyle 事件 主要是当它在屏幕上可见时 请求 repai

随机推荐

  • Vue常见简写 “:“ , “@“ , “#“ :帮助刚入行的伙伴快速看懂代码

    提示 本文仅仅是对Vue中比较常见的简写进行总结 适合刚入行有时看不懂代码的朋友 目录 文章目录 前言 一 是什么 1 是什么意思 2 怎么使用 二 是什么 1 是什么意思 2 怎么使用 三 是什么 1 是什么意思 2 怎么使用 总结 前言
  • JDBC 学习笔记(基础)

    示意图 目录 创建 JDBC 应用 例子 通过本地协议纯 Java 驱动程序实现JDBC 代码具体步骤 1 注册驱动 2 建立与数据库的连接 3 获取执行SQL语句的对象 Statement 4 定义执行 SQL 语句 5 操作结果集对象
  • 100. Same Tree

    Definition for a binary tree node struct TreeNode int val TreeNode left TreeNode right TreeNode int x val x left NULL ri
  • 【Java】SpringBoot使用AOP进行日志解析打印+系统异常全局处理配置

    文章目录 前言 一 导入Lombok 二 创建日志打印Model 三 创建日志切面工具类 四 需要用到的一些常量类 五 创建接口请求切面 六 系统异常全局配置 总结 前言 为了方便项目部署在服务器之后 当出现BUG以及某些特殊需求时 会因为
  • Docker 笔记(全)

    1 关于Docker 1 1 概念 Docker 是一个开源的应用容器引擎 基于Go 语言 并遵从 Apache2 0 协议开源 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中 然后发布到任何流行的 Linu
  • 运算符之算术运算符、关系运算符、逻辑运算符、复合赋值运算符、其他运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号 C 有丰富的内置运算符 分类如下 算术运算符 关系运算符 逻辑运算符 复合赋值运算符 位运算符 其他运算符 运算符优先级 由高到低 类别 运算符 结合性 后缀 gt 从左到右 一元 ty
  • python学得好 监狱进的早_蟒周刊-403-监狱中学 Python 改变人生

    200115 Zoom Quiet 大妈 用时 42 分钟 完成快译 200115 Zoom Quiet 大妈 用时 17 分钟 完成格式转抄 Ned was getting reports for a mysterious disk I
  • 铨顺宏RFID:应用超高频RFID技术智能档案管理系统

    根据超高频率RFID技术性智能化档案智能管理系统将改变这一现况 根据选用先 进的超高频率RFID自动检索技术应用和计算机系统技术性 以超高频率RFIDrfid标签做为信息储存媒体并黏贴在档案袋上 在超高频率RFID集成ic中储存该档案的基本
  • 看完这篇 教你玩转渗透测试靶机vulnhub——FunBox2(ROOKIE)

    Vulnhub靶机FunBox2 ROOKIE 渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 FTP匿名访问 暴力破解 SSH私钥登入获取Shell Sudo提权
  • YOLO V4论文解读

    YOLO V4论文解读 一 YOLOV3回顾 二 YOLOV4中 三 Bag of freebies 数据扩充 模拟对象遮挡 结合多幅图像进行数据扩充 解决类别不平衡 label smoothing bbox Yolov4 use 四 Ba
  • java 字符串示例

    概述 最近项目上 需求 需要Android端在一段字符串分包处理 在此做个笔录 1 code public class Main public static void main String args System out println
  • mysql 1786_mysql错误:Statement violates GTID consistency

    在MYSQL中 执行建表语句时CREATE TABLE aaaa AS SELECT FROM menu 报 错误代码 1786 Statement violates GTID consistency CREATE TABLE SELECT
  • 训练loss不下降的原因总结

    表现 训练过程中loss值一直震荡 没有下降趋势 原因一 梯度消失 多因为网络深度过深 接近输入层的参数 梯度过小 解决方法 调整网络 激活函数relu batch normal 残差网络等 原因二 训练数据分布不均匀 这种情况对训练数据s
  • 力扣:350.两个数组的交集 II

    力扣 350 两个数组的交集 II 题目 给你两个整数数组 nums1 和 nums2 请你以数组形式返回两数组的交集 返回结果中每个元素出现的次数 应与元素在两个数组中都出现的次数一致 如果出现次数不一致 则考虑取较小值 可以不考虑输出结
  • 大数据课程I3——Kafka的消息流与索引机制

    文章作者邮箱 yugongshiye sina cn 地址 广东惠州 本章节目的 掌握Kafka的消息流处理 掌握Kafka的索引机制 掌握Kafka的消息系统语义 一 Kafka消息流处理 1 Producer 写入消息 流程说明 1 p
  • yolov5转tensorrt c++

    目录 yolo tensorrt 下载weights模型 onnx tensorrt project 编译问题解决 依赖项 自己生成weights模型 以及加载报错解决 生成引擎报错解决 批量预测 自动创建引擎 解决检测框乱的问题 提速 b
  • 对接微信米大师虚拟支付2.0文档

    话不多说 上代码 支付密钥算法 public static String calcPaySig String uri String postBody String appKey String needSignMsg uri postBody
  • 前端框架之Vue学习(一)

    1 Vue简介 一 vue 是一套用于构建用户界面的渐进式框架 二 Vue的核心特点 1 相应的数据变化 当数据发生改变 gt 视图自动更新 2 组合的视图组件 UI页面映射为组件树 划分组件可维护 可复用 可测试 三 MVC和MVVM M
  • 计算机中丢失ucrtbased.dll

    如果在运行某软件或编译程序时提示缺少 找不到ucrtbased dll等类似提示 在 https cn dll files com ucrtbased dll html 下载 解压 如果您的系统是64位的请将dll文件复制到C Window
  • 火猴之抽奖大转盘(firemonkey)

    活动中往往有抽奖环节 如何使用firemonkey制作一个抽奖的程序呢 效果 思路 1 rectangle line text作为可以转动的转盘和指针以及按钮 2 pie 共 10个作为不同颜色的底 每个startangle和endangl