主要问题是字体大小或长度变大后,怎么知道它已经超过了指定的宽度,和RichEdit的自动换行类似.用#13#10可以,但不知道它是否已经超过了指定的宽度?

解决方案 »

  1.   

    把label的wordwrap属性设为true;//
    --------------------------------------------------------------------
    看尽悲伤,庸人自扰不平事。叹尽荒凉,海阔天空谁人知。狂风劲兮,百花飘
    扬乱舞香。捏花一笑,海不扬波断肠心!
      

  2.   

    在Edit1输入文字,在Label1中动态显示,且自动换行!
    -------------------------------------------------unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;const
      StrLeng= 10;//Label1的换行宽度type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Label1: TLabel;
        Button1: TButton;
        procedure Edit1Change(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Edit1Change(Sender: TObject);
    var
      i, ReturnCount, LineCount: integer;
    begin
      LineCount:= Length(Edit1.Text)div (StrLeng);
      ReturnCount:= 0;
      Label1.Caption:= '';
      for i:= 1 to Length(Edit1.Text)+ LineCount do
        if (i mod (StrLeng+ 1))= 0 then
          begin
            Label1.Caption:= Label1.Caption+ #13;
            Inc(ReturnCount);
          end else Label1.Caption:= Label1.Caption+ Edit1.Text[i- ReturnCount];
    end;end.
      

  3.   

    放一个不可见的label,他的caption等于字符串,autosize为true,取他的宽度就知道实际到了多少宽度了不过单存为了指定宽度换行,就像一楼,同时也要把autosize设为false,height也要足够大
    设定指定宽度可以先添冲空格
      

  4.   

    label1.wordwrap属性设为true; label會自動在需要的時候換行, 不用你自己操心
      

  5.   

    label的wordwrap属性设为true,设置好label的宽度,当输入到边界时会自动换行的。