delphi实现窗体组建随窗体大小改变而改变
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了delphi实现窗体组建随窗体大小改变而改变,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2201字,纯文字阅读大概需要4分钟。
内容图文
![delphi实现窗体组建随窗体大小改变而改变](/upload/InfoBanner/zyjiaocheng/1318/2f2a9e37b32e4f4a92d4d2ef05df5f21.jpg)
在网上查了许多资料去论述如何在dephi中去实现组件随窗口大小的变化而变化,然都不尽如人意。有人说用组件的align + anchors 这两个属性去控制,但是我用了之后,让我大惊失色。把anchors属性下面的四个值都变为true.如果用户用鼠标去拖动窗口,那么窗口上的组件像是中了夺命书生的面目全非脚一样,基本上就没有所谓的五官之态。
下面就介绍我的方法,同样本人的方法也是看了网友们的资料才得以完成的。
(1) 下载TFormResizer组件
我用的是第三方插件TFormResizer,首先下载一个Easysize.rar,(百度一下,应该不难找到) 解压之后,其文件中内容如下:
本人建议应该把Easysite源文件,还有Easysize.d32, Easysize.dcu这三个文件放到你的dephi安装目录中的lib目录下,因为这里面基本上都是dephi的组件。这个组件默认的是标签不随窗口大小的改变而改变,其他的组件随窗口大小的改变而改变。如果想选择默认的方式,那么就不要修改这个源文件,直接进行安装这个组件即可。(在这里注意:不管你以前是否设置Label标签的AutoSize属性,他都会变成true)。
2.修改Easysize源文件
(1).在TSingleResizer的构造方法里,即在 constructor TSingleResizer.Create(LinkedControl, ParentForm : TControl;IncFont : Boolean;MinFS, MaxFS : Integer)方法里注释掉最后几句:
{ But do not adjust width of labels (to avoid
interaction of label auto-sizing with re-sizing) }
if FComponent is TCustomLabel then
FFlexWidth := false;
把上面的这几句话注释掉
(2).在procedure TSingleResizer.Resize(OwnerHeight, OwnerWidth; HeightRatio, WidthRatio : Double)方法里在最后几行里找到:
{ If component is a label, save original AutoSize value,
and set value temporarily to False }
if FComponent is TCustomLabel then
begin
OldAutoSize := GetAutoSizeProperty(FComponent);
SetAutoSizeProperty(FComponent, False);
end;
{ end W.K. insert }
和
{ begin W.K. insert }
{ If component is a label, set AutoSize temporarily to
True, call Refresh, and finally restore original value. }
if FComponent is TCustomLabel then
begin
SetAutoSizeProperty(Fcomponent, True);
TCustomLabel(Fcomponent).Refresh;
SetAutoSizeProperty(FComponent, OldAutoSize);
end;
{ end W.K. insert }
把上面的话用大括号注释掉。
(3)至此,源文件修改完毕
3.安装FormResizer这个组:
打开dephi软件,本人用的是dephi7, 点击 component ->Install Component ,出现如下界面:
![技术分享图片](http://img694.ph.126.net/hQRZgfGOFRKNMl-1tXGsNQ==/1151795604701177030.jpg)
![技术分享图片](http://img615.ph.126.net/W_ahwodDFeLK1LXI0xEZCg==/1927540640516241444.jpg)
FormResizer1.InitializeForm;
begin
FormResizer1.ResizeAll;
end;
原文:https://www.cnblogs.com/semth/p/8390691.html
内容总结
以上是互联网集市为您收集整理的delphi实现窗体组建随窗体大小改变而改变全部内容,希望文章能够帮你解决delphi实现窗体组建随窗体大小改变而改变所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。