Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
15:02:2005, 14:36
|
|
Новенький ![]() Группа: Программист Сообщений: 43 Регистрация: 31:01:2005 Из: Россия Пользователь №: 1 306 Специализация: Delphi, VBA, C/AL Navision Репутация: 0
|
Необходимо добавить объект Point в презентацию. Используется функция AddOLEObject.
Его конструкция в http://msdn.microsoft.com/library/default...._HV05192052.asp и в PowerPoint_TLB: Код function AddOLEObject(Left: Single; Top: Single; Width: Single; Height: Single; const ClassName: WideString; const FileName: WideString; DisplayAsIcon: MsoTriState; const IconFileName: WideString; IconIndex: SYSINT; const IconLabel: WideString; Link: MsoTriState): Shape; Написал такой следующий код: Код PowerPointApp.ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(120, 110, 480, 320, 'Paint.Picture', EmptyParam, msoFalse, EmptyParam, 0, EmptyParam, msoFalse).Select; Вызывает ошибку: Type mismatch. В чем ошибка? Не врублюсь... Я итак и эдак... |
|
Сообщение
#1
|
|
![]() |
|
|
15:02:2005, 19:42
|
|
Just me :) ![]() ![]() ![]() ![]() ![]() Группа: Админы Сообщений: 3 112 Регистрация: 8:08:2003 Из: Minsk Пользователь №: 1 Специализация: PHP, MySQL, Apple xcode, Delphi, Mambo CMS, CEO Репутация: 11
|
Mick Winder
с Office сильно не работал в Delphi, вот посмотри код http://www.rdpslides.com/pptfaq/FAQ00486.htm а так надо смотреть соответсивие типов, к сожалнию в моей делфе нету компонентов под офис |
|
Сообщение
#2
|
|
|
|
16:02:2005, 07:15
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
Если нужно вставить всего-то картинку .. то можно попробовать метод AddPicture..он работает ..
Просто насколько мне не изменяет память MS Paint не реализует COM интерфейса для возможности его использования в качестве встроенного OLE объекта. |
|
Сообщение
#3
|
|
|
|
16:02:2005, 07:55
|
|
Новенький ![]() Группа: Программист Сообщений: 43 Регистрация: 31:01:2005 Из: Россия Пользователь №: 1 306 Специализация: Delphi, VBA, C/AL Navision Репутация: 0
|
Серёга
Спасибо за ссылку... Но именно это я и получил в виде макроса. Все типы я указал выше, что в MSDN и что в библитеке PowerPoint типы одинаковые. Компоненты устанавливать в Дельфи необязательно, достаточно импортировать бибьлиотеки. Если хочешь, могу подсказать как, может пригодиться для тебя. Barmutik Должен реализовывать, если в библиотеке PowerPoint_TLB предусмотрены такие функции. Мне нужно не просто рисунок вставить от "делать нечего", а в этот объект вставить часть таблицы Excel, чтобы выставить в виде рисунка. Поэтому мне придется потом использовать функцию Activate. У меня складывается такое впечатление, что Дельфи просто вредничает! |
|
Сообщение
#4
|
|
|
|
16:02:2005, 11:00
|
|
Новенький ![]() Группа: Программист Сообщений: 43 Регистрация: 31:01:2005 Из: Россия Пользователь №: 1 306 Специализация: Delphi, VBA, C/AL Navision Репутация: 0
|
Серёга
Barmutik Спешу поделиться решением проблемы! :) Код PowerPointApp.ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=120, Top:=130, Width:=480, Height:=340, ClassName:='Paint.Picture', Link:=msoFalse).Select; Вот теперь буду ломать голову, чтобы вставить в этот объект таблицу из буфера... Функции я, увы, не нашел... :( |
|
Сообщение
#5
|
|
|
|
16:02:2005, 11:17
|
|
Just me :) ![]() ![]() ![]() ![]() ![]() Группа: Админы Сообщений: 3 112 Регистрация: 8:08:2003 Из: Minsk Пользователь №: 1 Специализация: PHP, MySQL, Apple xcode, Delphi, Mambo CMS, CEO Репутация: 11
|
Mick Winder
Цитата достаточно импортировать бибьлиотеки. Если хочешь, могу подсказать как, может пригодиться для тебя. буду рад узнать |
|
Сообщение
#6
|
|
|
|
16:02:2005, 14:20
|
|
Новенький ![]() Группа: Программист Сообщений: 43 Регистрация: 31:01:2005 Из: Россия Пользователь №: 1 306 Специализация: Delphi, VBA, C/AL Navision Репутация: 0
|
Серёга
Ну, например, подключение библиотеки PowerPoint_TLB. В Delphi: Project - Import Type Library... Ищем в списке Microsoft PowerPoint Library(Version 2.7), если нету, то c помощью кнопки Add... ищем библиотеку С:\Program Files\Microsoft Office\Office10\msppt.olb и подключаем ее с помощью кнопки Install (устанавливается как правило в папку Import). Можно сформировать unit этой библиотеки, чтобы просмотреть все функции, процедуры и свойства этой библиотеки, с помощью кнопочки Create Unit. Далее используем эту библиотеку... Код uses PowerPoint_TLB; Вот и всё. Думаю, ты и сам знал, пригодится и другим, кто не знает. |
|
Сообщение
#7
|
|
|
|
16:02:2005, 16:12
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
Так а почему пытаемся вставить Paint.Picture если нужня таблица Экселя? Или я что-то не так понял?
Для вставки таблицы Экселя: Код Slide.Shapes.AddOLEObject(x,y,width,height,'Excel.Sheet','',0,'',0,'',0);
|
|
Сообщение
#8
|
|
|
|
16:02:2005, 19:55
|
|
Just me :) ![]() ![]() ![]() ![]() ![]() Группа: Админы Сообщений: 3 112 Регистрация: 8:08:2003 Из: Minsk Пользователь №: 1 Специализация: PHP, MySQL, Apple xcode, Delphi, Mambo CMS, CEO Репутация: 11
|
Mick Winder
спасибо. я просто не работал никогда с офисом в делфи, не приходилось, но теперь буду знать |
|
Сообщение
#9
|
|
|
|
17:02:2005, 12:49
|
|
Новенький ![]() Группа: Программист Сообщений: 43 Регистрация: 31:01:2005 Из: Россия Пользователь №: 1 306 Специализация: Delphi, VBA, C/AL Navision Репутация: 0
|
Barmutik!!!!
Жму крепко твою руку за идею! Ты меня спас! |
|
Сообщение
#10
|
|
|
|
17:02:2005, 12:57
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
PowerPoint повержен ... только сильно крепко не жми .. а то рука болеть будет .. а ей на клавиши жать надо |
|
Сообщение
#11
|
|
|
|
17:12:2007, 12:11
|
|
Новенький ![]() Группа: Программист Сообщений: 17 Регистрация: 17:12:2007 Пользователь №: 14 293 Специализация: инженер-конструктор Репутация: 0
|
Подскажите пожалуйста... На слайде есть 10 кнопок с ссылками на другие слайды... а так же кнопки ттипа "назад" и "далее". Как программно из Delphi нажать любую из них?
|
|
Сообщение
#12
|
|
![]() |
|
Текстовая версия | Сейчас: 17:05:2008 - 10:09 |