Длм-ка lgx.d32 - работа с терминальными ActiveX-объектами без поддержки событий (+)
Скачать (ZIP-файл; Размер - 95129)Обсудить в форуме
Описание
13.05.2015 Для корректной работы со строковыми значениями в UTF8 переписана
функция lgSetANSI(int). Теперь аргументом в ней можно указывать:
0 - OEM, 1 - ANSI, 2 - UTF8
Если вам нужно получить значение свойства в UTF8 без конвертации в
ANSI(OEM):
lgSetANSI(2); strUTF8=obj.Property; lgSetANSI(1);
или:
lgSetANSI(2); obj.Property=strUTF8; lgSetANSI(1);
Рекомендуется возвращать lgSetANSI(1) в предыдущее состояние,
после получения/установки значения свойства, т.к. имена свойств,
методов и т.д. тоже строки, но в кодировке ANSI.
23.03.2012 В серверной части убрана передача флага flags=DISPATCH_PROPERTYPUTREF.
Глючит при присвоении свойству-объекту ActiveX нового объекта ActiveX,
т.к. передается pdisp с типом VT_DISPATCH, а wFlags==DISPATCH_PROPERTYPUTREF.
Для правильной работы требуется одно из сочетаний:
VT_DISPATCH + DISPATCH_PROPERTYPUT
VT_DISPATCHREF + DISPATCH_PROPERTYPUTREF
Выбрал 1-й вариант.
16.04.2009 Добавлена поддержка типа V_NUMERIC. Делается автоконвертация в CURRENCY и обратно.
20.01.2009 В серверной части добавлена регистрация всех созданных объектов в спец.список, а
при завершении работы макроса - удаление всех оставшихся в списке объектов (из-за
взаимных ссылок могли оставаться неудаленные объекты).
25.05.2007 Введена поддержка наследования TlgActiveX. Добавлены функции lgxBeforeSet,
lgxBeforeSetObject, lgxBeforeGet, lgxBeforeGetObject для перехвата событий
BeforeSet и BeforeGet. Добавлена поддрежка передачи TArray в качестве аргу-
ментов (необходимо для Open Office).
12.04.2007 Переделана обработка ошибок. Добавлена функция lgxeError.
При невозможности создать TlgActiveX-объект теперь не возвращается объект,
а возвращается то, что предусмотрено функцией lgxeError или null. Это было кри-
тично при использовании одновременно с vclrsl.d32. Как вариант - проверка нали-
чия MS Office или Open Office.
21.08.2006 Предусмотрена очистка массива ListText при инициализации, деинициализации серверного модуля.
17.08.2006 Исправлена пара ошибок
14.08.2006 Изменен алгоритм передачи строковых аргументов, аргументов по ссылке и
возвращаемых значений. Снято ограничение на размер строки.
22.02.2000 Луппов Григорий Борисович, АО КБ "Первый Дортрансбанк", г.Киров
e-mail: volfgreg@gmail.com
Универсальный клиент ActiveX
исключительно для работы в трехзвенке
Состав: модуль lgx.d32 (поместить на терминальный компьютер к программе
term.exe)
модуль lgxs.d32(поместить на сервер приложений в каталог MAC)
Назначение: программа является приблизительным аналогом rslx.d32 Сергея
Кубрина. Но rslx.d32 при работе на удаленной машине требует
поддержки протокола DCOM, который не работает, если терми-
нальный компьютер стоит под Windows 95(98). Данная длм-ка
призвана устранить этот недостаток и позволяет работать с
объектами ActiveX, которые создаются и выполняются на тер-
минальном компьютере.
Особенности:в данной длм-ке осуществлено разделение объектов TlgActiveX,
которые создаются на сервере приложений, и их свойств и мето-
дов, которые вызываются/выполняются на терминале с передачей
входящих и выходящих параметров между терминалом и сервером.
функция lgSetANSI(int). Теперь аргументом в ней можно указывать:
0 - OEM, 1 - ANSI, 2 - UTF8
Если вам нужно получить значение свойства в UTF8 без конвертации в
ANSI(OEM):
lgSetANSI(2); strUTF8=obj.Property; lgSetANSI(1);
или:
lgSetANSI(2); obj.Property=strUTF8; lgSetANSI(1);
Рекомендуется возвращать lgSetANSI(1) в предыдущее состояние,
после получения/установки значения свойства, т.к. имена свойств,
методов и т.д. тоже строки, но в кодировке ANSI.
23.03.2012 В серверной части убрана передача флага flags=DISPATCH_PROPERTYPUTREF.
Глючит при присвоении свойству-объекту ActiveX нового объекта ActiveX,
т.к. передается pdisp с типом VT_DISPATCH, а wFlags==DISPATCH_PROPERTYPUTREF.
Для правильной работы требуется одно из сочетаний:
VT_DISPATCH + DISPATCH_PROPERTYPUT
VT_DISPATCHREF + DISPATCH_PROPERTYPUTREF
Выбрал 1-й вариант.
16.04.2009 Добавлена поддержка типа V_NUMERIC. Делается автоконвертация в CURRENCY и обратно.
20.01.2009 В серверной части добавлена регистрация всех созданных объектов в спец.список, а
при завершении работы макроса - удаление всех оставшихся в списке объектов (из-за
взаимных ссылок могли оставаться неудаленные объекты).
25.05.2007 Введена поддержка наследования TlgActiveX. Добавлены функции lgxBeforeSet,
lgxBeforeSetObject, lgxBeforeGet, lgxBeforeGetObject для перехвата событий
BeforeSet и BeforeGet. Добавлена поддрежка передачи TArray в качестве аргу-
ментов (необходимо для Open Office).
12.04.2007 Переделана обработка ошибок. Добавлена функция lgxeError.
При невозможности создать TlgActiveX-объект теперь не возвращается объект,
а возвращается то, что предусмотрено функцией lgxeError или null. Это было кри-
тично при использовании одновременно с vclrsl.d32. Как вариант - проверка нали-
чия MS Office или Open Office.
21.08.2006 Предусмотрена очистка массива ListText при инициализации, деинициализации серверного модуля.
17.08.2006 Исправлена пара ошибок
14.08.2006 Изменен алгоритм передачи строковых аргументов, аргументов по ссылке и
возвращаемых значений. Снято ограничение на размер строки.
22.02.2000 Луппов Григорий Борисович, АО КБ "Первый Дортрансбанк", г.Киров
e-mail: volfgreg@gmail.com
Универсальный клиент ActiveX
исключительно для работы в трехзвенке
Состав: модуль lgx.d32 (поместить на терминальный компьютер к программе
term.exe)
модуль lgxs.d32(поместить на сервер приложений в каталог MAC)
Назначение: программа является приблизительным аналогом rslx.d32 Сергея
Кубрина. Но rslx.d32 при работе на удаленной машине требует
поддержки протокола DCOM, который не работает, если терми-
нальный компьютер стоит под Windows 95(98). Данная длм-ка
призвана устранить этот недостаток и позволяет работать с
объектами ActiveX, которые создаются и выполняются на тер-
минальном компьютере.
Особенности:в данной длм-ке осуществлено разделение объектов TlgActiveX,
которые создаются на сервере приложений, и их свойств и мето-
дов, которые вызываются/выполняются на терминале с передачей
входящих и выходящих параметров между терминалом и сервером.