Delphi动态创建多个编辑组件

Delphi动态创建多个编辑组件,delphi,delphi-7,Delphi,Delphi 7,我需要创建多个编辑组件,但我遇到了一个问题。 我需要将宽度和高度设置为一个固定值。 问题是我不能改变高度,当我这样做的时候,它根本不会改变。 奇怪的是,当我更改宽度时,它工作得非常完美(所有编辑都具有我在此函数中设置的宽度值) 以下是我的此函数代码: procedure Tform1.editcreate; var i,j: integer; sud: array [1..9,1..9] of TEdit; begin for i:=1 to 9 do for j:=1 to 9

我需要创建多个编辑组件,但我遇到了一个问题。 我需要将宽度和高度设置为一个固定值。 问题是我不能改变高度,当我这样做的时候,它根本不会改变。 奇怪的是,当我更改宽度时,它工作得非常完美(所有编辑都具有我在此函数中设置的宽度值)

以下是我的此函数代码:

procedure Tform1.editcreate;

var i,j: integer;
    sud: array [1..9,1..9] of TEdit;

begin
for i:=1 to 9 do
 for j:=1 to 9 do begin
  sud[i][j]:=TEdit.Create(form1);
  sud[i][j].Height:=50;
  sud[i][j].Width:=50;
  sud[i][j].top:=50*i;
  sud[i][j].left:=50*j;
  sud[i][j].Parent:=form1;
  end;
end;

默认情况下,单行编辑控件的高度由字体度量自动确定。因此,如果希望编辑的内容更大,请执行以下任一操作:

  • 使其字体变大,或
  • AutoSize
    设置为
    False

  • 我认为如果编辑控件的
    AutoSize
    设置为
    False
    ,由于额外的未使用垂直空间,它看起来会很奇怪。我想我从来没有使用过,甚至没有见过这样配置的编辑控件。

    FYI您应该将“form1”替换为“self”;o) 对于新表单,您应该做的第一件事是删除全局表单变量。那就不可能犯这样的错误。你知道你发布的代码毫无意义,对吧?
    sud
    数组是过程
    editCreate
    的本地数组,因此在最后的
    末尾超出范围,不再存在。这意味着数组的整个声明和添加编辑只会浪费代码行。(我也试图不去描绘你在同一个表单上创建的用户界面,它有81个编辑控件。)我把它放在这里只是为了看看它是什么变量,通常我把它声明为表单变量。你的问题是“这是我的这个函数的代码。”。我想那不是真的。:-)