Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
8-79056
Kaylang
2003-07-28 16:07
2003.11.24
Необходимо сделать цветное фото монохромным


1-78884
Maks Realov
2003-11-12 19:51
2003.11.24
Динамические массивы в Паскале - структура?


11-78870
Boguslaw
2003-02-25 02:12
2003.11.24
KOL object for connecting to SQLite database


14-79157
alxx
2003-10-31 11:04
2003.11.24
Быстрая графика в Delphi


3-78806
licherep
2003-11-05 10:11
2003.11.24
помогите сделать запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский