如何更改运行时的Form.Quality属性(适用于iOS)

时间:2016-10-11 12:59:29

标签: ios delphi

我使用柏林为iOS创建移动应用程序并遇到一些问题。质量属性在主窗体上设置为HighPerfomance(使用设计时间模式)。这是我使用的代码:

constructor TfmMain.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Quality := TCanvasQuality.HighQuality;
end;

属性更改并等于HighQuality,但控件和行看起来不正确。如果我在Object Inspector中更改属性似乎都正常工作,控件和行看起来很好。您能否告诉我,如何在运行时更改质量?

高性能

enter image description here

高质量

enter image description here

因此,经过一些调查后,我重写了这个方法:

procedure TfmMain.InitializeNewForm;
begin
  Quality := TCanvasQuality.HighQuality;
  inherited; 
end;

现在一切都很好看。谢谢大家。

2 个答案:

答案 0 :(得分:0)

最有可能发生的是:您的值在构造函数中设置正确,然后FMX进行流式处理,FMX中的值将覆盖您以编程方式设置的值。

在表单的FMX中设置值的正确位置将被覆盖"已加载"过程

procedure TfmMain.Loaded;
begin
  inherited;
  Quality := TCanvasQuality.HighQuality;
end;

这是我最好的猜测。

答案 1 :(得分:-1)

我不知道柏林的iOS开发,但这段代码:

{$IFDEF RELEASE}
Quality := TCanvasQuality.HighQuality;
{$ENDIF}

仅在发布模式下执行,如果您尝试在调试中为HighQuality对象设置Quality,请尝试使用括号删除代码。

编辑: 答案无关紧要,因为OP告诉他理解$IFDEF的概念并从他的代码中删除该部分。