Доброе время суток.
Я подключаюсь к Ворду и использую его в качестве редактора в своем приложении. Заменил его попап своим, но хочу использовать проверку правописания. Работает, но есть один ньюанс — когда текст многоязычный (русский и английский) не могу получить вариантов (suggestions) для английского слова.
Вот функция которой я получаю список вариантов:
function TWordEditor.GetSpellingSuggestions(AWord: WideString): TTntStringList;
var
ss: Variant;
i: integer;
begin
Result := nil;
if AWord <> '' then
begin
try
ss := FApplication.GetSpellingSuggestions(AWord);
if ss.Count > 0 then
begin
Result := TTntStringList.Create;
for i := 1 to ss.Count do
Result.Add(ss.Item(i).Name);
end;
except
if Assigned(Result) then
FreeAndNil(Result);
end;
end;
end;
Например есть два неправельных слова Масква foood
Если передаать в эту функция Масква она ворвратит Москва b маска
Но если передать сюда foood то получим nil на выходе.
Хотя если оставить офисное попап меню то оно выдает варианты и для английского слова.
Вопрос как вызвать FApplication.GetSpellingSuggestions чтобы он использовал все словари и выдавал варианты для всех языков?
Спасибо.
Здравствуйте, magedon, Вы писали:
M>Хотя если оставить офисное попап меню то оно выдает варианты и для английского слова.
M>Вопрос как вызвать FApplication.GetSpellingSuggestions чтобы он использовал все словари и выдавал варианты для всех языков?
Оффисное меню по-видимому откуда-то знает про все доступные CustomDictionary

А иначе используется один главный Dictionary, у Вас это Русский.
Попробуйте явно задать параметры GetSpellingSuggestions:
[In, Optional] ref object CustomDictionary,
[In, Optional] ref object CustomDictionary2,
...
[In, Optional] ref object CustomDictionary10