表单 – 在表单编辑器中调整其字体大小后调整Delphi表单的大小

表单 – 在表单编辑器中调整其字体大小后调整Delphi表单的大小,第1张

概述我开发了一个传统的Delphi 6应用程序,我想增加其中一个表单字体大小.所有其他形式都有Microsoft Sans Serif 8pt,但这一个设置为Microsoft Sans Serif 7pt.所有控件都有ParentFont = True,所以我可以简单地将表单的字体大小设置为8pt.问题是表单及其控件不会调整大小,标签文本会重叠.是否有一种简单的方法可以在调整字体大小后调整窗体大小 我开发了一个传统的Delphi 6应用程序,我想增加其中一个表单的字体大小.所有其他形式都有Microsoft Sans serif 8pt,但这一个设置为Microsoft Sans serif 7pt.所有控件都有ParentFont = True,所以我可以简单地将表单的字体大小设置为8pt.问题是表单及其控件不会调整大小,标签文本会重叠.是否有一种简单的方法可以在调整字体大小后调整窗体大小,而无需在窗体编辑器中手动调整其控件大小?解决方法 在设计时,您可以通过手动编辑.dfm文件来实现更改.确保在Scaled属性设置为True的情况下保存表单.

然后,在Delphi中关闭您的项目,或者完全关闭Delphi.接下来,在文本编辑器中打开.dfm文件,然后调整表单TextHeight属性.例如,如果要从7pt缩放到8pt,TextHeight设置为13,则应将其更改为11.然后重新加载项目并在设计器中打开表单,您的表单将被缩放.这不是一个完美的缩放,因为TextHeight不允许浮点值.但它可能已经足够好了.

在运行时,您可以调用ChangeScale

ChangeScale(NewFont.Size,oldFont.Size);

请注意,ChangeScale是受保护的成员.因此,根据您调用此处的位置,您可能需要使用受保护的成员Hack.

然后,一种选择是在运行时调用表单持久性框架以生成.dfm文件的缩放版本.这样可以比使用TextHeight玩技巧更精确

例如,您可以将以下内容附加到表单的OnShow事件:

procedure TMyForm.FormShow(Sender: TObject);var  BinaryStream,TextStream: TStream;begin  BinaryStream := TMemoryStream.Create;  Try    BinaryStream.WriteComponent(Self);    BinaryStream.position := 0;    TextStream := TfileStream.Create('MyForm.dfm',fmCreate);    Try      ObjectBinaryToText(BinaryStream,TextStream);    Finally      TextStream.Free;    End;  Finally    BinaryStream.Free;  End;end;

这将基于运行时状态生成新的.dfm文件.然后,您可以将其与版本控制系统中的.dfm文件的版本进行比较.您将不会接受一些更改,但主要是更改将是您想要的位置和大小更改.

总结

以上是内存溢出为你收集整理的表单 – 在表单编辑器中调整其字体大小后调整Delphi表单的大小全部内容,希望文章能够帮你解决表单 – 在表单编辑器中调整其字体大小后调整Delphi表单的大小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1063501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存