控件随窗体大小的改变而改变??? 100大洋求助(100分)

  • 主题发起人 主题发起人 lzchinaboy1
  • 开始时间 开始时间
L

lzchinaboy1

Unregistered / Unconfirmed
GUEST, unregistred user!
窗体最大化,窗体上的控件也按相应的比例变化??
拉动窗体边框,窗体忙改变大小时,控件也会按相应的比例变化??
 
在form.onresize中自己写
 
控件的anchors属性:四个全改为true(他们分别代表上下左右)
 
设置控件的 Anchors 属性,使之等于 [akLeft,akTop,akRight,akBottom],
也即把它的 [akLeft,akTop,akRight,akBottom] 全部设置为 True。
 
同意楼上 pandababy
可是到一定比例以下时
有的控件不会显示
 
ScaleBy()
Scaled : =True;
 
控件的anchors属性:四个全改为true(他们分别代表上下左右)
这个方法不行??全都乱完了
 
能不能给段码??
找到窗体上所有的控件,然后按比例随着窗体的大小的改变而按比例改变
 
哪位能给段代码或给个方案啊???
 
捕捉WM_SIZE消息,对此消息进行处理,修改控件的大小
 
如果不够我把我还有的分全给了
 
这只是一个放大窗体上可视化控件大小的方法,参考一下 :)
procedure ResizeWinControl;
var
iPercentage:integer;
i:integer;
begin
for i:=0 to Application.ComponentCount-1 do
begin
if (Application.Components is TWinControl) then
begin
if Screen.Width > 640 then
begin
iPercentage:=Round(((Screen.Width-640)/640)*100)+100;
TWinControl(Application.Components).ScaleBy(iPercentage,100);
end;
end;
end;
end;
 
在Form的OnResize事件调用: ResizeWinControl
 
var
Form1: TForm1;
FormW : Integer;
FormH : Integer;


procedure TForm1.FormResize(Sender: TObject);
var
i : Integer;
begin
if (Width<>FormW) then
begin
for i:=0 to Application.ComponentCount-1 do
begin
if (Application.Components is TWinControl) then
begin
((Application.Components) as TWinControl).scaleby(Width,FormW);
end;
end;
FormW := Width;
FormH := Height;
end;
end;


initialization
FormW := 640; //初始大小
FormH := 480;
 
用其他控件
 
可能是我没有讲清楚??

我的意思是:窗体增大,窗体上的控件也跟着按比例增大??

 
把控件放在Panel上,Panel的align属性设置成alClient,这样无论窗体如何变化上面的控件也不会显得杂乱。
 
同意楼上的看法,在界面设计的时候多用一些panel,然后根据需要将控件的align属性设置成alclient,panel变化,它随之变化。
 
对控件宽度高度附值时用窗体宽度高度*百分比
 
前面给的代码我试了,不行??
那位能给段代码??
再加上25分
 
后退
顶部