火猴之抽奖大转盘(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) 的相关文章

  • 如何检测FMX列表视图何时滚动到底部?

    我正在开发 FiremonkeyTListView显示搜索结果 此列表一次加载 25 个项目 但可能会显示数百个项目 我需要检测用户何时向下滚动到底部 以便我可以获取接下来的 25 个项目以显示在列表中 但是 我找不到合适的属性来确定这一点
  • Delphi xe7 android 中的 Messagedlg

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

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

    我在使用 FMX XE3 Windows 设置托盘图标时遇到问题 我使用的代码可以在无数线程中找到 但我没有得到图标工作的消息处理 为了说明这一点 我创建了一个测试应用程序 它在 FormCreate 中设置 TrayIcon 数据并使用按
  • 打开 pdf 文件时,TwebBrowser 缩放/手势不适用于 XE4 中的 firemonkey/iO

    我想在 iOS 应用程序中显示 PDF 到目前为止我找到的唯一方法是在 TwebBrowser 中打开它 A 默认以 适合页面宽度 缩放显示 B 没有 缩放 功能 WebBrowser1 Navigate file mypdf pdf Ho
  • 使用便携式打印机通过蓝牙与 Delphi XE7 连接

    我正在尝试与世宇LK P32通过蓝牙打印机 为此 我正在使用德尔福XE7 我用 Delphi 做了一些例子 但没有成功 我将配对的打印机放在平板电脑上 即使这样我也无法连续打印 当我打印某些内容时 必须重新启动应用程序 以便我可以再次打印某
  • 如何在FMX(火猴)中加载大位图

    我正在尝试创建一个需要加载的漫画查看器JPG像 1000 16000 这样的大尺寸图像 我的应用程序是在 delphi FMX 中 我已经尝试过使用TImage TImageViewer TImageControl但他们都使用TBitmap
  • XE7更新1和iOS 8.1模拟器不工作

    在 Delphi XE7 中将目标设置为 iOS 8 1 Simulator 时 应用程序崩溃 它部署得很好 也可以运行 但是 firemonkey 启动屏幕仍然打开并且永远不会完成加载 这种情况发生在一个普通的新移动应用程序中 只在表单中
  • 点击事件被列表视图父项捕获

    我正在编写一个在 Firemonkey 中使用的自定义开关对象TListView每个项目的控制 除了一个奇怪的故障之外 一切都按预期进行 当用户单击其中一项而不是特定的开关对象时 它无论如何都会切换开关 我假设MouseDown当用户单击列
  • Delphi - 如何将位图保存到 SQLite 数据库中的 BLOB 字段

    我正在尝试将 TBitmap 图像数组添加到 ClientDataSet 的不同记录 在 ftBlob 字段中 然后将这些记录保存到 SQLite 数据库 BLOB 字段 DocImage 是数据库中的必填字段 但是 我的代码似乎根本没有将
  • 使用 Delphi Tokyo 10.2 通过 GetObjectProp 获取 TextSettings.Font.Style 属性

    我使用Delphi的GetObjectProp函数来获取表单组件的属性 我获取了几个组件的所有属性 但是我无法获取TLabel等组件的TextSettings Font Style 粗体 斜体 属性例如 我需要知道组件文本是粗体还是斜体 我
  • 如何托管与另一个 FireMonkey 表单客户端对齐的 FireMonkey 表单客户端?

    我的 Delphi XE7 FireMonkey 项目正在增加控件 自然地我已经转向使用框架 当我在 VCL 中使用框架时 有时我只是选择将一个 复杂的 VCL 表单托管在另一个表单中 在表单的 OnShow 中创建和显示它 并将其设置为客
  • 是否有 FMX 函数可以在运行时设置 TImage 的透明颜色?

    我在 FMX FireMonkey 的表单上有一个 TImage 我想在运行时将位图加载到 TImage 中 其中位图应该具有由位图中第一个像素的颜色定义的透明背景 该颜色可能因位图而异 我知道如何在设计时通过使用 TImage 的 Mul
  • 有 Delphi XE2 样式库吗?

    在 XE2 中 有一个新函数 styles 用于 VCL vsf 和 Firemonkey styles 有些是在C Program Files Embarcadero RAD Studio 9 0 Redist styles目录 创建新样
  • Firemonkey相机组件太慢

    我有一个问题TCameraComponent在安卓上 我第一次运行该应用程序时 相机正常 但如果我停止TCameraComponent再次启动 相机变得太慢 对正在发生的事情有什么想法吗 CameraComponent1 Active fa
  • Firemonkey - 更新视觉组件

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

    我在表单之间导航时遇到问题 我使用 Delphi XE5 创建了一个 Android Firemonkey 移动应用程序 我目前有一个登录表单和主表单 现在我想要有关如何处理登录表单以显示在主表单之前的建议 在 项目选项 中的表单下 选择要
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • 为什么 TImage 旋转我的图像?

    编写一个移动应用程序 它从安全网站提取图像 如下所示 第一个图像 提取不正确 注意网络版本与移动版本 第二个图像在网站上正确显示 但 Delphi TImage 由于某种原因正在旋转它我不明白为什么 旋转设置为 0 并且在 TImage 组
  • 在 Firemonkey 中使用 TTreeView 进行拖放

    我正在使用 C Builder 10 2 2 Tokyo 和 FireMonkey FMX 我想添加拖放功能TTreeView 因此用户可以重新排列树项目的顺序 我已经添加了一个处理程序TTreeView OnMouseDown事件 基于这

随机推荐

  • 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