Win10 有个自带的软件:便签。

试着 FireMonkey 框架仿造它的界面。

界面目标

1. 每条便签显示为黄色背景,黑色字体;

2. 鼠标指过去,这个黄色的便签会颜色加重,鼠标离开颜色还原,有动态的效果。

实现方法小技巧

1. 用一个 Frame,里面放一个 Memo 用来做便签;界面上显示的多条便签,就创建多个 Frame 实例,并且设置它的 Align := Top 来实现多条一律从上往下排。

2. Memo 的背景色:请参考本博客前两天的一篇文章。

3. 鼠标指过去就变色:

3.1. 对于这个便签 Frame,最底层是一个托盘容器 Layout1;Memo1 放到它的上面。也就是:

Memo1.Parent := Layout1;
Memo1.Align := TAlignLayout.Client;

3.2. 拖一个 Rectangle1 过来放上面,罩在这个 Memo1 的上面,用来变色。注意它的摆放方式的代码:

Rectangle1.parent := Layout1;
Rectangle1.Align := TAlignLayout.Content; //这个值在 FireMonkey 里面有,VCL 里面没有。

3.3. 设置这个 Rectangle1 的透明度为 0.3 ( 1 为彻底不透明;0 为彻底透明)

3.4. 要设置所有摆放在 Layout1 上面的东西的 HitTest 为 False,包括上述 Memo1 和 Rectangle1;

3.5. 在 Layout1 的 OnMouseEnter 和 OnMouseLeave 里面写代码:

procedure TFrameMyNote.Layout1MouseEnter(Sender: TObject);
beginRectangle1.Visible := True; //显示这个半透明的 Rect,它本身有深灰颜色,叠加在 Memo1 上面,使得 Memo1 本身的颜色加深。
end;procedure TFrameMyNote.Layout1MouseLeave(Sender: TObject);
beginRectangle1.Visible  := False;  它不显示,直接显示底下的 Memo,颜色恢复。
end;

4. 这个 Memo1 仅仅用于显示文字内容,不做编辑。因此不想有个光标在里面闪烁,也不想用户无意中点进去,按键盘,把内容改了。因此需要设置:

Memo1.ReadOnly := True;  //无法修改它的内容。
Memo1.HitTest := False; //鼠标点不了它!

5. 如果需要修改上述便签的内容,或者新增一个便签,需要显示一个编辑界面,编辑界面同样是一个 Frame 里面放了一个 TMemo 控件。这个编辑界面如何显示出来?可以考虑模仿手机界面的方式,叠加这个界面在原来的界面顶上,用完点左上角的回退按钮关闭这个编辑界面返回原来的界面。

总结:

小技巧就是,要让一个东西随鼠标指过去颜色变深,鼠标离开颜色变回正常,以获得对鼠标的响应,可以给那个东西上面罩一个 TRectangle,设置其透明度让它半透明。然后在鼠标事件里面,设置这个 TRectangle 的 Visible 属性来改变它显示或者不显示。

FireMonkey 做界面的一个小技巧相关推荐

  1. 短视频的地方搞笑配音怎么做?分享一个小技巧,不会方言也能配

    短视频的地方搞笑配音怎么做?分享一个小技巧,不会方言也能配 各位小伙伴在刷短视频的时候,相信也经常会看到一些有趣的地方搞笑配音短视频,有趣的画面配上独具一格的地方方言,着实很轻易就可以让人哈哈大笑.那 ...

  2. 商场公园的宣传语音是怎么做的?一个小技巧来解决,还是真人发声

    商场公园的宣传语音是怎么做的?一个小技巧来解决,还是真人发声 在日常的生活当中,我们经常可以听到各种宣传语音,比如商场里面宣传折扣优惠的语音,再比如公园里面宣传爱护环境的语音等等.那么,这种商场公园的 ...

  3. 配音是怎么制作出来的,想做出让人惊艳的配音,只需一个小技巧

    配音是怎么制作出来的,想做出让人惊艳的配音,只需一个小技巧 配音,除了是一部分赖以为生的技能之外,也是很多小伙伴打发时间的娱乐方式.专业的配音演员可以让影视剧.动漫的内容拥有灵魂,也可以通过阅读有声书 ...

  4. Oracle中删除数据的一个小技巧

    在我带的某个Project中,在开发阶段需要Reload相同的Data到Oracle中来进行测试,因此需要不断的删除数据,简单的Delete操作似乎就OK了,但其实不然.我们到知道建表的时候需要Tab ...

  5. get一个小技巧,教你如何在typora写文章上传图片到博客上

    文章目录 get一个小技巧,教你如何在typora写文章上传图片到博客上 目录 一.前言 二.尝试方法 1.阿里云oss 2.gitee 3.metapic 4.github 三.总结 get一个小技 ...

  6. 不需要自己录音也能做好短视频配音,只需一个小技巧,get逼真配音

    不需要自己录音也能做好短视频配音,只需一个小技巧,get逼真配音 在做短视频的时候,很多小伙伴都会遇到需要为短视频配音的情况.有的小伙伴天生嗓音条件不错,或者声音比较有特色,于是他们就更愿意自己配音, ...

  7. python中template是什么意思啊_Python中Template使用的一个小技巧

    Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用. from string import Template s = Template("there ...

  8. 有没有测试女生暗恋的软件,教你一个小技巧就可以测试女生是否喜欢你!

    原标题:教你一个小技巧就可以测试女生是否喜欢你! 有个兄弟好不容易认识一个女孩,通过不懈努力,终于把她约出来.但是在约会过程当中不知道和女孩干什么,不知道什么时候可以干什么. 看着自己喜欢的女孩坐在自 ...

  9. ug计算机内存不足,你的UG内存不足你怎么办的呢?告诉你一个小技巧吧

    哈...是不是有时候UG卡到想砸电脑啊,别呀,好几千呢?砸了还要买新的是吧 今天小编就教你们一个小技巧吧,别再砸电脑了,伤不起伤不起呀 上面这张图是不是很眼熟啊,哈哈哈哈哈哈哈 对于这个的话以下的方法 ...

  10. 如何解决matlab保存图片为pdf时不完整问题【每天一个小技巧】

    本文结构 0. 引言 1. 问题描述 2. 解决方法 3. 总结 0. 引言 习惯使用matlab出图的人都会发现,当我们的图中有大量信息的时候,保存成的pdf是不完整的,总是缺一部分,是怎么回事呢? ...

最新文章

  1. html表单全选框,form表单里如何实现全选和全不选
  2. HTML5的新特性----拖放功能
  3. [简单题]换一个思维,代码简洁度就完全变了(Python实现)
  4. mysql需要下载调试_Mysql安装和调试
  5. javascript取随机数_查缺补漏一些 Javascript 的小技巧笔记
  6. 【概念信息】成本中心计划
  7. Python字符串截取值
  8. VTK:图片之ImageMirrorPad
  9. HTMLCSS 第三天 笔记
  10. 防止mysql拷贝_转载:mysql复制优化
  11. OS开发之Objective-C与JavaScript的交互
  12. Java+selenium之WebDriver的抛出异常分析(七)
  13. WIN7共享WIFI
  14. UCOSII 学习笔记(卢有亮视频相关习题)
  15. Python学习Day01
  16. Macchanger-更改mac地址
  17. 360浏览各模式及内核的使用说明
  18. linux脚本编程教程
  19. 谈谈智能设备的电池技术
  20. 项目管理中的边边角角 之一

热门文章

  1. matlab直方图 | 不用imhist循环实现,imhist检验
  2. 电子罗盘在终端的应用
  3. .xmind用什么软件打开_swf文件用什么打开 怎么把swf转换成mp4
  4. Day4--MATLAB简介
  5. Delphi 的并行计算
  6. 畅捷通(chanjet)T1各版本
  7. 【国土】国土“三调”,用这个方案就对了
  8. 2021年认证杯-数学建模
  9. java计算机毕业设计基于安卓Android的团务智慧管理APP
  10. PS批量制作获奖证书并导出PNG