Подскажите, пожалуйста, как решить проблему, того, что в Delphi в TOleContainer при создании объекта Excel.Sheet, используется уже имеющийся процесс Excel,поэтому зависаеют екселевские документы, с которыми пользователь работал, до старта моей программы
Получается, что теперь нужно тробовать пользователя закрыть все приложения Excel перед запуском своей прогораммы? TOleContainer в програме ну очень нужен.
Помогите, может кто-то сталкивался с такой проблемой.
Re: Даешь каждому OLE объекту в TOleContainer свой процесс!
От:
Аноним
Дата:
21.06.07 17:57
Оценка:
Здравствуйте, Ivy, Вы писали:
Ivy>Доброго всем времени суток!
Ivy>Подскажите, пожалуйста, как решить проблему, того, что в Delphi в TOleContainer при создании объекта Excel.Sheet, используется уже имеющийся процесс Excel,поэтому зависаеют екселевские документы, с которыми пользователь работал, до старта моей программы
Ivy> Получается, что теперь нужно тробовать пользователя закрыть все приложения Excel перед запуском своей прогораммы? TOleContainer в програме ну очень нужен. Ivy>Помогите, может кто-то сталкивался с такой проблемой.
Создавать Excel.Applicaion (или Excel.Document, не помню точно), а в нем уже — делать Excel.Sheet (через метод Add)
Re[2]: Даешь каждому OLE объекту в TOleContainer свой процес
Спасибо за ответ, действительно в этом случае OleContainer создает новый процесс, но у меня не получается заставить отображаться Excel в контейнере
OleContainer.DoVerb(ovShow) — выдает исключение, так как список ObjectVerbs пуст.
Пожалуйста, посмотрите, как это делали вы?
var Excel,WB:Variant;
begin
Excel := OleContainer.CreateObject('Excel.Application',false),
WB := Excel.Workbooks.Add;
// тут нужно отобразить содержимое контейнера
end;
Re[3]: Даешь каждому OLE объекту в TOleContainer свой процес
От:
Аноним
Дата:
27.06.07 13:55
Оценка:
Здравствуйте, Ivy, Вы писали:
Ivy>Спасибо за ответ, действительно в этом случае OleContainer создает новый процесс, но у меня не получается заставить отображаться Excel в контейнере Ivy>OleContainer.DoVerb(ovShow) — выдает исключение, так как список ObjectVerbs пуст. Ivy>Пожалуйста, посмотрите, как это делали вы?
Ivy>var Excel,WB:Variant; Ivy>begin Ivy>Excel := OleContainer.CreateObject('Excel.Application',false), Ivy>WB := Excel.Workbooks.Add; Ivy>// тут нужно отобразить содержимое контейнера
Ivy>end;
Надо еще sheet в этой workbook создать
Re[4]: Даешь каждому OLE объекту в TOleContainer свой процес