![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Client |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Привет
![]() if OpenDialog1.Execute and (OpenDialog1.FileName <> '') thenФайл открывается, все нормально. Вопрос: как закрыть "word"? Или вместо всего этого - как открыть файл в MS Word (в вордовском окне)? Когда документ открывается, он заполняет полностью "шапку формы" (рис1, рис2). А при нажатии кнопки2 (без обработчика) шапка уходит (рис3) Добавлено через 5 мин. хм, скрины наоборот прикрепились ![]() (смотреть в обратном поядке) Сообщение отредактировано: Client - 6.04.2010 20:00 Эскизы прикрепленных изображений ![]() ![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Файл открывается, все нормально. Вопрос: как закрыть "word"? Что значит "закрыть"? Пока OleContainer содержит файл - Word висит в памяти. А ты как хотел?Цитата Когда документ открывается, он заполняет полностью "шапку формы" (рис1, рис2). А при нажатии кнопки2 (без обработчика) шапка уходит (рис3) И это совершенно правильное поведение. Пока фокус на OleContainer-е - меню того документа, что открыт в нем отображается в области меню формы. Как только Контейнер фокус потерял - меню исчезло. Что не так? |
Client |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Цитата Что значит "закрыть"? Закрыть документ чтобы потом убарть OleContainer.Цитата Как только Контейнер фокус потерял - меню исчезло. Что не так? Если потом опять тыкнуть на OleContainer меню не появляется.Мне вообщем надо сделать редактирование документа. Но вот как лучше - через OLE или может открыть документ в самом ворде. Почти одинаково, только кнопочки слева вверху нету ![]() Добавлено через 7 мин. нашел метод OleContainer1.Close;Вроде то, что надо ![]() А можно вернуть меню при возврате фокуса? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата Закрыть документ чтобы потом убарть OleContainer. Закрывай:procedure TForm1.btnClose(Sender: TObject); Цитата Если потом опять тыкнуть на OleContainer меню не появляется. Обрати внимание на свойство AutoActivate у Контейнера. Оно показывает, каким образом контейнер активизируется. Если установить его в AsGetFocus, и передавать фокус на OleContainer не мышкотыканьем, а нажатием, скажем, на кнопку:procedure TForm1.Button2Click(Sender: TObject); , то все прекрасно появляется. Цитата Мне вообщем надо сделать редактирование документа. Если тебе надо редактирование, что ж ты открываешь документ через ovShow? Для чего ovOpen тогда? ![]() Поищи на форуме, мы как-то с Айрой много чего с OleContainer-ом делали. На самом деле, я бы все-таки сделал открытие внешнего приложения Word, вместо OleContainer-а. Не все, что доступно через работу с Word-ом доступно через OLE Automation. Добавлено через 1 мин. Цитата нашел метод Не, ну нормально? Чтоб открыть - делаешь CreateObject, а чтоб закрыть - Close? Нет уж, все по-взрослому ![]() |
Client |
![]()
Сообщение
#5
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
OleContainer1.DestroyObject;оК ![]() Если поставить AаGetFocus то и мышкой и через кнопку работает. Если на даблклик то.. тоже работает ![]() Цитата Для чего ovOpen тогда а в чем разница? и там и там смог изменить текст.Цитата На самом деле, я бы все-таки сделал открытие внешнего приложения Word Вызываюshellexecute(Application.MainForm.Handle,nil,'C:\Doc1.docx',nil,nil,SW_SHOWNORMAL);так же нормально? ![]() Спасибо за помощь! ![]() Добавлено через 2 мин. Цитата Не, ну нормально? Чтоб открыть - делаешь CreateObject, а чтоб закрыть - Close? Нет уж, все по-взрослому Создавал объект - теперь разрушай объект ! ![]() тоже заподозрил что-то не то... ![]() Сообщение отредактировано: Client - 6.04.2010 21:38 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата так же нормально? Ну, если тебе не нужна возможность из программы управлять Word-ом - то этого будет достаточно. Все-таки, приводи строки к типу PChar... |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 16:46 |