如何设置组件Edit1的大小(width,height)与位置(left,top)?能不能设置?

解决方案 »

  1.   

    位置(Left Top )是可以的.但不能调高度,因为Edit是单行输入 .
    如果你要调高,用多行,如Memo
      

  2.   

    在设计时设置属性,或者代码设置:with edit do
    begin
    top:=100;
    left:=100;
    width:=100;
    end;
      

  3.   

    高度跟随字体,如果非要弄出给人感觉比对应字体大的输入框,你可以弄张输入框背景图,然后把Edit设置弄成无边框。
      

  4.   

    但我在设计时用edit1.top:=100;
    edit1.left:=100;来设置edit1的位置系统报错!
      

  5.   

    刚测试了,你的代码可以,除非你的edit1没创建
      

  6.   

    说明一下我要设置edit的位置和大小的理由:
    设置edit的位置:是因为我用同一个edit在不同的场合,它们需要放的位置不同,
    设置edit的大小:我输入的字符个数在不同场合有相当多差别,且采用的字体大小也不同。
      

  7.   

    注:我用“edit1.left:=20”来设置edit的左端位置,系统报错为:[Error] Main1.pas(11163): Undeclared identifier: 'left'Main1.pas是我的一个unit。
      

  8.   


    验证了一下你的结论,完全正确:
      用create语句创建出来的edit就可以设置left和top等属性了,
      而在设计界面时直接放上去的edit不能设置,否则报错(如前)。我的代码是:
    var edit1:tedit;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      edit1:=tedit.create(form1);
      edit1.top:=400;
      edit1.Left:=200;
      edit1.height:=20;
      edit1.width:=300;
      edit1.color:=clgray;
      edit1.Enabled:=true;
      edit1.visible:=true;
      edit1.BorderStyle:=bsSingle;
    end;但是,非常遗憾,edit1没有在form1上显示出来!!
      

  9.   


    我放的。是在设计时放到form1上的。
      

  10.   

    要加个
    Edit1.parent := Form1;才能显示出来的
      

  11.   

    放了控件是可以的,这个很常用的。 本来你没特别需要去自己创建的话,不是可视快速开发了。
    新建一个工程,在窗体上放个edit, 双击窗体
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Edit1.Left:=100;
    Edit1.Top :=100;
    end;
    这个是很常用的,难道我理解错了。
      

  12.   

    楼主的Delphi象是外星版的,怪事多多。或者,楼主是外星的
      

  13.   

    edit1:=tedit.create(form1);
    后面加上
    edit1.parent:=form1;
      

  14.   


    你说的有理,加上parent语句后全部正常了!
      

  15.   


    你错了,我加上parent语句后edit的宽度和高度都能设置,显示出来也如此。我的试的程序的代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      edit1:=tedit.create(form1);
      edit1.parent:=form1;
      edit1.top:=100;
      edit1.Left:=200;
      edit1.height:=40;
      edit1.width:=300;
      edit1.color:=clyellow;
      edit1.visible:=true;
      edit1.BorderStyle:=bsSingle;
    end;显示高度为确实=40,其他设置也都正常。
    这里有一个问题, 语句
      edit1:=tedit.create(form1);
    为什么不包含
      edit1.parent:=form1;
    意思在内?
      

  16.   


    我按自己的想法编程,想出一个,就希望实现一个,想法愈来愈多,
    程序愈来愈大,不免会出各种各样以前没有碰到过的问题。
    这是自学delphi必然要经过的,但吃一蛰长一智,以后再碰到就不再需要帮助了。
      

  17.   


    .create(form1)的意思,它的生存周期同form1,即form1销毁时其也销毁,当然,也可以提前销毁。即使create(form1)了,也可以.parent=其他组件,比如panel1,这是2个概念,不同的意思,呵呵。