C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Работа с объектом без создания его компоненты...?
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, минимизировать его как только можно, делать невидимым и работать дальше (как я и делаю) , но хочется "правильнее сделать" wink.gif

Просто он мне собственно нужен для того, чтобы через него слинковать Вордовский шаблон, поработать с ним и вызвать метод OleContainer->DoVerb(ovShow), тогда запускается Ворд и юзер уже видит результаты, может их распечатать и т.д.

Если кто сталкивался, объясните плз. можно или нет? и как?
И что означает эта ошибка....


Заранее благодарен!




fellow
Отправлено: 31.01.2004, 06:17


Дежурный стрелочник

Группа: Участник
Сообщений: 33



Это значит, что родителя у компонента нет, сиротинушка он несчастный.

TOleContainer *OleContainer = new TOleContainer(Application);
OleContainer->Parent = pYourForm;
OleContainer->CreateLinkToFile(file,false);

Почитайте в хелпе о родителе Parent и владельце Owner. Родителем должен быть оконный компонент, типа формы. А владелец — тот компонент, который ответственен за ликвидацию.

Вернуться в Вопросы программирования в C++Builder