![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Здравствуйте!
Скажи пожалуйста, можно ли из разрабатываемого приложения по нажатию кнопки вставить в существующую презентацию (созданную в MOffice PowerPoint) новый слайд, и кроме того - на слайд вставить картинку из Paint..?? |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Можно... Связка Builder 2009 + PowerPoint из Office XP:
void __fastcall TForm1::Button8Click(TObject *Sender)Итого: все, что тебе нужно - это чтобы к моменту нажатия на кнопку в буфере обмена Windows находилась нужная картинка (чтобы запихать из Paint-а картинку в Clipboard достаточно найти окно Paint-а и послать ему нажатия Ctrl+A и Ctrl+C)... На приведенной конфигурации это отработало, на других версиях PP или Билдера могут быть несоответствия в количестве параметров у той или иной процедуры/функции, поэтому может потребоваться незначительная переделка. |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
void __fastcall TForm1::Button8Click(TObject *Sender) Что-то не то с функцией CreateOleObject.. На строке с этой функцией вот такая вот ошибка: [C++ Error] Unit1.cpp(23): E2268 Call to undefined function 'CreateOleObject'.. (тестировалось на C++ Builder 6..) Сообщение отредактировано: 18192123 - 8.03.2009 18:45 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
#include <ComObj.hpp>в проекте присутствует? |
18192123 |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
18192123 |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Проблема со вставкой рисунка на слайд..
Рисунок, как и нужно, находиться в буфере перед нажатием на кнопку...но приложение вылетает на строке:
Скажите пожалуйста, в чём может быть дело? Сообщение отредактировано: 18192123 - 8.03.2009 20:15 Эскизы прикрепленных изображений ![]() |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата Рисунок, как и нужно, находиться в буфере перед нажатием на кнопку... Уверена, что он там находится в правильном формате? Если откроешь еще один Paint и нажмешь Ctrl+V перед нажатием на кнопку, рисунок вставится?Если вставляется, значит проблема в том, что у твоего PowerPoint-а другие методы. Сделай стандартным способом: открой свою презентацию в PowerPoint-е, выбери в меню Tools->Macro->Record New Macro..., и сделай все необходимые тебе действия по добавлению слайда и по добавлению в него картинки вручную. Когда получишь нужный результат, прекрати запись макроса, зайди в Tools->Macro->Macros... <имя записанного макроса> -> Edit, и покажи текст макроса, сгенерированного PowerPoint-ом. Будем смотреть ,что можно сделать... |
18192123 |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вот, что получилось:
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
В таком случае вставка из моего кода должна работать, у меня был такой макрос:
Код ActiveWindow.View.GotoSlide Index:=ActivePresentation.Slides.Add(Index:=2, Layout:=ppLayoutText).SlideIndex ActiveWindow.Selection.SlideRange.Shapes("Rectangle 3").Select ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select ActiveWindow.Selection.Unselect ActiveWindow.View.Paste , и именно он запрограммирован выше... Не знаю, в чем проблема. Что насчет правильности содержимого Clipboard-а? Какая у тебя версия PP? |
18192123 |
![]()
Сообщение
#10
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
18192123 |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Уж не знаю, что изменилось, но всё сработало - спасибо большое!!
Хотелось бы узнать, как можно сохранить рисуночек из Paint не только в презентации, но и как непосредственно рисунок в определённой папке..Подскажите пожалуйста! |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
У тебя же есть этот рисунок в ClipBoard-е, так забери его оттуда и сохрани:
void __fastcall TForm1::Button2Click(TObject *Sender) |
18192123 |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Хм..странные вещи со вставкой рисунка на новый слайд..То работало - теперь снова проблемы..Этому можно найти какое-нибудь объяснение..?
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Что, на одной той же машине? Или на разных?
Что произошло перед тем, как оно заработало? Перезагрузка? Или перезагрузки не было, а оно сначала никак не работало, а потом начало работать? Возможно, у тебя что-то с COM-сервером, и он после перезагрузки какое-то время работает, а потом что-то ломается и он работать перестает? |
18192123 |
![]()
Сообщение
#15
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Что, на одной той же машине? Или на разных? Что произошло перед тем, как оно заработало? Перезагрузка? Или перезагрузки не было, а оно сначала никак не работало, а потом начало работать? Возможно, у тебя что-то с COM-сервером, и он после перезагрузки какое-то время работает, а потом что-то ломается и он работать перестает? Уж не знаю, как связано..Но стабильно начало работать, когда в презентации я добавила слайд. вставила туда вручную картинку из буфера..Далее запустила программу - всё прекрасно.. А у меня ещё такой вопрос: по сохранению рисунка из буфера..Скажите пожалуйста, как добиться, чтобы сохранение каждый раз было по новому адресу? например: 1.jpg 2.jpg .. |
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
Ну, к примеру, объяви переменную - пусть будет Counter - в которую при запуске программы записывай количество JPG-файлов в нужной тебе папке (как ищутся файлы с определенным расширением, знаешь?). А потом - увеличивай Counter и сохраняй файл:
Counter += 1; |
18192123 |
![]()
Сообщение
#17
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
int CountJPG(AnsiString dir) |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 0:18 |