Здравствуйте,
> NewTextEvent. Насколько мне известно, она срабатывает всегда, когда
> на экране появляется новый текст. В таком случае вопрос - срабатывает
> ли она, если текст не изменился, но поменял цвет, если текст на экране
Надо экспериментировать, поскольку из описания непонятно, как обрабатывается
данный случай. По логике должна бы срабатывать, поскольку смена цвета текста
в окошках делается путём вывода того же текста новым цветом поверх старого
при помощи, например, функции ExtTextOut входящей в Windows GDI. Но
учитывая, что логика программистов из фирмы производителя, по моему опыту
заметно может отличаться от общепринятой, не в лучшую сторону нужно это
проверять.
> не изменился, но фокус перешёл с одного элемента на другой?
Немного странный вопрос, но если я его понял, то здесь ответ такой же как и
парой строк выше. Необходимо экспериментировать, по тем же причинам. Кстати
в некоторых случаях может помочь прикрыть дырки функция
FocusPointMovedEvent.
> По итогам прошлого обсуждения я пришёл к выводу, что придётся писать
> отдельный скрипт на каждую команду перемещения - и выделения - пробел,
> инсерт, стрелки, end/home, pgup/pgdn и т.д. Меня эта перспектива
> как-то не очень прельщает. Кроме того, я подозреваю, что указанную
Можно оформить общую часть этих скриптов как отдельную функцию, и тогда
скрипты будут очень небольшими и достаточно эффективными. Написание таких
скриптов может быть даже не такой уж и сложной задачей.
> проблему выделения можно решить одной лишь функцией NewTextEvent. Тем
Похоже, что да, можно.
> по этим вопросам, тем более, что в JAWSRUI описания функций в
> соответствующем диспетчере как раз и не переведены, а без этих
> описаний смысл некоторых функций остался для меня загадочным.
Далее идёт подстрочник описания функции NewTextEvent под каждой строкой
английского текста.
Function: NewTextEvent
Функция: NewTextEvent
Description
Описание
When this function is called, it receives information pertaining to the
newly written text. If the text was written in a frame, then the text is
spoken
Когда эта функция вызывается, она получает информацию относящуюся к вновь
написанному тексту. Если текст пишется внутри фрейма, то он проговаривается
according to the frame's echo setting. Otherwise the text is sent to
SayHighlightedText() or SayNonHighlightedText. For a list of parameters
received by
в соответствии с установкой эха фрейма. Иначе текст отсылается функциям
SayHighlightedText() или SayNonHighlightedText. Для списка параметров,
полученных этой функцией
NewTextEvent and their descriptions, look at the Existing Parameters List
box on the Parameters page.
и их описания посмотрите список существующихт параметров на странице
параметров.
Returns
Возвращаемое значение
Type: Void
Тип: пустой
Parameters
Параметры
Param 1:
Type: Handle
Тип: Управляющая ссылка.
Description: Handle of the window containing the text that was written.
Описание: Управляющая ссылка на окно содержащее выведенный текст.
Include: Required
Включение: Требуется.
Param 2:
Type: String
Тип: Строка.
Description: String containing the text that was written.
Описание: Строка, содержащая текст, который был написан.
Include: Required
Включение: требуется.
Param 3:
Type: Int
Тип: целое
Description: The attributes of the text that was written.
Описание: Аттрибуты текста, который был написан.
Include: Required
Включение: требуется.
Param 4:
Type: Int
Тип: целое.
Description: The foreground color of the text that was written.
Описание: цвет текста, который был написан.
Include: Required
Включение: требуется.
Param 5:
Type: Int
Тип: целое.
Description: The background color of the text that was written.
Описание: цвет фона текста, который был написан.
Include: Required
Включение: требуется.
Param 6:
Type: Int
Тип: целое.
Description: The echo setting associated with this text.
Описание: установка эха ассоциированная с этим текстом.
Include: Required
Включение: требуется.
Param 7:
Type: String
Тип: строка.
Description: The name of the frame containing the newly written text if
applicable.
Описание: имя фрейма, содержащенго выведенный текст, если приложено.
Include: Required
Включение: требуется.
Сразу скажу, что я в курсе, что язык перевода несколько корявый, но я
во-первых перевёл всё это на бегу, а во-вторых, постарался как можно точнее
передатьсмысл исходного текста. Так что не обессудьте.
> В общем, ниже приведу те несколько скриптов из моего файла скриптов
> для Total Comander'а, которые относятся к данной проблеме.
> Include "HjGlobal.jsh"
[...скрипты поскипаны...]
> EndScript
В общем возможная реализация, хотя я бы упростил их по своей лени, используя
PerformScript. Я в общем-то так и не понял в чём проблема-то? Вроде всё
должно работать, чего не так-то?
До свидания.
***
Это сообщение No3783
было разослано для 309 участников дискуссионного листа
[JFWRus] Re[13]: Как обойтись без написания скриптов.