Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Компонент WebBrowser проблема с буфером обмена


Автор: leonid4244 2.2.2010, 06:25
Здравствуйте 

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

вот код :

Код

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;


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

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

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

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

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

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


 

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

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

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

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

Автор: leonid4244 3.2.2010, 03:44
да нет кокрас почитал просто нестал менять язнаю зачем этот индекс и ка он должен изменяться 
проблема в делфи он нехочет копировать картинку в буфер обмена ((((
а проверил я это таким оброзам - навел курсор на картинку в WebBrowser1 кликнул правои кнопкаи мыши нажал скопировать 
а вответ  тешена что делать незнаю помогите кто может добрым советом ?????

Автор: volvo877 4.2.2010, 18:59
Бррр... 
Цитата(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...

Автор: andruha10 9.7.2010, 02:39
Не работает потому что нужно подключить функцию и процедуру из 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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)