Форум: "Потрепаться";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизПроверка правописания Найти похожие ветки
← →
Fants (2003-11-01 13:57) [0]Подскажите пожалуйста! Как можно реализоват проверку правописания, можно ли к своей программе подключить
проверку правописания из Office
← →
xGhost (2003-11-01 15:38) [1]Используй ActiveX
Нужный модуль экспортируй из списка и работай на здоровье :)
← →
mashinist (2003-11-02 04:00) [2]Такие компоненты есть.
Название не помню. Поищи сам.
← →
KSergey (2003-11-02 09:35) [3]Например, компонента TSpellChecker и ее подправленные потомки.
http://www.formulasoft.ru/spellchecker.html
Вся в исходниках, беспатная, изучай на здоровье.
Или сам. Тогда из ворда методы (ну из его COM-объекта, имеется в виду):
WordApp.CheckSpelling - проверка
WordApp.GetSpellingSuggestions - варианты замены
Удаоился об такую фигню: GetSpellingSuggestions не работает, если в ворде не создан документ, хотя это вроде как и метод объекта WordApplication, а не документа (MS Word 97, во всяком случае).
Для этого предлагаю код подключения (при позднем связывании) например такой (будут предложения - пиши, может что-то не учел):
var
WordDoc: OLEVariant;
IsMSWordNew: Boolean;
begin
// подключиться к MS Word, настроить его
try
FWordApp := GetActiveOleObject ("Word.Application");
IsMSWordNew := FALSE; // признак, что удалось подключиться к существующему экземпляру ворда
except
FWordApp := CreateOLEObject ("Word.Application");
FWordApp.Visible := FALSE;
IsMSWordNew := TRUE; // признак, что создан новый ворд - его надо будет закрыть
end;
try // для гарантированного отключения от MS Word
// как было выяснено, для получения списка вариантов слов в ворде обязательно должен быть создан хоть один документ
if FWordApp.Documents.Count < 1 then
WordDoc := FWordApp.Documents.Add
else
WordDoc := NULL; // указать, что своего документа не создавалось и необходимоcти его закрывать - нет
........; // собственно проверка орфографии
finally
// отключиться от MS Word
if VarType(WordDoc) <> varNull then WordDoc.Close(FALSE);
if IsMSWordNew then
FWordApp.Quit (FALSE);
end;
Кусочек текста по поводу проверки слова (только слово!!) и отображения вариантов (здесь TestWord: String - проверяемое слово из текста):
if NOT FWordApp.CheckSpelling(TestWord) then // если слово не правильное
begin
// оформить поля ввода в форме
// варианты замены
lbxChoice.Items.Clear; // lbxChoice - это ListBox
Sugg := FWordApp.GetSpellingSuggestions(TestWord);
if Sugg.Count < 1 then
begin
lbxChoice.Items.Add (" (нет вариантов)");
lbxChoice.Enabled := FALSE;
end
else
begin
for i := 1 to Sugg.Count do
lbxChoice.Items.Add (Sugg.Item(i).Name);
lbxChoice.Enabled := TRUE;
end;
Еще найденные мною варианты:
Название Addict - диалог проверки орфографии. Взято тут http://delphi.chertenok.ru/forum/my_download.php?tema=del&action=show&id=117
Это пример применения в FAR-е, с сиходниками. Тут используется иной метод подключения, хотя скорее всего к тому же ворду (вернее, к офисной проверке орфографии, собственно ворд тут уже ни при чем) будет произведено подключение, т.к. врятли у кого-то есть другие проверяльщики орфографии на компе (через CSAPI)
Плугин - gSpell
http://plugring.farmanager.com/cgi-bin/downld.cgi?Draw=List&Select=Categ&SelectCateg=Spelling
Описание по CSApi я тоже где-то стырил, но не помню где.
К стати, поищите по строке "Добавление функций проверки орфографии в разрабатываемые приложения" - статья есть, где все это подробнейше описано. Только метод подключения к ворду я использую несколько по-своему (см. выше) ввиду обнаруженного нюанса.
Попадались мне так же 3-4 примера для VB, но уже не буду здесь загромождать, т.к. по сути - это тоже самое. Хотя, есть и еще метод: текст пихается в ворд (программно ;), запускается проверка орфографии, по ее окончании - забираем текст обратно. Кода вообще минимум, все почти красиво, но свое приложение в этот момент не отрисовывается... Ну там с потоками можно мудрить - но стоит ли?
Такой вот отчетик ;)
PS
Это все я нарыл примерно за пол-дня в инете (вместе с тщательным изучением, моделированием и отсеканиет одинаковых вариантов). Может и тебе в след. раз с избитыми вообще-то вопросами так же попробовать поступить?
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c