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

如何在使用ScaleBy()后将delphi TForm重置为原始外观

发布时间:2020-12-15 04:09:02 所属栏目:大数据 来源:网络整理
导读:我希望允许用户调整表单的大小,并按比例调整其控件的大小. ScaleBy(N,M)对我来说很好,但如果重复,当然会有累积舍入错误.为了解决这个问题,我希望在ScaleBy()之前调用以默认外观和大小重新创建表单,然后使用各种值调用ScaleBy.我知道我可以通过在一个面板中托
我希望允许用户调整表单的大小,并按比例调整其控件的大小. ScaleBy(N,M)对我来说很好,但如果重复,当然会有累积舍入错误.为了解决这个问题,我希望在ScaleBy()之前调用以默认外观和大小重新创建表单,然后使用各种值调用ScaleBy.我知道我可以通过在一个面板中托管我的表单(并处理/重新创建它)来做到这一点但是有一个调用会在使用ScaleBy()之后重置表单吗?

编辑 – 我正在使用Delphi XE2,并且对使用组件或其他代码(付费或免费)的任何人的成功感兴趣,以便整齐地扩展表单 – 我自己的下载没有产生可行的解决方案.

解决方法

尝试 EasySize(TFormResizer)组件.
当表单大小更改时,TFormResizer组件会调整表单(或面板)上的所有控件的大小.
我几年前成功使用它 – 与D5 / 7合作.您可能需要对XE2进行小的调整(我没有XE2,所以我无法测试它).

用法:

uses
  ...,Easysize;

type
  TForm1 = class(TForm)
    ...        
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    FR: TFormResizer;
  end;

...

procedure TForm1.FormCreate(Sender: TObject);
begin
  FR := TFormResizer.Create(Self);
  FR.ResizeFonts := True;
  FR.InitializeForm;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  FR.ResizeAll;
end;

end.

(编辑:李大同)

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

    推荐文章
      热点阅读