在框架上放置TMultiview控件并尝试在IDE中重新打开该框架时,会导致AV无法查看。
这是一个已知问题,已报告给EMB。该问题已报告到此处的新质量门户:https://quality.embarcadero.com/browse/RSP-9621。请注意,您需要登录才能查看此报告。对于那些没有账户的人,截至撰写本文时,报告如下所示:
有谁知道解决方法,或者可以提出解决方法?
最佳答案
有一些解决方法可以使您查看和编辑该框架,但是它涉及对.pas和.fmx文件的一些手动处理
假设您创建了带有TMultiView组件的框架。
您的.pas文件如下所示:
unit Unit3;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.MultiView;
type
TFrame3 = class(TFrame)
MultiView1: TMultiView;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.fmx}
end.
您的.fmx文件如下所示:
object Frame3: TFrame3
Size.Width = 561.000000000000000000
Size.Height = 408.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
object MultiView1: TMultiView
Size.Width = 250.000000000000000000
Size.Height = 408.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
end
end
为了成功打开框架,您必须在某些编辑器(如记事本)中打开两个文件。
在您的.pas文件类声明中,将TFrame替换为TForm,
TFrame3 = class(TForm)
然后从.fmx文件中剪切出TFrame特定的属性(并将其存储在某个位置,因为完成编辑后需要将它们复制回去)
Size.Width = 561.000000000000000000
Size.Height = 408.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
现在,您可以在IDE中自由打开框架(窗体),并使用它进行所需的操作。完成后,保存文件,在IDE中将其关闭,然后再次在记事本中编辑.pas和.fmx文件。
TFrame3 = class(TFrame)
并用原始TFrame替换IDE插入的TForm特定属性
Left = 0
Top = 0
ClientHeight = 480
ClientWidth = 640
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop, iPhone, iPad]
DesignerMasterStyle = 0
关于delphi - TMultiView on Frame导致AV,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26968283/