Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.031 c
2-1167845465
-John-Doe-
2007-01-03 20:31
2007.01.21
Послать сообщение собственному процессу (консольному приложению)?


2-1167993908
sashafan
2007-01-05 13:45
2007.01.21
ListBox1 и Memo1


15-1167233690
StriderMan
2006-12-27 18:34
2007.01.21
Женские духи


4-1157349807
1519
2006-09-04 10:03
2007.01.21
Ждущий режим


15-1167317916
Германн
2006-12-28 17:58
2007.01.21
Ну, блин и Новый Год!




   Наверх