小弟刚接触DELPHI ,现在要做的是根据字符长度来确定控件的宽:
 var
name:string;
Nlength:integer;
begin
name:='内蒙分会场';
Nlength:=length(name);
edit1.Text:=name;
edit1.Width:=Nlength;
end;这样写的话运行的时候.只会显示'内'这个字的一半..
请问该怎么解决..另外.如果分辨率变化的话是否有影响...
  请各位帮帮忙...谢谢...

解决方案 »

  1.   

    length(str)*单个字符宽度 不就的到了么,像你那样仅仅就的到了字符长度,肯定不行地,试试这样。
      

  2.   


    var
      w:Integer;
    begin
      w := Self.Canvas.TextWidth('中国');
      Button2.Caption := '中国';
      Button2.Width := w + 10;
    end;
      

  3.   

    你乘的宽度 是多少啊?  晕,我刚才测试下可以完全显示 edit1.Width:=Nlength*Edit1.Font.Size;
      

  4.   

    edit有个autosize属性,设为TRUE即可
      

  5.   

     "bdmh" 
    谢谢你的方法.可行..
      

  6.   

    length(str) 是 字符串的长度,如 length('abc')是3,而edit1.Width 是像素,风马牛不相及啊。
    3楼的方法可以一试。
      

  7.   


    那我到要问问你,要怎么才能相及啊,
    TextWidth('中国');
    Returns the width, in pixels, of a string rendered in the current font.  这句话的意思你能看明白么?