şimdi aynı döngü içinde komple metni verdiğin için, dize içinde sırayda değiştiriyor.şöyle garip bir yöntem var en basit haliyle,
procedure TForm1.Button1Click(Sender: TObject);
const
kelimeler : array[0..2] of string = ('resim','ad','hekim');
esanlamlilar : array[0..2] of string = ('fotograf','isim','doktor');
var
i,j : Integer;
metin : string;
begin
Memo2.Lines.Clear;
for j := 0 to Memo1.Lines.Count - 1 do
begin
metin := Memo1.Lines[j];
For i := 0 to Length(kelimeler) -1 do
begin
if AnsiPos(kelimeler[i],metin)>0 then
metin := StringReplace(metin ,kelimeler[i],esanlamlilar[i],[rfReplaceAll, rfIgnoreCase])
else
metin := StringReplace(metin ,esanlamlilar[i],kelimeler[i],[rfReplaceAll, rfIgnoreCase])
end;
memo2.Lines.Add(metin);
end;
end;önce kelimeler dizesinde arıyor bulursa değiştiriyor bulamazsa esanlamlilar dizesinde arıyor.