![]() |
|
|
![]()
|
|
| Yuran59 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2011 Где: г. Москва Репутация: нет Всего: нет |
Доброго всем время суток!!!
Помогите плиз получить доступ к вкладке объекта ExcelSheet из программы, написанной на Builder, необходимо поменять цвет фона имени текущего листа. На VBA этот код выглядит так - "ActiveWorkbook.Sheets("Лист2").Tab.ColorIndex = 3" Нужно адаптировать эту строку к программе, написанной на Builder. |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Если используются враперы с закладки Office для Excel - то для них напрямую:
|
||||
|
|||||
| Yuran59 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2011 Где: г. Москва Репутация: нет Всего: нет |
Спасибо Вам за отзывчивость! Использую сом_компоненты, т.е. этот вариант. Дело в том,что св-во Tab не является св-вом класса Sheets, указатель, на который возвращает ...->Sheets["Лист2"] p.s. работаю с Builder 6.0 Это сообщение отредактировал(а) Yuran59 - 25.1.2011, 12:39 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Немного не так, Sheets["Лист2"] делать нельзя. Надо как то так Sheets->Items["Лист2"] (или похоже, надо разбираться)
|
|||
|
||||
| Yuran59 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2011 Где: г. Москва Репутация: нет Всего: нет |
К сожалению и так. как Вы написали не получается! Sheets->get_Items( Variant idx ) - возвращает указатель на интерфейс Idispatch, который, как и его потомки, не имеет ни св-ва , ни ф-ции, которые бы возвращали указатель или ссылку на вкладку!!! Обращаю внимание, что в библиотеке Builder имеется два заголовачных ф-ла : excel_2k.h и excel_2k_srv.h, где описаны интерфейс и классы для работы с excel, и там в Родительском классе TOleServer не предусмотрен интерфейс для возврата указателя на вкладку, но имеются два аналогичных заголовачных ф-ла(excel_xp.h и excel_xp_srv.h), где предусмотрена ф-ция get_Tab(), возвращающая указатель на вкладку! По умолчанию, при добавления компонента, для работы с excel, в проект Builder включает для работы заголовки - excel_2k.h и excel_2k_srv.h(либо excel_97k.h и excel_97k_srv.h), но ни excel_xp.h и excel_xp_srv.h. Разобраться, как с этим работать, не могу, поэтому прошу помощи!!! |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
При установке BCB он спрашивает врапперы для какой версии оффиса устанавливать. *_2k - это врапперы для Оффиса 2000, *_xp - для Оффиса XP. Как ему переставить версию на уже развернутом BCB я не в курсе.
По всей видимости в Оффисе 2000 этих пропертей просто еще не было |
|||
|
||||
| Yuran59 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2011 Где: г. Москва Репутация: нет Всего: нет |
Возможно Вы правы, попробую завтра переустановить ВСВ, получится ли - отпишу позже. Спасибо! |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Преобразуйте его сами:
Это сообщение отредактировал(а) xvr - 25.1.2011, 16:18 |
|||
|
||||
| migddk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
Вот файлик для работы с Exel.
На закладке установке и удаления компонентов отключить не нужный пакет и подключить нужный. Какой пакет выбран при установке не важно, у меня присутсвуют оба. Присоединённый файл ( Кол-во скачиваний: 5 )
exel.rar 3,01 Kb |
|||
|
||||
| Yuran59 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2011 Где: г. Москва Репутация: нет Всего: нет |
Het смысла приводить указатель к _WorksheetPtr, т.к. интерфейс TComInterface, на который как раз ссылается _[B]WorksheetPtr[/B - не возвращает ссылку или указатель на вкладку!!! Добавлено через 4 минуты и 59 секунд Спасибо за файлик, посмотрю его попозже, сейчас нет времени. ВСВ переустановил, при установке выяснилось, что выбор не велик - либо Оффис 97, либо 2000 и усё, к сожалению. Добавлено через 11 минут и 16 секунд
Можно поподробнее про это. |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
У него перегружен оператор -> который возвращает указатель на _Worksheet, в котором как раз и находится __property Excel_xp::Tab* Tab = {read = get_Tab}; |
|||
|
||||
| Yuran59 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2011 Где: г. Москва Репутация: нет Всего: нет |
Excel_xp:: Как только я поместил в проект СОМ - компонент TApplicationExcel или TexcelWorksheet Builder автоматом включает заголовочные ф-лы Excel_2k.h и Excel_2k_srv.h, а не Excel_xp.h и Excel_xp_srv.h, где описан интерфейс, возвращающий ссылку и(или) указатель на вкладку! Включить в проект оба ф-ла(Excel_2k_srv.h и Excel_xp_srv.h) мне не удается, кто знает, как это сделать - подскажите пожалуйста!!! |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Это не те компоненты Компоненты от Оффиса 97 и 2000 лежат в пакетах bcb97axserver60.bpl и bcb2kaxserver60.bpl (в папке CBuilder6\bin) и один из них подключен в Components->Install Packages->Design Packages: Borland C++ Builder COM Server Components Sample Package К сожалению откомпилированного пакета для Офиса XP я не нашел (видимо в дистрибутиве его нет), но сорцы всех этих пакетов лежат в CBuilder6\Source\ComServers\ Office97,Office2K,OfficeXP Так что видимо придется собрать пакет вручную (bpk файла тоже нет, так что придется его сделать самому: File->New->Other->Package) и установить (Components->Install Packages->Add) |
|||
|
||||
| Yuran59 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.1.2011 Где: г. Москва Репутация: нет Всего: нет |
Всем, принимающим участие, в данном топике Огромное спасибо!
Вопрос решен, путем написания кода на "OLE Variantе". Просто этот способ для меня менее предпочтителен, ранее пользовал СОМ серверные компоненты, но как показывает практика на ВСВ 6.0 при работе с ними есть трудности! |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |