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

前端之家收集整理的这篇文章主要介绍了如何让Delphi独自离开我的DFM?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用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文件.

原文链接:https://www.f2er.com/delphi/101189.html

猜你在找的Delphi相关文章