【问题标题】:how to move 2d objects on firemonkey platform?如何在 firemonkey 平台上移动 2d 对象?
【发布时间】:2014-07-27 22:39:24
【问题描述】:

我有一个 VCL 应用程序,它可以执行以下操作:用户可以从工具栏中选择各种形状 (矩形、圆形、用户定义的对象)并且可以在场景(在 TImage 上)移动(和放置)。 使用 xor 模式 TPen 模式实现的移动。对象未填充。如何用火猴做到这一点? (我在firemonkey平台上没有找到xor模式笔模式)

【问题讨论】:

  • 它们不存在。我想。使用不同的解决方案。
  • 用实心笔画出形状
  • 好的,但是如何移动对象?我必须删除(取消绘制)以前的位置(即 VCL 上的 xor pen)
  • 这与 VCL 完全不同。不要试图将 VCL 解决方案放在 FMX 上。尝试学习如何使用 FMX 方式进行操作。这个问题并没有真正去任何地方,因为你问的是不存在的 xor pen。
  • 好的,应该如何使用 FMX..?

标签: delphi firemonkey


【解决方案1】:

据我所知,FMX 中没有异或笔。 FMX 是一个与 VCL 非常不同的框架,最好建议您找到 FMX 解决问题的方法,而不是尝试按照您编写 VCL 的方式编写代码。

因此,您需要在表单上添加一个形状。从添加一个开始。例如TRectangeTCircle 控件。就像添加列表框或备忘录一样,向表单添加形状控件。形状可以在工具箱的 Shapes 部分找到,但在较新的 Delphi 版本中,您只需在搜索框中键入即可找到控件。

将形状控件添加到表单后,您可以通过修改其Position 属性来移动它们。例如:

Circle1.Position.X := Circle1.Position.X + 5;

仅此而已。

如果您愿意,您也可以自己绘制形状。使用表单的OnPaint 事件,或添加TPaintBox 并在其OnPaint 事件处理程序中实现绘画。

老实说,即使在 VCL 中,这可能也是您应该这样做的方式。在TImage 的画布上使用异或绘画不是很实用。

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 2015-04-26
    • 1970-01-01
    相关资源
    最近更新 更多