加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – TMultiView on Frame导致AV

发布时间:2020-12-15 04:11:23 所属栏目:大数据 来源:网络整理
导读:在帧上放置TMultiview控件并尝试在IDE中重新打开该帧时会导致AV无法查看. 这是一个众所周知的问题,并向EMB报告.此问题已在此处向新质量门户报告:https://quality.embarcadero.com/browse/RSP-9621.请注意,您需要登录才能查看此报告.对于那些没有帐户的人,以
在帧上放置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文件类声明中用TForm替换TFrame,

TFrame3 = class(TForm)

然后从.fmx文件中删除TFrame特定属性(并将其存储在某处,因为在完成编辑后需要将它们复制回来)

Size.Width = 561.000000000000000000
  Size.Height = 408.000000000000000000
  Size.PlatformDefault = False
  TabOrder = 0

现在,您可以在IDE中自由打开Frame(Form),并随心所欲地执行任何操作.完成后,保存文件,在IDE中关闭它们,然后再次在记事本中编辑.pas和.fmx文件.

TFrame3 = class(TFrame)

并替换IDE与原始TFrame插入的TForm特定属性

Left = 0
  Top = 0
  ClientHeight = 480
  ClientWidth = 640
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [Desktop,iPhone,iPad]
  DesignerMasterStyle = 0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读