ВУЗ:
Составители:
29
[propget, id(0x000000C5), helpcontext(0x000100C5)]
HRESULT _stdcall Range([in] VARIANT Cell1,
[in, optional] VARIANT Cell2, [out, retval] Range **RHS);
...
};
Как видите, оба эти свойства возвращают значения одного и того же типа.
При этом , для того, чтобы использовать значение Cells как указатель на кол -
лекцию ячеек, необходимо явное применение двумерного векторного свойства
Item. Здесь не проходит «трюк» , который мы использовали в программе с
Variant:
Sheet.Cells[2,i+2].Value:=Table1.Fields.Fields[i].FieldName;
Такая конструкция не предусмотрена библиотекой типов, но допустима при ис-
пользовании механизма динамического связывания.
Свойство Range имеет два входных параметра, из которых последний –
необязательный . Мы в своей программе используем оба варианта: как с явным
заданием второго параметра, так и с его пропуском, указав EmptyParam вместо
него.
Импортирование библиотеки типов в проект C++Builder
Среда программирования C++Builder реализует все описанные выше воз-
можности по использованию библиотеки типов в целях создания контроллеров
автоматизации с ранним связыванием . Помимо основных преимуществ, связан -
ных собственно с использованием раннего связывания, в данном случае полу-
чается гораздо более компактный и удобочитаемый исходный код : отпадает не-
обходимость в многочисленных вызовах методов класса Variant
OleProcedure, OleFunction, OlePropertyGet, OlePropertySet и т.п.
Как уже говорилось , разработчики C++Builder для реализации возможно-
сти COM-программирования везде, где это возможно, обходятся стандартными
средствами языка C++, избегая расширения стандарта в угоду упрощению син -
таксиса. В результате ими написано огромное количество программного обес-
печения на C++, облегчающего COM-программирование. Причем оно открыто
для понимания программисту, использующему соответствующие заголовочные
файлы. В этом смысле программист на C++ находится в более выгодном поло-
жении, нежели программист на Object Pascal.
Теперь приступим к решению поставленной задачи конкретно, создадим
клиентское приложение, использующее импорт библиотеки типов. Все подго-
товительные процедуры описаны в предыдущих разделах . Так же, как в среде
Delphi, можно открыть библиотеку типов в редакторе и просмотреть ее содер -
жимое. Если библиотека типов Microsoft Excel, поставляемая в файле
excel9.olb, Вами уже изучена в достаточной степени, можно переходить к
процедуре ее импортирования в состав проекта. В результате импорта, в проект
будет добавлен модуль Excel_TLB.cpp с заголовочным файлом
Excel_TLB.h. Инструмент Class Explorer поможет Вам в поиске нужных
29 [propget, id(0x000000C5), helpcontext(0x000100C5)] HRESULT _stdcall Range([in] VARIANT Cell1, [in, optional] VARIANT Cell2, [out, retval] Range **RHS); ... }; Как видите, оба эти свойства возвращают значения одного и того же типа. При этом, для того, чтобы использовать значение Cells как указатель на кол- лекцию ячеек, необходимо явное применение двумерного векторного свойства Item . Здесь не проходит «трюк», который мы использовали в программе с Variant : Sheet.Cells[2,i+2].Value:=Table1.Fields.Fields[i].FieldName; Такая конструкция не предусмотрена библиотекой типов, но допустима при ис- пользовании механизма динамического связывания. Свойство Range имеет два входных параметра, из которых последний – необязательный. Мы в своей программе используем оба варианта: как с явным заданием второго параметра, так и с его пропуском, указав EmptyParam вместо него. Импортирование библиотеки типов в проект C++Builder Среда программирования C++Builder реализует все описанные выше воз- можности по использованию библиотеки типов в целях создания контроллеров автоматизации с ранним связыванием. Помимо основных преимуществ, связан- ных собственно с использованием раннего связывания, в данном случае полу- чается гораздо более компактный и удобочитаемый исходный код: отпадает не- обходимость в многочисленных вызовах методов класса Variant OleProcedure , OleFunction , OlePropertyGet , OlePropertySet и т.п. Как уже говорилось, разработчики C++Builder для реализации возможно- сти COM-программирования везде, где это возможно, обходятся стандартными средствами языка C++, избегая расширения стандарта в угоду упрощению син- таксиса. В результате ими написано огромное количество программного обес- печения на C++, облегчающего COM-программирование. Причем оно открыто для понимания программисту, использующему соответствующие заголовочные файлы. В этом смысле программист на C++ находится в более выгодном поло- жении, нежели программист на Object Pascal. Теперь приступим к решению поставленной задачи конкретно, создадим клиентское приложение, использующее импорт библиотеки типов. Все подго- товительные процедуры описаны в предыдущих разделах. Так же, как в среде Delphi, можно открыть библиотеку типов в редакторе и просмотреть ее содер- жимое. Если библиотека типов Microsoft Excel, поставляемая в файле excel9.olb , Вами уже изучена в достаточной степени, можно переходить к процедуре ее импортирования в состав проекта. В результате импорта, в проект будет добавлен модуль Excel_TLB.cpp с заголовочным файлом Excel_TLB.h . Инструмент Class Explorer поможет Вам в поиске нужных
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »