如题! 急!!!!!!! 在线等!!!!

解决方案 »

  1.   

    procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
    var 
      CurrentRow : Integer;
      Row1 : Integer;
      Row2 : Integer;
      RowNum : Integer;
      nChar : Integer;
    begin
      CurrentRow := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0);//获取光标所在当前行
      Row1 := SendMessage(Memo1.Handle, EM_LINEINDEX, CurrentRow, 0);
      RowNum := 1 + SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.GetTextLen-1, 0);//取得行数  if (CurrentRow < RowNum -1) then
        Row2 := SendMessage(Memo1.Handle, EM_LINEINDEX, Currentrow+1, 0) - 2;//考虑到有两个字符(回车和换行)
      else
        Row2 := Memo1.getTextLen();  nChar := Row2 - Row1;//获得该行字符数  case Key of
        ' '..#255: //判断是否该行字符数是否大于10个
          if (nChar >= 10) then
            Memo1.Lines.Add("");
        #8: //如果是退格键
          if (Memo1.SelStart = SendMessage(Memo1.Handle, EM_LINEINDEX, CurrentRow, 0)) then
            Key := #0;
      end;end;