还是必须用memo组件?
象outlook写邮件时,收件人一栏那样的效果。

解决方案 »

  1.   

    应该用MEMO啊,不知楼主用Edit有什么特殊要求啊?
    我想outlook也应该是Memo吧。
      

  2.   

    就是实现outlook那样的效果呀。用memo如何处理呢?
      

  3.   

    用richedit.
    并且把ScrollBars属性设为ssBoth
      

  4.   

    使用MEMOMemo ONChange事件procedure TForm1.Memo1Change(Sender: TObject);
    begin
      Form1.Caption := IntToStr(abs(Canvas.Font.Height));
      if Memo1.Lines.Count <= 1 then
      begin
        Memo1.ScrollBars := ssNone;
        Memo1.Height := ABS(Memo1.Font.Height) * 2 + 2
      end else
      if Memo1.Lines.Count <= 3 then
      begin
        Memo1.ScrollBars := ssNone;
        Memo1.Height := ABS(Memo1.Font.Height) * (Memo1.Lines.Count+1) + 2
      end else
      begin
        Memo1.ScrollBars := ssVertical;
        Memo1.Height := ABS(Memo1.Font.Height) * (Memo1.Lines.Count+1) + 2;
        Memo1.SelStart := Length(Memo1.Lines.Text);
      end;
    end;FORM ONCREATE事件procedure TForm1.FormCreate(Sender: TObject);
    begin
      Memo1.Lines.Clear;
      Memo1.Height := ABS(Memo1.Font.Height) * 2 + 2;
    end;
    如果不满意高度就自己调整一下
      

  5.   

    回车后应该是增加一行,光标也移到下一行了,但为什么memo1没有自动变长呢?Memo1.Lines.Count没有变。
      

  6.   

    直接把MEMO的 
      Memo1.ScrollBars:=ssVertical;
    然后调一下高度设成两行的高不就行了吗?
    效果差不多啦!
      

  7.   

    设成两行比较难看的,outlook是一行的呢
      

  8.   

    去看看FOXMAIL吧。
    第一次就是一行。
    如果增加了后。
    他自己变成两行了。
    失现起来应该不难!