[教程]FMX 下将当前控件的相对坐标转换为屏幕坐标

好吧,在 VCL 里简单的 ClientToScreen,到了 FMX 就变得不是那么简单了。这就牵涉到了 FMX 的坐标体系,咱们不在这里的展开说明,仅提供实现的介绍: 1、调用控件的 LocalToAbsolute 将控件坐标转换为绝对坐标,这个绝对坐标是相对于 Form 的,所以不要以为它是屏幕坐标,这是人很容易

[FMX] FMX 动画类的一个辅助增强

本增强的目的是解决动画对象只支持 published 的有效的几种属性的问题,确切的说,这是一个适配器,通过匿名函数建立与非 published 属性的适配。我在 [FMX] Delphi 中 TAnimation 设计的几点值得商榷的地方 一文中讨论了 FMX 动画支持类的一些值得商榷的地方和改动,而这个增强从另一个

[FMX] QDAC 新增 FMX VirtualTreeView 实现

好吧,我本来不想在 QDAC 里添加 UI 相关的东西,不过 FMX 的树实在让人不爽,等 VirtualTreeView 的 FMX 版也等不到,FMX 的闭源实现到是有一些,但根据群友的反馈,也就那样吧。所以狠狠心,咬咬牙,花了近一周的时间,自己写了一个,命名为 TQVirtualTreeView,自己测试的结果,

[FMX]在 QPlugins 中 VCL 宿主使用 FMX DLL 需要手动处理的问题说明

由于众所周知的原因,FMX 的 DLL 在 FreeLibrary 时,会出现 AV 异常,这实际上包含了两方面的原因:  FreeLibrary 时,未正确清理内部的计时器,造成 FreeLibrary 后,内部的计时器到指定的时间点后仍然运行,结果就出现了 AV 错误。  GDI+ 初始化和清理只能在宿主程序中执行

[FMX]在 FMX 程序中绘制单像素宽度的直线

在前面的一篇文章中,我介绍了一种绘制低品质直线的方法,但是这么做,效率上肯定要打折扣的。在和群里的朋友们一顿交流折腾后,对于绘制水平或垂直的直线,现在有两种更简单的办法来解决这一问题: 办法一:使用 FillRect 来代替 DrawLine 绘制,矩形区域的大小注意要在相应的方向上加 0.5 个像素。 [crayon

[FMX]FMX 编写 Windows 平台下 DLL 需要解决的两个问题小结

1、在 FMX.Platform.Win 中,平台退出时,没有正确释放 FApplicationHWND 窗口,这样子造成模块释放后,窗口依然存在,所以这个需要修改 FMX.Platform.Win 的代码,以修正这一问题; 2、在 FMX.Forms.Win 中, 平台退出时,没有正确释放 FTimerActionH

[FMX]在你的跨平台应用中使用剪贴板进行复制粘贴

VCL 中如何使用剪贴板咱就不说了,FMX 做为一个新的框架,提供了跨平台的剪贴板支持。FMX 对剪贴板的支持来自两个接口: IFMXClipboardService:位于 FMX.Platform.pas 中

IFMXExtendedClipboard

[FMX] 在 FMX 中手动控制打印机打印内容

好吧,先说下版本:10.1.2,然后说遇到的两个 Bug: 一、字体大小的问题 打印机的字体大小错误,比如设置为10.5(五号字的大小,3.7mm),你会发现打印出的字特别小,根本与实际设置不搭别。所以在 10.1.2 时,输出文本时的字体大小需要按以下公式计算下: 字体磅数 × DPI/72 然后就没有问题了,比如现

[FMX]增强画布的 DrawBitmap 函数

不多说话,直接上源码:

参数说明: R :绘制目标区域 ABitmap:要绘制的位图内容 ADoFit:是否按比例自适应目标区域大小 AHighSpeed:是否高速绘图,如果你是要绘制边缘清晰的位图,如二维码,那就要设置为 true,否则设置为 fals

[FMX]获取控件样式中的指定项目以便进行调节

FMX 的样式丰富了我们的设计,但我们在运行时想改变特定的Style的属性却没有直接的办法,下面的函数提供了一种途径,让你找到特定的样式,然后进行处理。

用法示例:

在 btnLeft 的

[FMX]开年第二弹:修改 FMX.Forms.pas 避免在控件中滑动被识别为点击

通过修改 FMX.Controls 单元,我们在编辑控制上滑动时,输入法自动弹出的问题算是比较完美的解决了(参考:[FMX]开年第一弹:修改 FMX.Controls 避免按住编辑框移动时弹出输入法的问题),但 FMX 依然存在着滑动时触发OnClick事件的问题。 现在我们要做的就是解决这一问题: 1、找到 FMX.

[FMX]开年第一弹:修改 FMX.Controls 避免按住编辑框移动时弹出输入法的问题

在 FMX 中,当用户在编辑框上按下时,许多场景下,是要拖动位置,但是,FMX.Controls 在 MouseDown 事件中,就调用了控件的 SetFocus ,结果就造成按下时,弹出输入法,影响拖动操作。我们可以将相应的代码那到 MouseUp 中来解决这一问题。同时,我们加一个判断,以避免将拖动识别为点击。 所

[FMX]使用 FMX 那些缺失的动画效果

FMX 里的动画做起来简单So easy! TFloatAnimation 不能对一些整数类型的属性做动态效果。 实际上,我们并不需要太沮丧,毕竟天生我材必有用,今天吃饱了明天还饿,这只是因为官方忘了将TIntAnimation注册到面板上而已,我们只需要动态创建它并设置相关属性。 [crayon-5c9852bb70