![]() |
|
Модераторы: MetalFan |
![]()
|
|
| rith2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 29.4.2008 Репутация: нет Всего: нет |
Привет.
Ситуация - ActiveX Library -> ActiveXForm -> на ней OleContainer -> в него загружается документ ms word -> Компонент регистрируется. Проблема - Если АктивХ компонент в пределах одного приложения вызывается >1 раза, то есть несколько экземпляров ms word в OleContainer'е , то у них блокируется панель инструментов, кроме документа ms word, который был открыт самым последним. Печатать можно, но панель с инструментами заблочена. Как я понял проблема эта распространенная и связана с тем, что документы ворда както криво вешаются на один и тотже процесс ms word... Пробовал создавать свой WordApplication и у него создавать WordDocument - не катит. В Королевстве Делфи было решение: "....У объекта TOleContainer имеется внутренняя переменная FDocView, указывающая на интерфейс IOleDocumentView и инициализирующаяся в начале активизации OleContainerа: ...В свою очередь, у интерфейса IOleDocumentView есть метод Show(fShow: BOOL): .....Для "оживления" заблокированных документов, достаточно вызвать этот метод с параметром "false". Добавляем процедуру (или функцию с возможностью обработки ошибок, кому как больше нравится) ShowView(fShow : boolean) в TOleContainer:" (с) Королевство Делфи Не прокатил метод. На японском форуме вроде на решение наткнулся, но там по нему какаято дискуссия идет... а японский я не знаю Помогите а? Бьюсь над проблемой этой а выхода не видно :((( |
|||
|
||||
| rith2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 29.4.2008 Репутация: нет Всего: нет |
Пока занимался другими вопросами и сейчас снова вернулся к этой проблеме... вот так вот работает приложение:
По разному пробовал - остановился на следующем - создается файл, ему присваивается случайное имя. Сохраняется в "Мои документы", откуда загружается в ОлеКонтейнер. Весь проект сохранен как .ocx компонент, который загружается в стороннем приложении. Вызываем в этом стороннем приложении этот компонент - ворд грузится (создается процесс WinWord), все работает Вызываем еще раз в стороннем приложении этот компонент (создаетс еще один процесс) - панель инструментов у 1го открытого документа умирает, будто бы Enabled:= False. У только что открытого документа все работает... Хотя текст добавлять получается.... ничего уже не понимаю.. все работает в разных процессах, почему такие косяки с панелью инструментов???? Это сообщение отредактировал(а) rith2 - 2.8.2009, 14:38 |
|||
|
||||
| rith2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 29.4.2008 Репутация: нет Всего: нет |
и даже у них какбы не Enаbled:= False (имхо тогда иконки должны стать бесцветными), а будто бы фокус чтоли у панели получить не получается....
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 5 Всего: 130 |
Т.е. через "createoleobject" тоже не получается?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| rith2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 29.4.2008 Репутация: нет Всего: нет |
Не получается... Единственно как получается это если приконнектить файл к контейнеру через OleContainer.CreateLinkToFile Но документ открывается тогда не в окне приложения а совсем в отдельном, что не подходит.... ваще мыслей нет как быть, вроде бы ощущение, что решение гдето близко, но где именно понять не могу |
|||
|
||||
| rith2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 29.4.2008 Репутация: нет Всего: нет |
Скачал тут компонент (вернее демку)... называется Ultra Office Control - осх компонент позволящий осуществлять загрузку приложений мс офис в свою программу - заметил, что при создании, например, нескольких копий документов у ворда - запускается лишь один вордовский процес...
|
|||
|
||||
![]()
|
| Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |