Правя приложение, което замества различни думи от два много сходни говорещи езика. Броят на думите във времето вероятно ще достигне поне 10 000+. Няма големи разлики в думите, това са почти еднакви езици, но въпреки това съществуват разлики.
И така, успях да заменя думите в Memo достатъчно бързо, но това, което не знам, е как да избера всички заменени думи в Memo, за да може да се види кои думи са заменени. Възможно ли е това?
Ето как се заменят думите:
procedure TForm1.TranslateExecute(Sender: TObject);
var i: integer;
S, OldPattern, NewPattern: string;
begin
S:= Memo1.Lines.Text;
for i := 0 to (StrListV.Count - 1) do {StrListV is created earlier, contains words that should be replaced}
begin
OldPattern:= StrListV.Strings[i];
NewPattern:= StrListV1.Strings[i]; {StrListV1 contains new words}
S:= FastStringReplace(S, OldPattern, NewPattern,[rfReplaceAll]);
end;
Memo1.BeginUpdate;
Memo1.Clear;
Memo1.Lines.Text:= S;
Memo1.EndUpdate;
end;
TRichEdit
) може да направи това, но ще трябва да намерите къде е всяка дума, която трябва да бъде осветена, в съдържанието на контролата, за да я осветите (естествено, простото заместване на низ на съдържание не е достатъчно за цялостната ви задача). - person TLama   schedule 19.05.2015