powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TOleContainer - страницы
4 сообщений из 4, страница 1 из 1
TOleContainer - страницы
    #32254162
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
Итак, есть OleContainer, в который грузится вордовский документ. Хочется сделать чтобы, если в нем несколько страниц, то можно было их посмотреть, не активизируя документ (т. е., не делая DoVerb(ovShow) или чего-то в этом роде).
Казалось бы, это должно делаться через OLE Automation. Но: OleObjectInterface возвращает объект, реализующий IDispatch только после активации документа, до этого данный интерфейс не реализуется.
Сам TOleContainer для отрисовки неактивного документа использует OleDraw(), которая, судя по MSDN, вызывает, в свою очередь, IViewObject::Draw(). У последнего же есть некий параметр LONG lindex, описание которого мне найти не удалось. Возможно, можно что-то сделать с его помощью? Или есть еще какие-нибудь пути?
...
Рейтинг: 0 / 0
TOleContainer - страницы
    #32254248
Фотография Mihail R.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет!
да уж вопрос...
у меня тоже было много вопросов по ОлеКонтэйнеру, но увы до сих пор без ответа. пробовал сам копать и писать свой контэйнер - не осилил, то времени нет то инфы не хватает то еще чего :-)

если что узнаешь, напиши пожалста - меня эта проблема тоже очень интересует.

ЗЫ: то что показывает олеконтайнер не активированный это просто в нем хранится как набор пикселов или все же нет?
...
Рейтинг: 0 / 0
TOleContainer - страницы
    #32254334
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
2 Mihail R.
Если узнаю - напишу. А по поводу того, что он показывает - нет, это не набор писелов (тем более, он же все равно должен откуда-то эти пиксели брать, правильно?). Просто объект, возвращаемый OleObjectInterface при неактивном документе все равно реализует интерфейс IViewObject, у которого есть метод Draw(). По сути, именно он и занимается отрисовкой - ему передаются всякие там HDC, прямоугольник, в который надо рисовать и проч. А вот что обозначает его параметр lindex - непонятно. Вроде пишут, что он обозначает, какую часть документа выводить, а подробнее - смотрите где-то там... в общем, там этого я не нашел. Если бы это было то, что нужно - можно было бы спокойно написать своего наследника TOleContainer'а и переписать в нем Paint. Наверное, попробую так сделать.
...
Рейтинг: 0 / 0
TOleContainer - страницы
    #32256443
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
Увы, не получилось. Если передавать lindex!=-1, то возвращает DV_E_LINDEX: Invalid value for lindex; currently only -1 is supported. Похоже, это сделать нельзя.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TOleContainer - страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]