Dan |
Отправлено: 30.01.2004, 23:02 |
|
Не зарегистрирован
|
Можно ли вообще создать объект TOleContainer без помещения его компоненты на форму???
Я пытался сделать так:
#include
TOleContainer *OleContainer = new TOleContainer(Application);
OleContainer->CreateLinkToFile(file,false);
.....
....
Но во время работы программы, когда дошло дело до конструкции OleContainer->CreateLinkToFile(file,false), возникла ошибка:
Project Prgname.exe raised exception class EInvalidOperation with message ' Control has no parent window". Process stoped.....
Вроде как я понял нужно родительское окно или что-то в этом роде, хотя зачем, ведь всякие там буттоны и едиты можно без проблем таким образом создавать.....?!
Можно конечно вытягивать на фому компонент TOleContainer, минимизировать его как только можно, делать невидимым и работать дальше (как я и делаю) , но хочется "правильнее сделать"
Просто он мне собственно нужен для того, чтобы через него слинковать Вордовский шаблон, поработать с ним и вызвать метод OleContainer->DoVerb(ovShow), тогда запускается Ворд и юзер уже видит результаты, может их распечатать и т.д.
Если кто сталкивался, объясните плз. можно или нет? и как?
И что означает эта ошибка....
Заранее благодарен!
|
|
fellow |
Отправлено: 31.01.2004, 06:17 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
Это значит, что родителя у компонента нет, сиротинушка он несчастный.
TOleContainer *OleContainer = new TOleContainer(Application);
OleContainer->Parent = pYourForm;
OleContainer->CreateLinkToFile(file,false);
Почитайте в хелпе о родителе Parent и владельце Owner. Родителем должен быть оконный компонент, типа формы. А владелец — тот компонент, который ответственен за ликвидацию. |
|
|