Отправляет email-рассылки с помощью сервиса Sendsay

[TC] новые типы функций и переменных в скриптах JAWS

Мир вам, земляне.
Поскольку очень некогда рыться в справочниках, возможно кто-нибудь из
скриптоспециалистов утолит моё любопытство. Как известно в скриптах имеются
широко известные типы функций и переменных: Void, String, Int. А что из себя
представляет тип функции Variant? И какой тип носит переменная в аргументе
функции, когда перед ней ставиться указатель ByRef?
--
Евгений Корнев.

Ответить   Sat, 10 May 2014 21:44:09 +0700 (#3025469)

 

Ответы:

привет Евгений!
ц
что из себя представляет тип функции Variant?
всё что угодно.
т.е. любой тип данных языка скриптов JAWS
вот описание на английском:

The ``variant'' type
In the JAWS script language, a ``variant'' is a variable whose type is
unknown
at compile-time. Variants may be an int, string, handle, or object, and they
can be used like any of these types. You can use the JAWS built-in script
function GetVariantType to determine the type of a variant, although you may
already know the underlying type based on the context. For example, if you
request the name property of a UIA element and the return type is a variant,
the underlying type will almost certainly be a string. If you happen to know
the type of a given variant, you can declare the variable as the known type
in the scripts. For example: if the GetProperty function returns a variant,
but you know the type of the property returned will be a string, you can
assign the return value directly to a string variable, rather than having to
declare a variant. But even if you don't know that a variant is a certain
type like a string, you can still pass it to functions which take the string
type.

а это ссылка на страничку с описанием:
http://www.freedomscientific.com/documentation/scripts/JAWS-UIAScriptAPI.asp

ц
И какой тип носит переменная в аргументе
функции, когда перед ней ставиться указатель ByRef?
в функции 2 при создании переменной на второй вкладке ставим флаг
Со связью
получится вот так:
Function test (int ByRef iTest)
далее идёт код функции
в котором наша переменная получает значение
и оно после окончания функции вернётся в ту, из которой была запрошена
функция test
Виктор Горелов

Ответить   Sat, 10 May 2014 19:32:15 +0400 (#3025493)

 

Мир вам, земляне.

[ЕК] благодаря Виктору абсолютно все вопросы сняты. В том числе и
предыдущий. С моей стороны тема закрыта.
--
Евгений Корнев.

Ответить   Sun, 11 May 2014 09:56:10 +0700 (#3025731)

 

Здравствуйте, уважаемые участники дискуссии и Евгений Корнев!
Вы писали в суббота 10.05.2014 года:

имеются

себя

Variant? значит функция может возвращать всё, что угодно.
return "ok" // string
return 0 // int
Ну, а void это ничего, однако это условно, она всёравно возвращает по адресу
выхода int, только это не проверяется.

Это значит, что в функцию передаётся не значение, переменной, а её адресс.
Иными словами, если значение этого параметра функция изменит, то вы можете
использовать новые данные.
Приведу пример на VB.

Function Test (ByVal n as long, ByRef t as String) as boolian
t = "OK"
n = 0
Test = true
end function

private text as string
private num as long
text = "hellow"
num = 3333
if (Test (num, text) then
print text, num
end if
на экран будет выведено два значения:
OK 3333

OK - потому, что функция изменила значение переменной text,
а 3333, потому, что функция изменила только внутреннюю переменную, а не
переданную "num".

Чего-неть понятно чего я нагородил? :-)

Ответить   Sat, 10 May 2014 19:44:23 +0400 (#3025496)

 

Vande omentaina, Евгений Корнев!

аргументе

Variant - это тип, предусмотренный для массивов и коллекций. Он
означает, что элементами массива или коллекции могут быть значения
разных типов. Например, у тебя в массиве пять элементов, два из
которых типа string, один типа int, один типа handle и одна коллекция.
ByRef - это не тип (аргумент может быть типа string, например, но
передаваться по ссылке). ByRef на практике означает, что значение
переменной, которым ты оперируешь в функции, выносится вовне.
То есть: если у тебя до функции была глобальная переменная типа a, равная
10, а в
функции ты умножил её на два, то по умолчанию глобальная переменная
всё равно останется равной 10, так как a внутри функции и a глобальная
- это по факту две разные переменные. Если же ты передашь a по ссылке
(by reference), то все действия внутри функции будут влиять и на
глобальную переменную.
Это вкратце и на практике, без объяснения всяких штук про
распределение памяти.
.

Ответить   Sat, 10 May 2014 19:16:04 +0300 (#3025510)

 

Vande omentaina, Menelion Elensuule!

равная

Естественно, переменная a типа int.

Ответить   Sat, 10 May 2014 19:19:54 +0300 (#3025515)

 

Мир вам, земляне.

[ЕК] какой тип на выходе возвращает функция типа Variant? Если вобще
возвращает. Функция типа int возвращает целое число, функция типа string
возвращает текстовую строку, функция типа Void ничего не возвращает.
--
Евгений Корнев.

Ответить   Sun, 11 May 2014 09:42:57 +0700 (#3025726)

 

Приветствую всех.

Именно "по ссылке", а не "со связью".

Нет, не означает. См. объяснение Ивана -- оно ближе всех к сути.

А причём здесь глобальные переменные? В скриптах JAWS глобальные переменные
-- это те, что объявлены в секции GLOBALS. Они непосредственно доступны в
любых функциях или скриптах конкретного файла. Хотя практически их тоже
можно передавать в параметрах по ссылке, но смысла в этом мало.

Успехов. Анатолий.

Ответить   "i_chay" Sun, 11 May 2014 07:57:54 +0300 (#3025739)

 

Vande omentaina, "i_chay"!

Почему не означает? Я же говорю именно про практическую сторону дела.
Понятно, что на самом деле идёт ссылка на тот же адрес памяти, но для
скриптера JAWS это не столь важно, имхо.

Ответить   Mon, 12 May 2014 00:06:12 +0300 (#3026133)

 

Приветствую всех.

Не означает, потому что никаких практических действий по "вынесению
переменной вовне" не производится. Это исключительно ваша интерпретация
происходящего, к тому же логически несостоятельная, даже если использовать
вашу же терминологию.
Ведь имя переменной, которая используется в качестве фактического параметра,
не становится видимым за пределами текущей области видимости (то есть к
этому имени извне вы по-попрежнему обратиться не можете).
По ссылке именно выполняется доступ к той же ячейки памяти и не более того
(а а на уровне ячеек памяти понятие "области видимости" вообще теряет
смысл). Никакого изменения или расширения области видимости имён не
происходит.
Крайне желательно понимать, что имя переменной (и любое имя) и сама
переменная -- это не одно и то же. Разница примерно такая же, как между
знаком и обозначаемой им сущностью.
Второй момент связан с тем, что нет никаких причин (кроме встроенных
ограничений конкретных языков) для того, чтобы одна переменная (то есть
ячейка или область памяти, хранящая значение) имела бы более одного имени.
Ссылки (или ссылочный тип) и есть конкретная реализация такого подхода. То
есть ссылка -- это всего лишь псевдоним имени переменной.
В скриптах JAWS механизм ссылок полностью не задействован, но понимать
ссылки лучше именно как псевдонимы. В частности, в функциях формальный
параметр будет всего лишь псевдонимом (а не копией) фактического параметра.
Такое понимание абстрагирует от практического механизма реализации ссылок (с
передачей адреса или как-то иначе).
Но еще раз подчеркну: никакое имя за пределы своей области видимости не
выходит!

Успехов. Анатолий.

Ответить   "i_chay" Mon, 12 May 2014 07:10:21 +0300 (#3026189)

 

Приветствую всех.

Не совсем так. Тип элементов коллекции один и тот же -- Variant. Но значение
переменной такого типа может быть любым из поддерживаемых конкретным языком.
Этот тип можно использовать не только в коллекциях. Вот вполне рабочий
пример:
var
Variant v
v = 10
say(v,0)
v = v +21
say(v,0)
v="hello"
say(v,0)
v = GetAppMainWindow (GetFocus())

say(v,0)

...
На самом деле, тип Variant -- это один из распространённых способов
реализации переменных с динамической типизацией, то есть когда тип
переменной определяется её значением. Разумеется,в таком случае нет смысла
указывать конкретный тип переменной, но поскольку пресловутая обратная
совместимость не позволяет ввести в скриптах JAWS новый синтаксис с чистого
листа, то и сосуществуют в одном и том же языке переменные со строгой
типизацией и отдельный тип для переменных с динамической типизацией.

Успехов. Анатолий.

Ответить   "i_chay" Sun, 11 May 2014 08:41:55 +0300 (#3025747)

 

Здравствуйте!
Планируется установка JAWS 14 32 бита без интернета.
Дайте, пожалуйста, ссылки на всякие там видеоперехваты и распознователи
графики, а может я еще чего не знаю.
Заранее спасибо.

Ответить   Sat, 24 May 2014 23:27:05 +1100 (#3036654)

 

Приветствую всех!

Здравствуйте, Александр .

суббота, 24 мая 2014 г., 17:27 Вами было написано:

Ответ:

Видео перехват уже присутствует в джозе.
вот ссылка на распознование:
http://yadi.sk/d/AmPuQ90eRAfta
распокуете архив, и положите файл рядом с установщиком джоза.
Желаю удачи!
-Случайный афоризм-
Spell checker error - not enough mana to cast spell

Ответить   Sat, 24 May 2014 18:48:58 +0500 (#3036685)

 

Привет, рассылка!

24.05.2014 17:48, Шахтахтинский Руфат пишет:

А также ссылка на установщик одной системной библиотеки, которую тоже
нужно положить в папку с установщиком Jaws::
http://yadi.sk/d/zTCOvKHiNRmjK

Ответить   Sat, 24 May 2014 18:03:17 +0400 (#3036701)

 

Здравствуйте,Алексей Лапшинов!
Вы писали:
А также ссылка на установщик одной системной библиотеки, которую тоже
нужно положить в папку с установщиком Jaws::
http://yadi.sk/d/zTCOvKHiNRmjK

файл с названием: vcredist2005_x86.exe
Если не секрет, что это за библиотека, и зачем она нужна?
Так же вопрос: подойдет ли все это дело для Jaws 15 32 бита?
Заранее спасибо.

Ответить   Mon, 26 May 2014 17:27:56 +1100 (#3037799)

 

Привет, рассылка!

26.05.2014 10:27, Александр пишет:

Microsoft visual C 2005.

Некоторые программы не будут работать без этой библиотеки. Как я понял,
Jaws эту библиотеку тоже ищет и устанавливает из интернета, если она не
была установлена ранее.

Возможно, но я лично 15-ый джоз не ставил. Для 14-ого точно должно подойти.

Ответить   Mon, 26 May 2014 11:09:13 +0400 (#3037829)

 

Приветствую, Александр!
Y Планируется установка JAWS 14 32 бита без интернета.
Дайте, пожалуйста, ссылки на всякие там видеоперехваты и распознователи
графики, а может я еще чего не знаю. Y

Совсем без интернета не обойтись!
Дело втом, что для корректной работы этого jaws, требуются обновления
Windows.

Ответить   Георгий Sat, 24 May 2014 22:32:06 +0400 (#3036945)

 

Доброго времени суток, Уважаемые участники листа. Всех с прошетшим
праздником, с днём великой победы.

Прошу прощения, был неправ, в придэдущем письме.

В версии "Mp3 finder - 1.8.0", добавелось ещё несколько ресурсов, mo
ap. Полные адреса сайтов, я непомню, а, вот, с сайта vk.com короткий
префикс, будет Ve сервер zaycev.net короткий префикс, Zn. Ещё раз,
прошу прощения, за неверный ответ.

С уважением и наилучшими пожеланиями, Василий Золоторёв Гомельская
область, Буда-Кошелевский район. Эл. Почта:
zolotorjovvasil***@r*****.ru skype:vaszolvas

Ответить   "Натуральный, Блондин" Sat, 10 May 2014 19:06:22 +0400 (#3025903)