回 帖 发 新 帖 刷新版面

主题:怎么样实现form的大小

大家好! 我是一个初学者 我希望大家多多教我
我想编一段程序,实现以下功能
怎么样实现form的大小随着我们的放大随放大的功能(里面的所有内容随着放大)
还望各位高手大侠指教,在下多谢了.

回复列表 (共9个回复)

沙发

这个功能JAVA好写点;
delphi的话你就跟据窗体的height跟width两个属性计算,然后设置窗体上的对象的left跟top属性。

板凳

有一个免费控件,叫formresizer你搜一下

3 楼

路过,呵呵

4 楼

楼主应该是说窗口大小变化时,里面的控件也跟着变到吧,该居中的还是居中之类的吧。

5 楼

如果要实现像4楼的朋友说的效果,该如何实现?

6 楼

我也想知道答案
有那个高手指点

7 楼

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   h1,w1,h2,w2,hf,wf:Integer;
   z1,z2:Currency;
implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);//定义窗口和控件初始属性
begin
Form1.height:=330;
Form1.Width:=330;
h1:=Form1.height;
w1:=Form1.Width;
Button1.height:=25;
Button1.Width:=75;
h2:=Button1.height;
w2:=Button1.Width;
end;

procedure TForm1.FormResize(Sender: TObject);//随放大而放大,随缩小而缩小
var
i,ii:Currency;
begin
hf:=Form1.height;
wf:=Form1.Width;
begin
z1:=(0.001+hf)/(0.001+h1);//0.01是防止空值或被零除而出错的
z2:=(0.001+wf)/(0.001+w1);
i:=h2*z1;
ii:=w2*z2;
Button1.height:=round(i);//四舍五入到整数
Button1.Width:=round(ii);
Button1.Font.Size:=15-Button1.height;//15是自己调整出的,你自已根据实际情况填.
end;
end;

end.

详细代码:
http://upload.programfan.com/upfile/200611222143310.rar

8 楼

谢谢大家!!!

9 楼

8楼的代码我试了一下,可以改变控件大小,最好在加上控件位置的控制,否则控件会重叠

我来回复

您尚未登录,请登录后再回复。点此登录或注册