Hallo Bent1995,
ganz so viel hät es ja auch nicht sein müssen.
Ich vermute mal es knackt hier:
Delphi-Quellcode:
procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
var
SelPos, SPos, SLen, TextLength: Integer;
SearchString : string;
begin
with TReplaceDialog(Sender) do begin
TextLength:=Length(RichEdit1.Lines.Text);
SPos:=RichEdit1.SelStart;
SLen:=RichEdit1.SelLength;
SearchString := Copy(RichEdit1.Lines.Text,
SPos + SLen + 1,
TextLength - SLen + 1);
SelPos := Pos(FindText, SearchString);
if SelPos > 0 then begin
RichEdit1.SelStart := (SelPos - 1) + (SPos + SLen);
RichEdit1.SelLength := Length(FindText);
RichEdit1.SelText := ReplaceText;
end
else MessageDlg('Konnte Elemnt nicht finden "' + FindText +
'"', mtError, [mbOk], 0);
end;
end;
SelPos gibt die Position innerhalb Textabschnittes (Searchstring)an , der hinter dem selektierten Text liegt.
Was Du aber benötigst ist die Position im vollständigen Text also
SelPos:=Selpos+Spos+Slen;
Da
Selpos für das erste Zeichen
0 benutzt und
Pos die
1 müßtest Du da ggf. noch etwas Feintuning betreiben.
Gruß
K-H