这样的代码却输入3行后多了几个字符还行..... procedure TksbjbForm.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
    if memo1.Lines.Count>3 then
    begin
      showmessage('开头语最多只能输入三行.');
      exit;
    end;
end;

解决方案 »

  1.   

    procedure TksbjbForm.Memo1KeyPress(Sender: TObject; var Key: Char);
    begin
        if memo1.Lines.Count>3 then
        begin
          Key=#0;
          showmessage('开头语最多只能输入三行.');
          exit;
        end;
    end;
      

  2.   

    这样也可以:
    procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
    i:integer;
    begin
      if memo1.Lines.Count>3 then
      begin
        showmessage('ssss');
        memo2.Lines.Clear;
        for i:=0 to memo1.Lines.Count-1 do
        begin
          memo2.Lines.Add(memo1.Lines.Strings[i]);
        end;
        memo1.Lines.Clear;
        for i:=0 to 2 do
        begin
          memo1.Lines.Add(memo2.Lines.Strings[i]);
        end;
      end;
    end;
    谢谢各位.