• Error reading TAppearanceObjectItem.Appearance.Font.Size:Invalid property path


    上午升级到Delphi 11.1的patch 1,还是遇到Listview继承的问题,在Android平台上运行,会产生标题的错误:

    已经提交到QC:https://quality.embarcadero.com/browse/RSP-38076,方便就帮我投个票,促进官方解决。(今天就被Open了,感谢大家的支持!)

    查了大半天,发现原因:重新定义继承来的listview中Text控件的Font属性导致的

    具体操作如下:

    1.建一个TFrame1,放上Listview,设置

    2.从这个Frame继承一个子Frame,并修改Text1的字体大小,修改任意属性都行,保存这个单元:

    查看一下FMX文件,会发现修改信息写入了对应的FMX文件,正因为如此才造成的问题:

    inherited Frame3: TFrame3
      inherited ListView1: TListView
        ItemAppearanceObjects.ItemObjects.ObjectsCollection = <
          item
            AppearanceObjectName = 'Text1'
            AppearanceClassName = 'TTextObjectAppearance'
            Appearance.Font.Size = 18.000000000000000000
            Appearance.TextAlign = Leading
            Appearance.Width = 265.000000000000000000
            Appearance.Height = 44.000000000000000000
            Appearance.PlaceOffset.X = 14.000000000000000000
          end>
      end
    end

    3.调用继承来的子类:

    procedure TForm1.ShowFrame3Click(Sender: TObject);
    var
      f: TFrame3;
    
    begin
      try
        f := TFrame3.Create(Self);
        f.Parent := Rectangle1;
        f.Align := TAlignLayout.Client;
      except
        on e: Exception do
        begin
          ShowMessage(e.Message);
        end;
      end;
    
    end;

    在android上运行,点按钮来显示这个Frame3,错误就产生了。

    这个问题,只在Android上有,在Windows上是正常的,我没有iOS和mac OS环境,无法测试。

    进一步测试,修改Text.Font属性才会有问题:

    ChinaCock作者真是利害,搞定了这个问题!是打死也想不到的办法!去QC:https://quality.embarcadero.com/browse/RSP-38076上看吧,我写到哪里了!

  • 相关阅读:
    SqlHelper
    asp.net中窗口相关操作总结(javascript)
    ASP.NET顯示對話框
    为ASP.NET控件添加常用的JavaScript操作
    右键弹出菜单
    log4net的初使用
    QQ/MSN右下角弹出提示窗口
    简便无刷新文件上传系统
    简单的自动更新程序实
    SQL中的单记录函数
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/16202774.html
Copyright © 2020-2023  润新知