火猴之抽奖大转盘(firemonkey)
活动中往往有抽奖环节,如何使用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: TTextAlign = CenterCursor = crHandPointSize.Width = 113.000000000000000000Size.Height = 89.000000000000000000Text = 开始抽奖TextSettings.Font.Family = 琥珀TextSettings.Font.Size = 42.000000000000000000TextSettings.FontColor = xFFB90241OnClick = Text1Clickobject ShadowEffect1: TShadowEffect //阴影Trigger = 'IsMouseOver=true'endobject FloatAnimation1: TFloatAnimation //移动文字的横坐标Duration = 0.200000002980232200PropertyName = 'Position.X'StartValue = 28.000000000000000000StopValue = 30.000000000000000000Trigger = 'IsMouseOver=true'TriggerInverse = 'IsMouseOver=false'endobject FloatAnimation2: TFloatAnimation//移动文字的纵坐标Duration = 0.200000002980232200PropertyName = 'Position.Y'StartValue = 40.000000000000000000StopValue = 43.000000000000000000Trigger = 'IsMouseOver=true'TriggerInverse = 'IsMouseOver=false'//反向动作endend
circle1:
object Circle1: TCircleAlign = CenterFill.Color = xFFFCED73Size.Width = 170.000000000000000000Size.Height = 170.000000000000000000 Stroke.Color = xFFD11702Stroke.Thickness = 0.000000000000000000
end
circle2:
object Circle2: TCircle //外边为红色,里面填充色为黄色Align = CenterFill.Color = xFFFCED73Size.Width = 249.000000000000000000Size.Height = 209.000000000000000000 Stroke.Color = xFFD11702Stroke.Thickness = 20.000000000000000000 object Line1: TLine //柱状指针Cursor = crHandPointLineType = DiagonalPosition.X = 117.000000000000000000Position.Y = -32.000000000000000000Size.Width = 17.000000000000000000Size.Height = 113.000000000000000000 Stroke.Color = xFFD11702Stroke.Thickness = 20.000000000000000000endobject FloatAnimation5: TFloatAnimation //动画组件来控制圆盘2的旋转角度Duration = 3.000000000000000000Interpolation = Quadratic //渐变加速而不是线性PropertyName = 'RotationAngle'StartValue = 0.000000000000000000StopValue = 36000.000000000000000000end
end
pie1~10 :
object Pie1: TPieAlign = Center //居layout容器的中央Fill.Color = xFF2D71DC //10个颜色,1,3,5,7,9颜色不同,2,4,6,8,10颜色相同Size.Width = 476.999938964843800000Size.Height = 476.999969482421900000Size.PlatformDefault = FalseStroke.Thickness = 0.000000000000000000StartAngle = 0.000000000000000000 //开始角度不同EndAngle = 36.000000000000000000 //结束角度不同end
Arc1:
object Arc1: TArcAlign = CenterSize.Width = 477.000000000000000000 //x同y大小一样Size.Height = 477.000000000000000000Stroke.Kind = Gradient //颜色渐变色Stroke.Gradient.Points = <itemColor = xFFFA8E36Offset = 0.000000000000000000enditemColor = xFFDE1E09Offset = 1.000000000000000000end>Stroke.Gradient.StartPosition.Y = 0.080450206995010380Stroke.Gradient.StopPosition.X = 1.000000000000000000Stroke.Gradient.StopPosition.Y = 0.919549763202667300Stroke.Thickness = 25.000000000000000000Stroke.Join = RoundEndAngle = 360.000000000000000000 //圆形object ShadowEffect2: TShadowEffect //加阴影Distance = 3.000000000000000000Direction = 45.000000000000000000Softness = 0.300000011920929000Opacity = 0.600000023841857900ShadowColor = claBlackend
end
代码:
procedure TForm3.Text1Click(Sender: TObject);
beginFloatAnimation5.Enabled := false;self.FloatAnimation5.StopValue := 15 * Random(1000); //随机设置角度self.FloatAnimation5.Enabled := True;
//Self.GradientAnimation1.Enabled:=True;
end;
代码下载:
链接:https://pan.baidu.com/s/1oH2mAWWg1iFBki134uddGw
提取码:o0l0
火猴之抽奖大转盘(firemonkey)相关推荐
- css3抽奖转盘,从零制作CSS3抽奖大转盘
今天的任务是做一个纯CSS3的还算比较漂亮的抽奖大转盘,也就是下图效果. 我只说思路和重要的CSS3代码. Paste_Image.png 外盘 外盘是指有彩灯的深橙色圆环,以及圆环的外边线. 外盘设 ...
- 用c语言写抽奖大转盘,iOS抽奖大转盘的二种实现方法
有个朋友需要写个抽奖大转盘的功能,就让我帮忙写了下.我用了2种方法实现了效果,在这里和大家一起分享下. 一.一键转动大转盘 我一开始拿到手的是一堆的图片,然后自己花了点时间,搭建出美工要求的UI,接下 ...
- javaScript实现抽奖大转盘(一)
今天试了试自己写个抽奖大转盘. 先是借了两张别人的图片: 下面是布局部分: <div class="round"><div class="box&quo ...
- 微信小程序独家秘笈之抽奖大转盘
代码地址如下: http://www.demodashi.com/demo/14209.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...
- 抽奖大转盘-React-移动端
抽奖大转盘-React-移动端 react安装 修改项目结构 配置路由 删除一些不必要的文件 大转盘 整理代码结构和一些静态资源 书写静态页面 移动端px-rem转换 静态页面 静态页面样式 抽奖大转 ...
- 优秀课程案例:使用Scratch制作一个抽奖大转盘方法二!
点击上面微信号关注我关注我哟每天坚持早上9:00左右推送文章,争取做到日更,喜欢的可以设置星标,并分享点赞我们的文章,非常感谢大家的支持,您的点击的在看就是我们的动力! 昨天我们分享了一个抽奖大转盘: ...
- Redis 抽奖大转盘的实战示例
本文主要介绍了Redis 抽奖大转盘的实战示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下.编程学习资料点击领取 目录 1. 项目介绍 2. 项目演示 3. 表结 ...
- jQuery实现简单抽奖大转盘
上效果!!! 初始页面效果 点击开始后效果 上代码 <!DOCTYPE html> <html lang="en"> <head><met ...
- vue幸运抽奖大转盘的丑绝实现
自己通过canvas+vue(vue不是必备的可以)实现的一个抽奖转盘,重点在实现逻辑,所以样式丑绝. 基本效果图,中间指针可以替换为图片 数据格式 转盘的分块由传入的数组长度确定,分为4,6,8块还 ...
最新文章
- 如果让AI根据文字画「抽象画」,那得成什么样?|DeepMind新算法
- python编程经典案例-精心整理!9个 Python 实用案例分享
- Javascript学习------内部对象 String Date event(重要)
- 安装Mongodb并解决用户授权问题
- matlab 配置mex 识别vs2015
- 【2018.4.7】模拟赛之三-ssl2384 字符串【字符串】
- java byte 正数最大_关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)...
- vim使用指北 ---- Global Replacement
- 分布式常见面试题整理
- 三菱FX3S,FX3G,FX3U序列PLC控制器编程手册-基本应用指令篇下载
- 系统安装-000 基础二:UEFI+GPT和BIOS+MBR互换(免重装系统,无损数据)
- 食堂刷卡消费系统服务器,食堂一卡通消费系统如何使用
- 虚拟内存设置(可扩展板载内存)
- 跟小白学python网络爬虫实例2
- 第17节 三个败家子(17)——少侠孙坚
- 使用HoloLens 2调用深度相机和前置摄像头
- 【Linux-GNU编译器套件(gcc/g++/gfortran)离线编译安装】
- 美团新用户0.99充10元话费,秒到账,不实名不绑卡,超简单!
- Vb下调用Help文件 (转)
- 紧急提醒!黑客正利用假 ChatGPT 来推送恶意软件
热门文章
- 编程实践(Pandas)Task10
- Windows 10 如何查看无线 (WIFI) 密码
- Cocos实战案例:高手解析《捕鱼达人3》怎样玩3D VR
- C++——数据结构 简单计算器
- C陷阱与缺陷之词法陷阱
- 有java基础学习大数据该如何规划
- 马小峰:区块链是一种“社会技术”,这个行业我们不能等待
- 951_WSL中emacs在org-mode中插入windows剪切板图片
- Db2: db2look导出的表定义无法用于创建表-SQL1860N Reason code = “5“
- 文字转换表格大法、批量去除选择题选项