Дополнения в программном интерфейсе

В TDMS 4.0 были внесены следующие новые свойства, методы и обработчики событий:

  • метод очистки окна быстрых сообщений TDMSApplication.ClearNotify;
  • событие уровня приложения TDMSApplication.FilesDragAndDroped. Вызывается при завершении операции перетаскивания файлов в пространство главного окна TDMS, кроме пространств различных файловых списков (там работают стандартные файловые обработчики);
  • обработчики событий редактирования атрибута типа «таблица». Эти обработчики доступны в глобальном контексте приложения или формы и предназначены для повышения управляемости стандартного атрибута типа «таблица». Для более тонкой настройки и программирования табличного элемента управления используйте ActiveX-компоненту TDMS Grid или компоненты сторонних производителей.

    Form_TableAttributeBeforeRowAdd— событие вызывается перед тем как будет добавлена строка к табличному атрибуту (вставка строки, дублирование, введение значения в последней неинициализированной строке). Добавление строки можно отменить.

    Form_TableAttributeRowAdded — событие вызывается после того, как строка добавлена.

    Form_TableAttributeBeforeRowRemove — событие вызывается перед удалением строки из табличного атрибута. Операция может быть отменена.

    Form_TableAttributeRowRemoved — событие вызывается после удаления строки из табличного атрибута.

    Form_TableAttributeOrderChanged — событие вызывается после каждого изменения порядка строк в табличном атрибуте.

    Все вышеописанные события вызываются только как реакция на действия пользователя при работе на форме ввода с элементом управления табличного атрибута. При изменении таблицы посредством программного кода через API события не вызываются.

    При добавлении, удалении и изменении порядка строк события Form_TableAttributeChange, Form_AttributeChange не вызываются также как и в TDMS 3.0;

  • новые свойства, методы и обработчики событий подписей.

    Object_BeforeSignAdd — событие вызывается перед добавлением пустого шаблона подписи на объект. Это событие вызывается только при добавлении новых шаблонов подписей для объекта (при создании объекта он создается с шаблонами подписей, для которых событие не вызывается).

    Object_SignAdded — событие вызывается после того, как шаблон подписи был добавлен на объект.

    Object_BeforeSign — событие вызывается перед простановкой подписи (после того, как нажата кнопка ОК в диалоге подписания и после проверки пароля подписи). Установку подписи средствами TDMS можно отменить, и подписать, используя свой алгоритм. Для этого необходимо прервать цепочку обработчиков, установив параметр Cancel = True и вызвав метод TDMSSign.SetExternalSign

    Object_Signed — событие вызывается после того, как объект был успешно подписан стандартной подписью TDMS.

    Object_BeforeSignDrop — событие вызывается перед тем, как подпись будет помечена как недействительная. Событие можно отменить.

    Object_SignDropped — событие вызывается после того, как подпись помечена как недействительная. События BeforeSignDrop и SignDropped вызываются только в результате явного вызова команды TDMSSign.Drop из COM. В том случае, если метод применяется к недействительной подписи, события не вызываются.

    Object_BeforeSignErase — событие вызывается перед тем, как пустой шаблон подписи или недействительная подпись будут удалены с объекта. Чтобы удалить подпись, нужно сначала применить метод Drop, затем метод Erase. Событие можно отменить.

    Object_SignErased — событие вызывается после того, как пустой шаблон подписи или недействительная подпись были удалены с объекта.

    Object_CheckExternalSign — событие вызывается для проверки актуальности внешней подписи, установленной методом SetExternalSign. Чтобы убедится в том, что подпись действительна, необходимо прочитать содержимое (открытый ключ) подписи TDMSSign.Signature, проверить с его помощью неизменность подписанного содержимого в свойстве TDMSSign.SignedContent (хранится в формате XML). Также необходимо сравнить, соответствует ли подписанное содержимое текущему XML-представлению объекта TDMSSign.ActualContent. В том случае, если подпись верна, установите значение параметра bValid = True.

    Object_SignExternalPropertiesDlg — событие вызывается при открытии диалога дополнительных свойств подписи, который открывается по кнопке Дополнительно на диалоге свойств подписи. Событие может быть вызвано только для объекта, подписанного внешней подписью, установленной методом SetExternalSign;

  • новое событие, предназначенное для инициализации всех видов диалогов свойств объектов. Событие Object_PropertiesDlgInit возникает при показе и обновлении (перезагрузке) как самостоятельного диалога свойств объекта, так и диалога, отображаемого в окне свойств. Свойства диалога объекта ActiveForm и ActiveSystemForm позволяют установить активную форму диалога. Свойства InputForms, SystemFormVisibility и SystemFormArray дают возможность различными способами задать набор системных вкладок и пользовательских форм диалога. Свойство WindowType позволяет определить режим, в котором был открыт диалог: создание, редактирование, поиск и т.п.;
  • события создания версий обьекта.

    Version_BeforeCreate — событие вызывается перед созданием версии. В этом событии можно отменить создание версии.

    Version_Created — событие вызывается после создания версии;

  • новый метод TDMSAttribute.Increment, обеспечивающий приращение значения атрибута приложения (базы данных) на 1. В отличие от простого присвоения нового значения, этот метод использует операции прямого чтения и записи в базу данных, что исключает возможность получения параллельными потоками одинакового нового значения атрибута после приращения;
  • новое свойство AdministrativeGroup, возвращающее интерфейс TDMSGroup, отвечает за хранение информации о группе, назначенной администратором объекта, узле классификатора или другой группе. Свойство может применяться к TDMSObject, TDMSClassifier, TDMSGroup;
  • Cвойство Dictionary может быть использовано для TDMSObject, TDMSInputForm, TDMSQuery. Переменные, сохраненные в таком словаре, сохраняются только на время жизни объекта-родителя: объекта, формы или выборки;
  • Свойство TDMSInputForm.ParentWindowType определяет тип диалога-контейнера: создание, редактирование, поиск, самостоятельная форма и т.п. Для самостоятельной формы ввода добавлен метод TDMSInputForm.Close.