这是Memo1.Lines.Insert的源代码procedure TMemoStrings.Insert(Index: Integer; const S: string);var SelStart, LineLen: Integer; Line: string;begin if Index >= 0 then begin SelStart SendMessage(Memo.Handle, EM_LINEINDEX, Index, 0); if SelStart >= 0 then Line S + #13#10 else begin SelStart SendMessage(Memo.Handle, EM_LINEINDEX, Index - 1, 0); if SelStart < 0 then Exit; LineLen SendMessage(Memo.Handle, EM_LINELENGTH, SelStart, 0); if LineLen = 0 then Exit; Inc(SelStart, LineLen); Line #13#10 + s; end; SendMessage(Memo.Handle, EM_SETSEL, SelStart, SelStart); SendMessage(Memo.Handle, EM_REPLACESEL, 0, Longint(PChar(Line))); end;end;