Внешняя компонента Game.dll (таймер, ГСЧ, захват клавиатуры)

Внешняя компонента для 1С 7.7 для работы с таймером, генератором случайных чисел и для захвата клавиатуры.

В рубрике #Раритет 🙂 авторская разработка 2002 года

Внешняя компонента для 1С 7.7, реализующая функции для работы с таймером, генератором случайных чисел и захвата клавиатуры (обработка нажатий клавиш).

Реализованные функции штатно отсутствуют в 1С, и могут использоваться при необходимости в каких-либо алгоритмах на встроенном языке, в специализированных обработчиках, и для написания игр на 1С. Для чего собственно она и была разработана, ради спортивного интереса.

Разработана по технологии создания внешних компонент 1С в целях её изучения. Для интересующихся имеются исходники внешней компоненты на Delphi.

Для использования файлы Game.dll и Game.als поместить в каталог 1Cv77/BIN и зарегистрировать компоненту в системе командой "regsvr32 game.dll"

Пример использования:

ЗагрузитьВнешнююКомпоненту("Game.dll");
Game = СоздатьОбъект("AddIn.Game");

//найти случайный объект в списке объектов
СлучайныйОбъект = СписокОбъектов.НайтиЗначение(Game.Random(СписокОбъектов.РазмерСписка()));

Архив содержит файл справки для синтаксис помощника Game.als

Описание внешней компоненты Game.dll

Объект: "AddIn.Game"

Атрибуты:

—  ИнтервалТаймера / TimerInterval
Число — интервал таймера в милисекундах

Методы:

—  ВключитьТаймер() / StartTimer()
После включения таймера в 1С поступают
с заданным интервалом события.
Событие: см. ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
Источник — "Game"
Событие — "Timer"
Данные — строка с текущим временем в формате "ЧЧ.ММ.СС"

—  ВыключитьТаймер() / StopTimer()

—  ВключитьЗахватКлавиатуры() / StartKeyHook()
После включения захвата клавиатуры в 1С поступают по нажатию клавиш события.
Событие: см. ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
Источник — "Game"
Событие — "KeyDown"
Данные — список значений в строке с разделителями:
1) Virtual-key code (ASCII код)
2) ASCII символ
3) Scan code (Скэн код клавиатуры)
4) Количество повторений при удержании клавиши нажатой, обычно 1
5) Флаг нажатия клавиши расширенной клавиатуры: 1 — да, 0 — нет
6) Флаг предыдущего состояния клавиши: 1 — нажата, 0 — отжата

—  ВыключитьЗахватКлавиатуры() / StopKeyHook()

—  СлучайноеЧисло(ПределСлучайныхЧисел) / Random(RandomRange)
Если Предел равен 0, то возвращает строку со случайным числом Х, лежащим в диапазоне 0 <= X < 1
Иначе возвращает строку с целым случайным числом X, лежащим в диапазоне 0 <= X < Предел

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *