活动中往往有抽奖环节,如何使用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)相关推荐

  1. css3抽奖转盘,从零制作CSS3抽奖大转盘

    今天的任务是做一个纯CSS3的还算比较漂亮的抽奖大转盘,也就是下图效果. 我只说思路和重要的CSS3代码. Paste_Image.png 外盘 外盘是指有彩灯的深橙色圆环,以及圆环的外边线. 外盘设 ...

  2. 用c语言写抽奖大转盘,iOS抽奖大转盘的二种实现方法

    有个朋友需要写个抽奖大转盘的功能,就让我帮忙写了下.我用了2种方法实现了效果,在这里和大家一起分享下. 一.一键转动大转盘 我一开始拿到手的是一堆的图片,然后自己花了点时间,搭建出美工要求的UI,接下 ...

  3. javaScript实现抽奖大转盘(一)

    今天试了试自己写个抽奖大转盘. 先是借了两张别人的图片: 下面是布局部分: <div class="round"><div class="box&quo ...

  4. 微信小程序独家秘笈之抽奖大转盘

    代码地址如下: http://www.demodashi.com/demo/14209.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  5. 抽奖大转盘-React-移动端

    抽奖大转盘-React-移动端 react安装 修改项目结构 配置路由 删除一些不必要的文件 大转盘 整理代码结构和一些静态资源 书写静态页面 移动端px-rem转换 静态页面 静态页面样式 抽奖大转 ...

  6. 优秀课程案例:使用Scratch制作一个抽奖大转盘方法二!

    点击上面微信号关注我关注我哟每天坚持早上9:00左右推送文章,争取做到日更,喜欢的可以设置星标,并分享点赞我们的文章,非常感谢大家的支持,您的点击的在看就是我们的动力! 昨天我们分享了一个抽奖大转盘: ...

  7. Redis 抽奖大转盘的实战示例

    本文主要介绍了Redis 抽奖大转盘的实战示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下.编程学习资料点击领取 目录 1. 项目介绍 2. 项目演示 3. 表结 ...

  8. jQuery实现简单抽奖大转盘

    上效果!!! 初始页面效果 点击开始后效果 上代码 <!DOCTYPE html> <html lang="en"> <head><met ...

  9. vue幸运抽奖大转盘的丑绝实现

    自己通过canvas+vue(vue不是必备的可以)实现的一个抽奖转盘,重点在实现逻辑,所以样式丑绝. 基本效果图,中间指针可以替换为图片 数据格式 转盘的分块由传入的数组长度确定,分为4,6,8块还 ...

最新文章

  1. 如果让AI根据文字画「抽象画」,那得成什么样?|DeepMind新算法
  2. python编程经典案例-精心整理!9个 Python 实用案例分享
  3. Javascript学习------内部对象 String Date event(重要)
  4. 安装Mongodb并解决用户授权问题
  5. matlab 配置mex 识别vs2015
  6. 【2018.4.7】模拟赛之三-ssl2384 字符串【字符串】
  7. java byte 正数最大_关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)...
  8. vim使用指北 ---- Global Replacement
  9. 分布式常见面试题整理
  10. 三菱FX3S,FX3G,FX3U序列PLC控制器编程手册-基本应用指令篇下载
  11. 系统安装-000 基础二:UEFI+GPT和BIOS+MBR互换(免重装系统,无损数据)
  12. 食堂刷卡消费系统服务器,食堂一卡通消费系统如何使用
  13. 虚拟内存设置(可扩展板载内存)
  14. 跟小白学python网络爬虫实例2
  15. 第17节 三个败家子(17)——少侠孙坚
  16. 使用HoloLens 2调用深度相机和前置摄像头
  17. 【Linux-GNU编译器套件(gcc/g++/gfortran)离线编译安装】
  18. 美团新用户0.99充10元话费,秒到账,不实名不绑卡,超简单!
  19. Vb下调用Help文件 (转)
  20. 紧急提醒!黑客正利用假 ChatGPT 来推送恶意软件

热门文章

  1. 编程实践(Pandas)Task10
  2. Windows 10 如何查看无线 (WIFI) 密码
  3. Cocos实战案例:高手解析《捕鱼达人3》怎样玩3D VR
  4. C++——数据结构 简单计算器
  5. C陷阱与缺陷之词法陷阱
  6. 有java基础学习大数据该如何规划
  7. 马小峰:区块链是一种“社会技术”,这个行业我们不能等待
  8. 951_WSL中emacs在org-mode中插入windows剪切板图片
  9. Db2: db2look导出的表定义无法用于创建表-SQL1860N Reason code = “5“
  10. 文字转换表格大法、批量去除选择题选项