delphi中怎么使控件随窗口的放大和缩小动态改变自己的大小
delphi中如何使控件随窗口的放大和缩小动态改变自己的大小
delphi中如何使控件随窗口的放大和缩小动态改变自己的大小?
有没有什么比较好的方法,不要每个控件都要在onresize中写代码。
谢谢!
------解决方案--------------------
写代码是最好的解决办法。!
有一个简单的函数ScaleBy,它可以使得你控制窗体内控件的比例,但是它实现的效果只能用一个字评价:烂!
给你个ScaleBy的例子吧,这个例子会使窗口中的控件随窗口宽度的大小而变化。
delphi中如何使控件随窗口的放大和缩小动态改变自己的大小?
有没有什么比较好的方法,不要每个控件都要在onresize中写代码。
谢谢!
------解决方案--------------------
写代码是最好的解决办法。!
有一个简单的函数ScaleBy,它可以使得你控制窗体内控件的比例,但是它实现的效果只能用一个字评价:烂!
给你个ScaleBy的例子吧,这个例子会使窗口中的控件随窗口宽度的大小而变化。
- Delphi(Pascal) code
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormResize(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } OldWidth:Integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Pos('dke',Richedit1.Lines.Text); end; procedure TForm1.FormResize(Sender: TObject); begin form1.ScaleBy(Self.Width,OldWidth); OldWidth:=Self.width; end; procedure TForm1.FormShow(Sender: TObject); begin OldWidth:=Self.width; end; end.
------解决方案--------------------
可惜楼主要的是改变大小,而不是改变位置,在改变位置时有比较简单的方法
------解决方案--------------------
------解决方案--------------------
根据窗体的大小,计算一个比例系数,然后窗体上所有控件的大小和字体都用这比例系数计算出来~~
不过个人感觉没必要~~
------解决方案--------------------
一般情况下的确不需要改变控件的大小,仅仅调整界面的布局即可。
使用Panel控件可以使得控件自动调整位置,
比如你想要一个按钮始终在界面底部,你在设计时可以先在界面上添加一个Panel,然后把Panel的Align属性设置为alBottom,这个Panel就会始终位于底部,如果把按钮放在Panel上的话,按钮相对于Panel是不动的,但按钮相对于窗体来说也会随Panel始终位于底部
同样,如果需要一个控件始终在窗体的右下角,那么可以先添加一个Panel1,Panel1的Align属性设置为alBottom,在Panel1上再放一个Panel2,并设置Panel2的Align属性为alRight,然后再在Panel2上放置按钮即可。
------解决方案--------------------
设置控件的anchors属性吧,全部设为true,看看满足你的要求么
------解决方案--------------------
前面的那段代码,基本能满足要求