给楼主一段代码,可以自动计算窗口大小的变化量,希望会有用吧。
procedure TFStateReopenFormCreate(Sender: TObject);
begin
InitClientHeight:= ClientHeight; //要先在窗体类中声名这些Integer变量
InitClientWidth:= ClientWidth;
CurClientHeight:= ClientHeight;
CurClientWidth:= ClientWidth;
end;
procedure TFStateReopenFormResize(Sender: TObject);
begin
inherited;
//计算可视组件的坐标变化
HeightInc:= ClientHeight - CurClientHeight;
if HeightInc > 0 then
begin
CurClientHeight:= ClientHeight;
end;
if (HeightInc < 0) and (ClientHeight > InitClientHeight) then
begin
CurClientHeight:= ClientHeight;
end;
if (HeightInc <0) and (ClientHeight <= InitClientHeight) then
begin
HeightInc:= InitClientHeight - CurClientHeight;
CurClientHeight:= InitClientHeight;
end;
WidthInc:= ClientWidth - CurClientWidth;
if WidthInc > 0 then
begin
CurClientWidth:= ClientWidth;
end;
你应该在添加控件之前,先在窗体里面添加一些PANEL控件或者groupbox控件,把窗体分割成不同的区,然后在这些区里面再放你需要的控件。这些panel或groupbox可以设置他们的ALIGN属性为ALLEFT,ALRIGHT,Altop,ALCLIENT等等,这样当窗体变化时它们可以自动调节大小,如果效果还不好,可以再在这些panel里面再添加多个panel来进一步分割,以此类推就可以,如果嫌panel的边框不好看,可以把里面panel的bevelouter属性设置为bvNone就可以了。
如果有更高的比例要求,就在窗体的onsize事件里面,设定各种panel的宽度高度就可以了。
大部分人都是在 Align 属性设置的。要实现标准的比例也行(),在窗体的大小改变事件写
比如你的TButton控件要放在窗体的中间。那么就在在窗体的大小改变事件写:
Button1Left := SelfWidth div 2 - Button1Width div 2 ;
Button1Top := SelfHeight div 2 - Button1Height div 2 ;
procedure TForm1FormCreate(Sender: TObject);
begin
//最大限制
ConstraintsMaxHeight := 400;
ConstraintsMaxWidth := 400;
//最小限制
ConstraintsMinHeight := 200;
ConstraintsMinWidth := 200;
end;
或直接修改窗体的这个属性也可以。
delphi 7 编译后有360KB,其余版本没怎么用过,不过XE5编译出来的文件是挺大的~可以通过一定的方法去缩小体积,可以参考>
以上就是关于delphi中怎么使控件随窗口的放大和缩小动态改变自己的大小全部的内容,包括:delphi中怎么使控件随窗口的放大和缩小动态改变自己的大小、delphi 求窗体的最大边框属性的那个函数。、delphi 窗口最大化后控件的大小变化怎么设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)