Tag: delphi 10.1 berlin

iOS上的FMX:如何执行部分失效?

当我使表单上的一个控件失效时, Paint表单上的所有控件都会调用Paint方法。 这发生在iOS上,而在Windows上,本地失效工作,只有被请求的控制被绘制。 为了validation这一点,我做了一个小小的testing程序,在TPaintBox上只有两个TPaintBox ,并为它们分配了这些Click和Paint方法: procedure TForm1.PaintBox1Click(Sender: TObject); var lPaintBox: TPaintBox; begin lPaintBox := TPaintBox(Sender); lPaintBox.InvalidateRect(lPaintBox.LocalRect); end; procedure TForm1.PaintBox1Paint(Sender: TObject; Canvas: TCanvas); var lPaintBox: TPaintBox; begin lPaintBox := TPaintBox(Sender); lPaintBox.Canvas.Fill.Color := claBlack; lPaintBox.Canvas.FillText(RectF(0,0,50,50),'Paint count = '+inttostr(lPaintBox.Tag),true, 1, [], ttextAlign.Center); lPaintBox.Tag := lPaintBox.Tag +1; end; 无论我触摸哪一个颜料盒,另一个也被涂上颜料。 所以在iOS上,他们总是显示相同的数字。 有没有办法避免这种情况? 我使用柏林更新2与XCode 8.2 UPDATE 进一步调查我发现InvalidateRect调用这个: procedure TCustomForm.AddUpdateRect(R: TRectF); begin […]