Обсуждение:Длм-ка lgx.d32 - работа с терминальными ActiveX-объектами без поддержки событий (+)

0 (0)
  • Развернуть Обсуждение:Длм-ка lgx.d32 - работа с терминальными ActiveX-объектами без поддержки событий (+) ( Обсуждение примера  22.11.2003 06:52 )
    0(0)
    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,
    которые создаются на сервере приложений, и их свойств и мето-
    дов, которые вызываются/выполняются на терминале с передачей
    входящих и выходящих параметров между терминалом и сервером.

    Посмотреть пример
    >> Ответить
    • Развернуть Обновление (+) ( григ  28.05.2007 09:23 )
      0(0)
      25.05.2007 Введена поддержка наследования TlgActiveX. Добавлены функции lgxBeforeSet,
      lgxBeforeSetObject, lgxBeforeGet, lgxBeforeGetObject для перехвата событий
      BeforeSet и BeforeGet. Добавлена поддрежка передачи TArray в качестве аргу-
      ментов (необходимо для Open Office).
      На основе новых длм-ок написан РСЛ-класс ThlWord, который инкапсулирует в себе реализацию вызовов Word и Writer на базовом уровне (без особых наворотов). Т.е. берем макрос, который выводит бланк-шаблон в Word. Меняем только создание Word.Application и все. Есть OO - будет вызван он, нет OO - будет вызван MSO.
      >> Ответить