Delphi + Powerpoint

  • Автор темы Nikola81
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

Nikola81

Здравствуйте.
Я создаю специфические отчеты в PowerPoint, вывожу кучу мелких текстов и линий. По ходу работы моей программы с PowerPoint это все визуализируется, и если пользователь начнет кликать на презентацию раньше времени, то естественно возникает ошибка. Сделать PowerPoint не видимым (как например Excel) не получается, PPT.visible:=False возникает ошибка. Может, кто знает, как решить эту проблему?

Буду очень благодарен, если кто-нибудь подскажет, как можно ускорить процесс прорисовки, а то при средненьком объеме данных презентация создается несколько минут.

Заранее спасибо.

uses MSPpt2000,ComObj;

Procedure TestPowerPoint;
var PPT,Presentation,CurrentSlide,ShapeText,ShapeLabel:variant;
begin
PPT:=CreateOleObject('PowerPoint.Application');
Presentation:=PPT.Presentations.add; //Добавляем презентацию
CurrentSlide:=Presentation.Slides.Add(1, 12); //Добавляем слайд

// PPT.visible:=False; // вызывает ошибку

ShapeLabel:=CurrentSlide.Shapes.AddLabel(1, 40, 40,100, 100);//Добавляем надпись
ShapeLabel.TextFrame.TextRange.Text:='Test Of PowerPoint';

PPT.visible:=True; //Делаем презентацию видимой
// Если запущеена хоть одна презентация то по умолчанию PPT.visible=True​
end;
 
M

morpheus

Nikola81
а вы с ним как работаете ? компонентами или через OLE ?

Что у PP Application ведь есть свойство Visible. Неужели оно мешает ставить Lable ?
 
N

Nikola81

Nikola81
а вы с ним как работаете ? компонентами или через OLE ?

Что у PP Application ведь есть свойство Visible.
Проблема в том, что свойство Visible нельзя поставить значение False (вызывает ошибку). А если PowerPoint был уже запущен, то значение Visible=True по умолчанию.

Я кстати заметил странную вещь Excel Application можно создавать любое количество независимых копий. PowerPoint Application всегда одно, не зависимо, каким методом создавать CreateOleObject('PowerPoint.Application') или Form1.PowerPointApplication1.Connect;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!