uses
comobj;
procedure TForm1.Button2Click(Sender: TObject);
var
PowerPointApp: OLEVariant;
begintry
PowerPointApp := CreateOleObject('PowerPoint.Application');
except
ShowMessage('Error...');
Exit;
end;
// Make Powerpoint visible
PowerPointApp.Visible := True;
// Show powerpoint version
ShowMessage(Format('Powerpoint version: %s', [PowerPointApp.Version]));
// Open a presentation
PowerPointApp.Presentations.Open('c:\MyPresentation.ppt', False, False, True);
// Show number of slides
ShowMessage(Format('%s slides.',
[PowerPointApp.ActivePresentation.Slides.Count]));
// Run the presentation
PowerPointApp.ActivePresentation.SlideShowSettings.Run;
// Go to next slide
PowerPointApp.ActivePresentation.SlideShowWindow.View.Next;
// Go to slide 2
PowerPointApp.ActivePresentation.SlideShowWindow.View.GoToSlide(2);
// Go to previous slide
PowerPointApp.ActivePresentation.SlideShowWindow.View.Previous;
// Go to last slide
PowerPointApp.ActivePresentation.SlideShowWindow.View.Last;
// Show current slide name
ShowMessage(Format('Current slidename: %s',
[PowerPointApp.ActivePresentation.SlideShowWindow.View.Slide.Name]));
// Close Powerpoint
PowerPointApp.Quit;
PowerPointApp := UnAssigned;
end;
Код, предоставленный в примере, является примером использования OLE (Object Linking and Embedding) для взаимодействия с Microsoft PowerPoint из приложения Delphi.
Вот разбивка того, что код делает:
Клауза uses импортирует модуль comobj, который обеспечивает поддержку работы с объектами COM.
Процедура Button2Click вызывается при клике ассоциированного кнопки.
Первая строка создает экземпляр приложения PowerPoint с помощью функции CreateOleObject. Если это не удается (например, потому что PowerPoint не установлен или неправильно зарегистрирован), она отображает сообщение об ошибке и выходит.
Следующие три строки устанавливают различные свойства приложения PowerPoint:
Visible устанавливается в True, что делает окно PowerPoint видимым.
Версия PowerPoint получается с помощью свойства Version и отображается в сообщении об ошибке.
Файл презентации, названный "c:\MyPresentation.ppt", открывается с помощью метода Presentations.Open.
Следующие несколько строк взаимодействуют с открытым файлом презентации:
Количество слайдов в презентации получается с помощью свойства Slides.Count и отображается в сообщении об ошибке.
Презентация запускается с помощью метода SlideShowSettings.Run.
Пользователь навигируется через слайды с помощью различных методов:
Next: Переходит на следующий слайд.
GoToSlide(2): Переходит на слайд 2.
Previous: Переходит на предыдущий слайд.
Last: Переходит на последний слайд.
Наконец, код получает и отображает имя текущего слайда с помощью свойства View.Slide.Name.
Приложение PowerPoint закрывается с помощью метода Quit.
Некоторые примечания:
Убедитесь, что PowerPoint установлен и правильно зарегистрирован на системе, где будет запускаться это код.
Этот код использует позднюю связь, что означает, что типы PowerPoint-объектов не объявляются явно. Хотя это может быть удобно, это также делает код более уязвимым для ошибок, поскольку неправильные вызовы методов или доступ к свойствам могут привести к ошибкам на этапе выполнения.
Если вам нужно использовать PowerPoint в производственной среде, рекомендуется использовать раннюю связь, где типы объявляются явно, для лучшей безопасности типа и обработки ошибок.
Альтернативное решение - использовать третьестороннюю библиотеку, которая предоставляет более robust и удобный способ взаимодействия с PowerPoint из Delphi. Некоторые примеры включают:
Библиотека компонентов PowerPoint (PCL)
SDK PowerPoint
Активные библиотеки, такие как библиотека объектов PowerPoint (POLO) или Microsoft Office 2007/2010/2013/2016 SDK PowerPoint
Эти библиотеки часто предоставляют болееadvanced функциональность, лучшую производительность и улучшенную обработку ошибок по сравнению с использованием OLE напрямую. Однако они могут требовать дополнительной настройки и конфигурации в зависимости от вашего конкретного требования и среды.
Статья описывает способ работы с Microsoft PowerPoint через объектно-ориентированный связующий интерфейс (OLE) в Delphi, демонстрируя пример кода на языке Pascal для взаимодействия с приложением PowerPoint.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS