Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.21;
Скачать: CL | DM;

Вниз

Спеллер Word а для нужд программы.   Найти похожие ветки 

 
AlexanderMS ©   (2007-01-03 16:37) [0]

Как можно заставить вордовский спеллер проверить орфографию в произвольном сочетании слов?


 
vlad-mal ©   (2007-01-03 20:49) [1]

Например:
бросаем на форму:

   wdApp: TWordApplication;
   wdDoc: TWordDocument;


С параметрами, например, такими:

 object wdApp: TWordApplication
   AutoConnect = False
   ConnectKind = ckRunningOrNew
   AutoQuit = True
 end
 object wdDoc: TWordDocument
   AutoConnect = False
   ConnectKind = ckRunningOrNew
 end


и реализуем два метода:
    procedure DoWord; // Инициализация MS Word
    procedure WorkWithWord; // Собственно, работа


Реализация:

procedure TForm1.DoWord;
var
 Template, NewTemplate, DocumentType, Visible, ItemIndex: OleVariant;

begin
 try                                   // Попытка коннекта
   wdApp.Connect;
   ItemIndex := 1;
   //    wdApp.Application.EnableEvents := false; // Ускоряем
   Template :=
     "C:\Doc.Doc";
   NewTemplate := False;
   DocumentType := wdTypeDocument;
   Visible := False;
   wdApp.Documents.Add(Template, NewTemplate, DocumentType, Visible);
   wdDoc.ConnectTo(wdApp.Documents.Item(ItemIndex));
 except
   on E: Exception do begin
     ShowMessage("Ошибка активизации приложения Microsoft Word. " +
       E.Message);
     if Assigned(wdApp) then
       if (wdApp.Documents.Count > 0) then begin
         wdApp.AutoQuit := True;       // Пусть не зависает фигня в системе!
       end;
     exit
   end;
 end;

 try
   WorkWithWord;
 except
   on E: Exception do begin
     ShowMessage("Ошибка работы с Microsoft Word. " +
       E.Message);
     if Assigned(wdApp) then
       if (wdApp.Documents.Count > 0) then
         wdApp.AutoQuit := True;       // Пусть не зависает фигня в системе!
     exit
   end;
 end

end;


Ну и сама работа:

procedure TForm1.WorkWithWord;
var
 fsaveChanges      : OleVariant;
begin
 fsaveChanges := False;
 wdDoc.Select;
 wdApp.Selection.Select;
 wdApp.Selection.Text := "Здравствуй, Юра, Новый Гоd!";
 wdDoc.CheckGrammar;
 wdDoc.Close(fsaveChanges);
 wdApp.Disconnect;

end;


И все.


 
DrPass ©   (2007-01-04 01:09) [2]

Имхо, разумнее скачать с Torry компонентину TSpellChecker, которая пользуется вордовским спеллчекером напрямую, без необходимости запуска Ворда. И вообще без необходимости иметь его на компьютере, ей достаточно лишь самой библиотеки спеллчекера и словарика для нужного языка


 
vlad-mal ©   (2007-01-04 15:00) [3]

Конечно, лучше. :)

Однако, что чел хотел - то и получил.


 
AlexanderMS ©   (2007-01-04 16:16) [4]

Большое спасибо!

Такой роскоши, как TSpellChecker, мне не нужно (скачал, посмотрел, куча модулей, компоненты всякие).

Вариант [1] устраивает с исключением:
Как понять, что в слове ошибка?!

Попробую так : CheckGrammar(SomeWord);



Страницы: 1 вся ветка

Текущий архив: 2007.01.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.076 c
15-1167179073
Petr V. Abramov
2006-12-27 03:24
2007.01.21
Майкрософт — черти!


15-1167257364
Real
2006-12-28 01:09
2007.01.21
День благодарения


15-1167174176
Andy BitOff
2006-12-27 02:02
2007.01.21
Или я туплю, или одно из двух


15-1167825467
kaZaNoVa
2007-01-03 14:57
2007.01.21
Автоматизация сбора ресурсов


2-1167458583
FIL-23
2006-12-30 09:03
2007.01.21
можно ли Delphi менять "стиль" кнопок