如何从不同的线程更改3D firemonkey对象的颜色

时间:2013-05-14 06:10:25

标签: delphi firemonkey delphi-xe3

我有一个圆柱

Cylinder1 : TCylinder;

我希望它在点击它时改变颜色。 我已将此添加到点击事件

procedure TfrmFiremonkey.Cylinder1Click(Sender: TObject);
begin
    Cylinder1.MaterialSource := GreenMaterial;
end;

气缸不会改变颜色。但是,如果我在调用form.Show事件之前设置Cylinder1.MaterialSource,它将改变颜色

我怀疑它没有显示的原因是因为Cylinder1Click正在另一个线程中发生。

1 个答案:

答案 0 :(得分:0)

我发现了

procedure TfrmFiremonkey.Cylinder1Click(Sender: TObject);
begin
    TColorMaterialSource(Cylinder1.MaterialSource).Color := claBlue;
end;

工作正常