Delphi-Quellcode:
const
InsertText = 'test'; //Der String zum Einfügen
var
MemoText: string; //Eine variable für Memo1.Text
Select: Integer; //Position des Selektionsbegins
begin
MemoText:=Memo1.Text;
Select:=Memo1.SelStart; //Selektionsbeginn zwischenspeichern
if Memo1.SelLength>0 then
begin
Delete(MemoText, Select+1, Memo1.SelLength); //Selektiertes löschen
end;
Insert(InsertText, MemoText, Select+1); //neuen Text einfügen
Memo1.Text:=MemoText; //Text zurück zu Memo1
Memo1.SelStart:=Select; //Selektionsbeginn wiederherstellen
Memo1.SelLength:=length(InsertText); //neuen Text markieren (nicht sichtbar, da Memo nicht Fokussiert ist)
end;
Ich hoffe, das hilft... Bei mir hat es geklappt...
Die Markierung soll hinter das letze Zeichen? Kein Problem!
Delphi-Quellcode:
const
InsertText = 'test'; //Der String zum Einfügen
var
MemoText: string; //Eine variable für Memo1.Text
Select: Integer; //Position des Selektionsbegins
begin
MemoText:=Memo1.Text;
Select:=Memo1.SelStart; //Selektionsbeginn zwischenspeichern
if Memo1.SelLength>0 then
begin
Delete(MemoText, Select+1, Memo1.SelLength); //Selektiertes löschen
end;
Insert(InsertText, MemoText, Select); //neuen Text einfügen
Memo1.Text:=MemoText; //Text zurück zu Memo1
Memo1.SelStart:=Select+length(InsertText); //Selektionsbeginn hinter neuem Text wiederherstellen
Memo1.SelLength:=0; //Selektion auf 0 beschränken
end;
Hallo Rackergen2, es muss heissen:
"Insert(InsertText, MemoText, Select +1); //neuen Text einfügen"
ansonsten setzt er den Text immer an die vorletzte Stelle.
Gruß