在onkeypress中这样写if key=#13 then
   key:=#0;

解决方案 »

  1.   

    //把回车/换行 替换为'';
    memo1.text:=stringreplace(memo1.text,chr(13) + chr(10),'',[rfreplaceall]);
      

  2.   

    写在 OnKeyDown 中也可。case Key of
       VK_RETURN: Key := 0;
       // ... ...
    end;
      

  3.   

    var
    i:integer;
    begin
    i:=1;
    while i<=length(memo1.text) do
    begin
      delete(memo1.text,pos(#13#10,memo1.text),2);
    end;
      

  4.   

    更正:
    var
    i:integer;
    begin
    i:=pos(#13#10,memo1.text);
    while i>0 do
    begin
        delete(memo1.text,i,2);
        i:=pos(#13#10,memo1.text);
    end;
      

  5.   

    memo1.text:=stringreplace(memo1.text,chr(13) + chr(10),'',[rfreplaceall]);
      

  6.   

    InpugStr := StringReplace(memo1.Text,#$D#$A,'',[rfReplaceAll]);
      

  7.   

    说一句:OnKeyDown和OnKeyPress中只有一个是对的(我记不清楚哪一个了,好像是OnKeyPress),有一个即使你在代码里把#13挖掉了,它还会放进去的,因为你的代码发生在输入回车之前。
      

  8.   

    for i:=1 to memo1.Lines.Count -1 do
     s:=s+memo1.Lines.Strings[i];行行首尾相连不就好了?
      

  9.   

    非常感谢各位,我没对上述方法作过比较,但是我觉得stringreplace是最直接的.stanely的和stringreplace一样.事实上我是相对一个字符串进行操作.没有说明.下次提问的时候我会详细说明用途的.