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

如何让Delphi独自离开我的DFM?

发布时间:2020-12-15 04:31:31 所属栏目:大数据 来源:网络整理
导读:使用DXE2,我写了一个表单生成器,它同时创建.pas和.dfm文件.我正在处理一个例程,允许我修改dfm中的不同属性,例如Font.Height和TabOrder. 当我在记事本中打开一个生成的文件时,一切看起来就像我期望的那样.当我在Delphi中打开它,属性改变了!令人沮丧的事情是
使用DXE2,我写了一个表单生成器,它同时创建.pas和.dfm文件.我正在处理一个例程,允许我修改dfm中的不同属性,例如Font.Height和TabOrder.

当我在记事本中打开一个生成的文件时,一切看起来就像我期望的那样.当我在Delphi中打开它,属性改变了!令人沮丧的事情是我使用Delphi IDE中原来设计的格式作为我的模板.我不明白为什么德尔福不会尊重我的简单变化

例如,原来的Font.Height是-11.我读取dfm,将其更改为-17,并保存.在记事本中,显示-17.当我在Delphi中打开它,它显示为-21!

任何想法/提示/建议将不胜感激!

解决方法

我的猜测是,您的机器上的PixelsPerInch与存储在.dfm文件中的值不匹配.当Delphi读取.dfm文件时,它将根据.dfm文件PixelsPerInch和您的机器当前PixelsPerInch的比例来扩展任何维度.

PixelsPerInch的典型值为96dpi和120dpi.请注意,17 * 120/96 = 21.

现在,对于TabOrder,IDE将始终以连续的值写出表单顺序.因此,如果您的.dfm文件中缺少任何值,那么IDE会写出不同版本的TabOrder值.

请注意,您不能让Delphi将.dfm文件单独留下.一旦对设计空间进行任何修改,并保存表单,Delphi将以其首选格式进行流式传输.

这真的是一种不可避免的方式.dfm文件的处理方式. IDE从未以与您的.pas文件相同的方式直接编辑.dfm文件.而是读取.dfm文件,创建在表单上定义的组件,并分配其属性.当需要再次保存.dfm文件时,会要求组件将其自身流出.因此,保存设置的底层模型是IDE拥有的TComponent实例(通常是一个表单),而不是.dfm文件.

(编辑:李大同)

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

    推荐文章
      热点阅读