一个memo控件,固定宽度,WorkWrap属性已设置为TRUE,可以自动换行。我想让memo换行时自动增加一行的高度如何实现?

解决方案 »

  1.   


    procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
       if key=13 then
         self.Memo1.height := self.height+1;
    end;
      

  2.   

    上面的错了,再发一次哈:procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
       if key=13 then
         Memo1.height := Memo1.height+1;
    end;
      

  3.   

    memo现在是自动换行,不用按回车,我希望的是自动换行的同时增加memo的高度
      

  4.   

      TForm1 = class(TForm)
        mem1: TMemo;
        procedure mem1Change(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        //定义私有变量
        FPreRows: Integer;
      public
        { Public declarations }
      end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    FPreRows := 1;
            mem1.lines.clear;
    end;procedure TForm1.mem1Change(Sender: TObject);
    var
      line: Integer;
    begin
    line := mem1.Lines.Count;
      if (line <> FPreRows) then
      begin
        //计算行高的没有考虑当前字体和窗体的字体size是否一致
        mem1.Height := mem1.Height + (line - FPreRows) * Canvas.TextHeight('H');
        FPreRows := line;
      end;end;
      

  5.   

    这个问题/需求最近也遇到过。
    word的表格很自然就是这样,html也容易做到,
    delphi却不容易