Вкладка Members в описании интерфейса
Вкладка Members в описании интерфейса содержит свойства интерфейса и методы, определенные в этом интерфейсе. За исключением незначительных отличий, синтаксис объявлений констант и методов совпадает с синтаксисом языка Object Pascal. Первое отличие проявляется в том, что после описания каждого свойства и метода должен следовать уникальным идентификатор или DispID. Обычно значения DispID начинаются с 1 и увеличиваются на 1 для каждого следующего элемента. Вторым отличием являются ключевые слова readonly и writeonly, которые позволяют запрещать запись и чтение свойств соответственно. Ниже показан пример определения методов и свойств.
property FrameCount: Integer; readonly; dispid 1;
property Play(FromFrame, ToFrame: Smallint; Count: Integer); dispid 2;
property OpenDatabase[DatabaseName, TableName, UserName, Password : WideString]: WordBool; dispid 3;
Последним является определение параметризованного свойства с разрешением только чтения. В примере это свойство использовано не только для демонстрации такого типа свойств, но и потому, что некоторые серверы ActiveX предпочитают использовать параметризованные свойства вместо методов. На рис. 3.5 показана вкладка Members описания интерфейса в редакторе библиотек типов Delphi.
Рис. 3.5. Редактирование членов интерфейса в библиотеке типов
Если для описания интерфейса используется инструкция Displnterface, то для определения методов и свойств интерфейса можно использовать только совместимые с автоматизацией OLE типы данных. Совместимыми с OLE являются следующие типы данных: Byte, Smallint, Integer, Single, Double, Currency, TDateTime, WideString, WordBool и OleVariant. Для передачи многомерных структур данных можно использовать массивы данных типа OleVariant.