Cкандал с *отмывкой денег* не отразится на отношениях США и России, считает ОлбрайтЦРУ назвало главных ракетных врагов США: Россия, Китай, Северная КореяВзрыв жилого дома положил конец спокойствию в столице

Gazeta.Ru

Prev   25.11. 0, вторник Московское время: 12:15:33 Выпуск No. 048   Next
 
[13.05.1999, 21:19:54]
Сергей Лосев,
<srlosev@4unet.ru>
К борьбе с синонимами...

Итак, синонимы...



Столь странная тема выбрана нами из-за того, что, во-первых, надо с чего-то начинать, во-вторых, создаваемая программа затрагивает много интересных особенностей Word, о которых можно узнать лишь что-то запрограммировав, и, в-третьих, программа (по личному убеждению) позволяет полностью отказаться от использования диалогового окна со страшным заголовком "Тезаурус: Русский", открываемого еще более страшной командой меню Сервис – Язык – Тезаурус.

Что понадобится для создания программы? Всего четыре вещи...

  1. Умение работать в Visual Basic for Application и понятие об объектах Microsoft Office.
  2. Объект CommandBars.
  3. Умение писать обработчики событий объекта Application.
  4. Функция SynonymInfo

А что должно получиться в итоге? Опять же четыре вещи...

  1. В контекстном меню должна появиться команда "Синонимы".
  2. При выборе этой команды на экране должна появляться панель инструментов "Синонимы", содержащая список синонимов.
  3. При выборе любой команды в панели "Синонимы" текущее слово должно заменяться на выбранный синоним.
  4. И практически никаких диалоговых окон (практически – это потому, что если синонимов нет, об этом надо каким-то образом сообщить).



Что ж, цель ясна. Можно переходить к теоретическим выкладкам.

Редактор программ на Visual Basic for Application

Редактор программ на Visual Basic for Application – это отдельное приложение, которое вызывается из любого другого приложения Microsoft Office (в данном случае из Word) с помощью клавиш Alt-F11. При этом появляется окно, подобное представленному на рисунке. Большую часть времени придется провести именно в этом редакторе.



Пока в редакторе ничего нет. Модуль, форму или модуль класса нужно прежде создать, воспользовавшись меню Вставка. Но стоп! Еще рано создавать модули.

Word имеет очень интересную структуру документа. Каждый новый документ создается на базе шаблона Normal.Dot. А, следовательно, если поместить модули непосредственно в этот шаблон, то они будут доступны все документам без исключения. Вставка же модулей в текущий документ ограничит их использование лишь каким-то одним документом, а кроме того, при его открытии вы будете навязчиво информированы о возможной атаке вирусов – слишком болезненно Word реагирует на любую самую безобидную программу на Visual Basic for Application.

А вообще о том, что из себя представляет Microsoft Word с точки зрения программиста можно узнать из вполне серьезной статьи в апрелевском номере "КомпьютерПресса", которая располагается на CD ROM к журналу.

Поскольку никаких вирусов нами создаваться не будет, причин для беспокойств нет.

Объект CommandBars

Объект CommandBars универсален. Это одновременно и меню, и панели инструментов, и контекстное меню. Открыв справочную информацию по этому объекту, вы сможете удостовериться, что любые команды, как бы они не выглядели, например:
так так или так


создаются с помощью свойств и методов объекта CommandBars.

А вот и пример, показывающий, как программно управлять панелями инструментов. В следующей программе удаляются все панели инструментов, которые не являются встроенными (свойство BuiltIn)и не отображаются на экране (свойство Visible).

Свойство SynonymInfo

Говоря научным языком (иначе, впрочем, и не скажешь), SynonymInfo – это свойство, которое позволяет получить набор синонимов, антонимов и похожих по смыслу терминов для указанного слова. Свойство имеет такой синтаксис:

SynonimInfo(<слово>, <код языка>)
где
<слово> – слово, о котором вы хотите получить информацию.
<код языка> – константа wdRussian, wdEnglishUS или wdEnglishUK.

Возвращаемый свойством результат представляет собой ссылку на одноименный объект. В нем нам понадобятся свойства SynonymList и AntonymList.

Как использовать эти свойства? Лучшим ответом на вопрос является следующий пример, в котором отбираются синонимы и антонимы для слова "Большой".

От слов к делу

Настала пора ввести текст основной программы и как можно подробнее прокомментировать процесс ввода. По понятным причинам, комментарии не могут растянуться на 50 страниц, приходится укладываться всего в 1-2.

Этап I. Создание модуля класса.

Особенность объекта Application, вернее, событий объекта Application, состоит в том, что для их активизации требуется создать модуль класса и инициализировать в нем объект. Вот какие действия при этом вам надо выполнить:

  1. Раскройте в окне проекта ветвь Normal.
  2. Выполните команду меню Вставка – Модуль класса
  3. Откройте окно свойств, щелкнув по кнопке . Укажите имя нового класса – в следующих программах используется имя EventClass.
  4. Введите в модуле класса следующие строки:

Этап II. Создание вспомогательных процедур.

  1. В шаблоне Normal создайте новый модуль, выбрав в меню команду ВставкаМодуль.
  2. Введите в нем процедуру Prepare_PopMenu_Text.
  1. Введите процедуру ShowSynCtrlBars. Это основная процедура нашей программы, она довольно большая и не допускает каких-либо ошибок при вводе.
  1. Введите процедуру InsertMenuCommand
Этап III. Создание событий для объекта Document

Чтобы при создании или открытии документа в контекстном меню появлялась команда "Синонимы", надо инициализировать события Document_New и Document_Open. Для этого откройте ветвь Microsoft Word Объекты для шаблона Normal, щелкните по ThisDocument, чтобы открыть соответствующий модуль, и введите в нем следующий код.

Этап IV. Заключительный этап.

  1. Убедитесь, что все модули введены правильно (в этом поможет режим отладки и компиляции).
  2. Сохраните шаблон Normal.dot, нажав клавиши Ctrl-S.
  3. Создайте новый документ.
  4. Введите в нем слово "большой". Установите в середине этого слова курсор и щелкните правой кнопкой мыши.
  5. Должно появиться контекстное меню, в котором находится пункт "Синонимы".
  6. Выберите пункт "Синонимы", а затем в панели инструментов укажите нужное вам слово, – оно заменит слово "большой".
  7. У вас все должно получиться.


. Лист SOFT: подпишись!
. download.ru: русский софт
. Freeware.ru: халява, сэр!
. FreewareHome - то же
. DaveCentral - каталог
. TuCows - выбери зеркало
. WinFiles - часть C|Net.
. NoNags - только даром
. Filez - поиск софта
. FTPSearch - пойск по FTP
... Русский FTPSearch
ПРОШЛЫЕ ВЫПУСКИ
АВГУСТ 1999
Пн Вт Ср Чт Пт Сб Вс
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

НОВОСТИ OFFLINE
Наши новости - на пейджер Мобил Телеком!
Наши новости - на ваш пейджер!
НОВОСТЬ ДНЯ
В Москве взорвался жилой дом
В Москве взорвался жилой дом
КОММЕНТАРИИ
Пропавшие дети - 2
Пропавшие дети - 2
ПОМОГИТЕ ДЕТЯМ!
П о м о г и т е  д е т я м !
WWW.SOS.RU
Ляпкин Антон Ляпкин Антон
Отсутствие желчного пузыря
Роман Чеснов (3435) 23-64-94
ПОЛИТИКА В РЖ
Война. Отставка. Все про август!
Война. Отставка. Все про август!
MSNBC.RU
GAZETA.RU - ПАРТНЕРЫ MSNBC.RU
ПРАЗДНИК
праздник



ПОИСК ПО РАЗДЕЛАМ:

GAZETA.RU

.   Ну и денек

.   Бесэдер?

.   Немузыка

.   Macht Frei

.   Time o'clock

.   Текущий выпуск

.   От редакции

.   Алгоритм

.   Досье

.   Дисковод

.   Публикация

.   Служебный раздел

.   Здоровье

.   Интернет

.   Интервью

.   Книги

.   Комментарии

.   Культура

.   Курицын Daily

.   Лесные дали

.   Мнения

.   Наедине со всеми

.   Общество

.   Пресса

.   Пушкинский проект

.   Спорт



Lenta.Ru Rambler

RB2 Network

RB2 Network

Prev   25.11. 0, вторник Московское время: 12:15:33 Выпуск No. 048   Next

Пишите нам: info@gazeta.ru
Copyright © Gazeta.Ru
RRU_Network