问题很菜,谢谢。

解决方案 »

  1.   

    Control.Width := Control.Canvas.TextWidth('字符串');
      

  2.   

    procedure TForm1.Edit1Change(Sender: TObject);
    var
      edtObj: TEdit;
      dc: HDC;
      sz: TSize;
      txt: String;
    begin
      if Sender is TEdit then begin
        edtObj := Sender as TEdit;
        dc := GetDC(edtObj.Handle);
        txt := edtObj.Text;
        GetTextExtentPoint32(dc,PAnsiChar(txt),Length(txt),sz);
        ReleaseDC(edtObj.Handle,dc);
        edtObj.Width := Min(Max(100,sz.cx),700)
      end;
    end;
      

  3.   

    Control.Width := Control.Canvas.TextWidth('字符串');