Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мастера, есть вопрос по WebBrowser [D6, D7, WinXP]


KirGus ©   (2004-11-12 08:02:00) 

Как сохранить нужную картинку с WebBrowser'a и запустить ее в WebBrowser'е ?
===
Не предлагать варианты, завязанные с адресом картинки !


Opilki_Inside   (2005-01-20 12:24:00) [1]


> А у картинки для этого есть заголовок. Читай первые 3-4
> байта и определяй формат


Но в буфере обмена она всё равно хранится в bmp? Допустим, картинка имеет формат jpg, после того как я вставлю ее из буфера обмена в какой-то свой массив и сохраню ее как jpg потеряется ведь качество, неговоря уж о контрольной сумме файла. А хотелось бы непосредственно сохранить на жесткий диск всё в первозданном виде.

Может быть всё таки можно её "Сохранить как..." ? Я пробывал, но не получилось.


Opilki_Inside   (2005-01-20 12:24:00) [2]


> А у картинки для этого есть заголовок. Читай первые 3-4
> байта и определяй формат


Но в буфере обмена она всё равно хранится в bmp? Допустим, картинка имеет формат jpg, после того как я вставлю ее из буфера обмена в какой-то свой массив и сохраню ее как jpg потеряется ведь качество, неговоря уж о контрольной сумме файла. А хотелось бы непосредственно сохранить на жесткий диск всё в первозданном виде.

Может быть всё таки можно её "Сохранить как..." ? Я пробывал, но не получилось.


Rouse_   (2005-01-20 09:55:00) [3]

> Но при помещении картинки в буфер обмена теряется ее формат (jpg, bmp, gif).
А у картинки для этого есть заголовок. Читай первые 3-4 байта и определяй формат


Seeker   (2005-01-19 16:50:00) [4]

KirGus
По другому не получается(если нельзя загрузить картинку на прямую)
ps:регистрилку пишешь?


Opilki_Inside   (2005-01-18 13:29:00) [5]

Очень интересная идея. Но при помещении картинки в буфер обмена теряется ее формат (jpg, bmp, gif). Плюс ко всему, возможны конфликты, если несколько программ, одновременно будут сохранять картинки с разных сайтов... Я пробывал использовать команду SaveAs, но то ли я с ней не разобрался, то ли она не позволяет сохранять картинки.

Может быть у кого нибудь есть какие либо идеи и он не прочь с ними поделиться?

Тема-то действительно актуальна и многие интересуются...


easy   (2004-11-12 11:17:00) [6]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, SHDocVw, mshtml, activex;

type
 TForm1 = class(TForm)
   WebBrowser1: TWebBrowser;
   WebBrowser2: TWebBrowser;
   procedure FormCreate(Sender: TObject);
   procedure WebBrowser1DocumentComplete(Sender: TObject;
     const pDisp: IDispatch; var URL: OleVariant);
   procedure WebBrowser2DocumentComplete(Sender: TObject;
     const pDisp: IDispatch; var URL: OleVariant);
 private
   { Private declarations }

 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 WebBrowser1.Navigate(' http://delphimaster.ru');
 WebBrowser2.Navigate('about:blank');
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
 const pDisp: IDispatch; var URL: OleVariant);
var
 i: integer;
 body, imgs, controlRange: olevariant;
begin
 body := WebBrowser1.OleObject.document.body;
 imgs := WebBrowser1.OleObject.document.all.tags('IMG');
 controlRange := body.createControlRange;
 for i := 0 to imgs.length - 1 do begin
   controlRange.add(imgs.item(i));
   controlRange.execCommand('Copy', False, EmptyParam);
   WebBrowser2.ExecWB(OLECMDID_PASTE, 0);
 end;
end;

procedure TForm1.WebBrowser2DocumentComplete(Sender: TObject;
 const pDisp: IDispatch; var URL: OleVariant);
begin
 WebBrowser2.OleObject.document.body.contentEditable := true;
end;

initialization
 OleInitialize(nil);

finalization
 OleUninitialize;
end.


Ш-К   (2004-11-12 10:04:00) [7]

Никак. Только через вызовы диалога или обращение к адрессу/кешу.


Наверх

Титульная страница Поиск, карта сайта Написать письмо