Больше года назад я писал в блоге про API Яндекс.Спеллера – сервис проверки правописания. Тогда я представил вариант работы с API, используя простые POST-запросы и анализ XML.
Сегодня я решил вновь вернуться к этому API и написал небольшой компонент для Delphi который реализует работу с Яндекс.Спеллером через SOAP.
Установка компонента.
Для установки компонента необходимо:
1. Распаковать архив в любую директорию
2. Запустить Delphi и открыть пакет YandexSpeller.dpk
3. Щелкнуть в Project Manager’е правой кнопкой мыши по YandexSpeller.bpl и выбрать Install.
Компонент YandexSpeller будет доступен с вкладки “BuBa Group” палитры компонентов.
Свойства компонента.
Компонент YandexSpeller является наследником от THTTPRio о котором я упоминал в прошлом посте. Все свойства, необходимые для работы с веб-сервисом устанавливаются автоматически при добавлении компонента на форму.
Свойство WSDLLocation: string
Задает положение WSDL-документа. Значение по умолчанию http://speller.yandex.net/services/spellservice?WSDL
Свойство Port: string
По умолчанию принимает значение SpellServiceSoap12
Свойство Service: string
По умолчанию принимает значение SpellService
Менять эти свойства стоит только в том случае, если произошли какие-либо изменения в работе API. Обо всех изменениях можно всегда узнать на страничке тех.поддержки сервиса.
Свойство Format: TFormat
Задает формат проверяемого текста и может принимать два значения plain или html. Значение по умолчанию plain.
Вкладка свойств SpellOptions
Здесь можно задать настройки Спелллера. Описания всех возможных настроек можно узнать на странице документации по API.
Вкладка свойств LangOptions
Здесь можно задать проверку на каких языках необходимо задействовать. На данный момент Спеллер поддерживает три языка для проверки правописания: русский, английский и украинский.
Значения по умолчанию: Russian = True, English = True;
Методы компонента.
Как и сам Спеллер, компонент содержит всего два метода.
function CheckText(Text: string): TCheckTextResponse;
Проверяет правописание в произвольной строке текста. Результат функции представляет собой объект:
CheckTextResponse = class(TRemotable) private FSpellResult: SpellResult; public constructor Create; override; destructor Destroy; override; published property SpellResult: SpellResult read FSpellResult write FSpellResult; end;
В котором SpellResult представляет собой массив объектов:
SpellError = class(TRemotable) private Fcode: Integer; Fpos: Integer; Frow: Integer; Fcol: Integer; Flen: Integer; Fword_: string; Fs: Array_Of_string; Fs_Specified: boolean; procedure Sets(Index: Integer; const AArray_Of_string: Array_Of_string); function s_Specified(Index: Integer): boolean; published property code: Integer Index (IS_ATTR) read Fcode write Fcode; property pos: Integer Index (IS_ATTR) read Fpos write Fpos; property row: Integer Index (IS_ATTR) read Frow write Frow; property col: Integer Index (IS_ATTR) read Fcol write Fcol; property len: Integer Index (IS_ATTR) read Flen write Flen; property word_: string read Fword_ write Fword_; property s: Array_Of_string Index (IS_OPTN or IS_UNBD) read Fs write Sets stored s_Specified; end;
О том, что представляет каждое из свойств объекта SpellError можно узнать на этой странице документации по API.
function CheckTexts(Texts: TStrings): TCheckTextsResponse;
Проверка правописания в произвольном списке строк. Результат функции представляет собой массив объектов CheckTextResponse.
Пример использования компонента.
Создайте новое приложение Delphi и разместите на главной форме приложения следующие компоненты:
- TYandexSpeller
- TButton
- TListBox
Напишите следующий обработчик onClick кнопки:
procedure TForm1.Button1Click(Sender: TObject); var Res: TCheckTextResponse; Err: TSpellError; S: string; begin Res:=YandexSpeller1.CheckText('синхрофазатрон'); for Err in Res.SpellResult do begin ListBox1.Items.Add('Ошибка в слове '+Err.word_); for s in Err.s do ListBox1.Items.Add(s) end; end;
В приведенном выше коде мы используем метод CheckText для проверки правописания в слове “синхрофазатрон”. Затем выводим в ListBox сведения по найденным ошибкам и предлагаем варианты слов для правильного написания (свойство s).
Книжная полка
Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
|
||
Название: О чем не пишут в книгах по Delphi
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
|
Почему-то не устанавливается компонент на Delphi 2010.
Что может быть за проблема?
SOAP компоненты включены.
https://yadi.sk/i/QGXLWVk34ygptA