Firemonkey组件在运行时移动

尼克斯

介绍:

我有一个从TCustomPanel类派生的自定义VCL组件,其目的是充当某种具有父级(主窗体)的自定义窗体,但是所有默认按钮(例如最大化,最小化,关闭)都是如此。该组件是在FMX之前开发的,它是现有应用程序的重要组成部分。该组件正在捕获消息,覆盖Paint方法等。

该组件的主要功能是具有与常规表单类似的功能(在运行时在其父对象中浮动,拖动...),但具有一些自定义的图形(较小的按钮等)。

演示应用

手头的任务:

我正在为FireMonkey(Delphi XE2)重写组件,包括该浮动窗口,以及是否有必要这样做。
(我不想混合使用VCL和FMX,因为在某些时候,我希望整个应用程序都包含在FMX中。)

问题:

  1. 在运行时是否存在具有浮动/拖动/移动功能的FMX控件?

  2. Firemonkey中启用例如的方法是什么?TPanel在运行时移动,还是默认存在提供该功能的控件?我想FMX中的整个想法是重写现有方法。

  3. 在同一应用程序中是否可以具有不同样式的表单?我正在考虑使用自定义样式创建我的自定义表单。在这种情况下,我可以拥有一种具有不同样式的主表单(父表单)和子表单。

谢谢!

迈克·萨顿

对于1和2,您会发现OnMouseXXXX事件足够容易使用(或者在开发自定义组件时使用受保护的虚拟方法)。

对于3,在每个窗体上放置一个TStyleBook并将所需的样式加载到其中(记住要设置窗体的StyleBook属性)。您还可以将StyleBook属性指向不在窗体上的实例,例如,在另一窗体上或指向全局对象。如果这样做,请注意在释放表单前将其StyleBook属性设置为零,否则将获得AV。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章