Delphi - Állomány beszúrása egy Memo komponens szövegének tetszőleges pozíciójára

forráskód letöltése
E példában annak járunk utána, hogy miként tudjuk megvalósítani azt, hogy egy Memo komponensen belül annak aktuális kurzor pozíciójára beillesszünk egy szöveges állomány teljes tartalmát egy lépésben.
Megvalósításhoz szükségünk lesz egy szöveges állományra, melyet a felhasználó az OpenDialog komponens segítségével választhat ki. A választás után a szöveges állomány tartalmát egy TStringList osztályba töltjük be annak LoadFromFile függvényével.
procedure TForm1.Button1Click(Sender: TObject);
var
  list: TStringList;
begin
  if OpenDialog1.Execute then begin
    list:=TStringList.Create;
    list.LoadFromFile(OpenDialog1.FileName);
Végül már csak a szöveg beillesztése marad a Memo komponensbe. Ehhez annak SetSelTextBuf függvényét használjuk, melynek paramétereként a beszúrandó szöveget kell átadnunk. A SetSelTextBuf függvény úgy működik, hogy ha a Memo komponensben van kijelölt szöveg, akkor az felülírásra kerül a paraméterként átadott szöveggel, amennyiben nincs kijelölt szöveg, úgy az aktuális kurzor pozícióra kerül beszúrásra.
    Memo1.SetSelTextBuf(PChar(list.Text));
    list.Free;
  end;
end;