Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компонент WebBrowser проблема с буфером обмена, не копируется картинка в буфер обмена  
:(
    Опции темы
leonid4244
  Дата 2.2.2010, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.6.2008

Репутация: нет
Всего: нет



Здравствуйте 

 У Меня такая проблема нашел готовый код копирования картинки в буфер обмена

вот код :

Код

uses ClipBrd

procedure TForm1.Button1Click(Sender: TObject);
var body, imgs, controlRange: olevariant;
begin
 body := WebBrowser1.OleObject.document.body;
 imgs := WebBrowser1.OleObject.document.images.item(0);
 controlRange := body.createControlRange;
 controlRange.add(imgs);
 controlRange.execCommand('Copy', False, EmptyParam);
 if ClipBoard.HasFormat(CF_BITMAP) then begin
 Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap, ClipBoard.GetAsHandle(cf_Bitmap), 0);
 Clipboard.Clear;
 end;
end;


нашол многа одзывов что код работает  но почемута у меня нет ((((

Кампиляция проходит успешно но картинка в тупую не копируется в буфер обмена (((

Если каму несложна проверти код у себя 

может у меня какоинебуть делфи с дефектом  ((

А может кто знает причину па каторои непроисходит капирование в буфер обмена картинки )

Надеюсь на вашу помащ )) 


 


Это сообщение отредактировал(а) Rrader - 3.2.2010, 08:16
PM MAIL   Вверх
artsb
Дата 2.2.2010, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Никогда не возился с WebBrowser, но полагаю, что ошибка здесь:
Код

imgs := WebBrowser1.OleObject.document.images.item(0);

А именно номер индекса неверен. Вы, наверное, просто скопипастили код, не почитав что он делает.

ЗЫ Используйте подсветку кода. И подучите русский, а то тяжело читать  smile 


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
leonid4244
Дата 3.2.2010, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.6.2008

Репутация: нет
Всего: нет



да нет кокрас почитал просто нестал менять язнаю зачем этот индекс и ка он должен изменяться 
проблема в делфи он нехочет копировать картинку в буфер обмена ((((
а проверил я это таким оброзам - навел курсор на картинку в WebBrowser1 кликнул правои кнопкаи мыши нажал скопировать 
а вответ  тешена что делать незнаю помогите кто может добрым советом ?????
PM MAIL   Вверх
volvo877
Дата 4.2.2010, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 5
Всего: 116



Бррр... 
Цитата(leonid4244 @  3.2.2010,  02:44 Найти цитируемый пост)
а проверил я это таким оброзам - навел курсор на картинку в WebBrowser1 кликнул правои кнопкаи мыши нажал скопировать 
а вответ  тешена 
А что ты хотел в ответ? Скопировал ты в Буфер обмена, и что? Что должно было произойти? Проверять не так надо было: сделай то, что ты делал, а потом (когда скопировал), нажми вот такую кнопку:
Код
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ClipBoard.HasFormat(CF_BITMAP) then
  begin
    Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap, ClipBoard.GetAsHandle(cf_Bitmap), 0);
    Clipboard.Clear;
  end;
end;
, изображение из буфера вставится в Image1...
PM MAIL   Вверх
andruha10
  Дата 9.7.2010, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.7.2010
Где: Украина

Репутация: нет
Всего: нет



Не работает потому что нужно подключить функцию и процедуру из ole32.dll эта проблема описана на сайте майксофта.
Вот решение:
  • Подгрузил функцию и процедуру из dll
    Код

    var
      Form1: TForm1;

      function  OleInitialize(pvReserved: Pointer): HResult; stdcall;
    procedure OleUninitialize; stdcall;

    implementation


      function  OleInitialize;     external 'ole32.dll' name 'OleInitialize';
    procedure OleUninitialize;   external 'ole32.dll' name 'OleUninitialize';

    {$R *.dfm}

  • и только потом в конце перед end. инициализировал функцию.
    Код

    initialization
      OleInitialize(nil);

    finalization
      OleUninitialize;

      end.

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.