...Insert a string at caret point (memo)?
Author: Giuliano
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;
printed from
www.swissdelphicenter.ch
developers knowledge base