Mega Code Archive

 
Categories / Delphi / Strings
 

Insert a string at caret point [memo]

procedure TForm1.InsertText(str: string; Amemo: TMemo); var Str1: string; i, ui: Integer; begin ui := Length(Amemo.Lines[Amemo.CaretPos.y]); str1 := Amemo.Lines[Amemo.CaretPos.y]; if Pos('<$Cursor$>', str) > 0 then begin i := Pos('<$Cursor$>', str); str := StringReplace(str, '<$Cursor$>', '', [rfReplaceAll, rfIgnoreCase]); i := i - 1 + ui; end else i := -30; Insert(str, Str1, Amemo.CaretPos.x + 1); Amemo.Lines[Amemo.CaretPos.y] := str1; if i <> -30 then begin Amemo.SelStart := Amemo.Perform(EM_LINEINDEX, Amemo.CaretPos.y, 0) + i; Amemo.SetFocus; end; end;