Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 20:00   #1
StartMis
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 175
По умолчанию WebBrowser сохранить картинку

Помогите разобраться. на шел в сети как сохранять картинку за груженую в WebBrowser
Код:
procedure SaveImageFromIHtmlDocument2(AIHtmlDocument2: IHtmlDocument2; const ADir: string);
var Images: IHTMLElementCollection;
    i: Integer;
    ImgElement: IHTMLImgElement;
    URL: string;
    Buff: Pointer;
    BuffSize: DWORD;
    CacheName: string;
    NewName: string;
    P: Integer;
    ElementRender: IHTMLElementRender;
    Bitmap: TBitmap;
begin
  if not Assigned(AIHtmlDocument2) then exit;
  Images := AIHtmlDocument2.images;
  if not Assigned(Images) then exit;
  for i := 0 to Images.length - 1 do
    if Succeeded(Images.item(i, 0).QueryInterface(IHTMLImgElement, ImgElement)) then
      try
        CacheName := '';
        URL := ImgElement.src;
        NewName := URL;
        P := LastDelimiter('/', NewName);
        if P > 0 then Delete(NewName, 1, P);
        NewName := ADir + NewName;
        Buff := nil;
        BuffSize := 0;
        if not RetrieveUrlCacheEntryFile(PChar(URL), TInternetCacheEntryInfo(Buff^), BuffSize, 0) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
          begin
            GetMem(Buff, BuffSize);
            try
              if RetrieveUrlCacheEntryFile(PChar(URL), TInternetCacheEntryInfo(Buff^), BuffSize, 0) then
              try
                
        if Succeeded(ImgElement.QueryInterface(IHTMLElementRender, ElementRender)) then
          try
            Bitmap := TBitmap.Create;
            try
              with ImgElement as IHTMLElement, Bitmap, Canvas do
                begin
                  Width := offsetWidth;
                  Height := offsetHeight;
                  Brush.Color := clWhite;
                  FillRect(ClipRect);
                  ElementRender.DrawToDC(Handle);
                end;
            finally
              Bitmap.Free;
            end;
          finally
            ElementRender := nil;
          end;
        Form1.ListBox1.Items.Add(CacheName);
      finally
        ImgElement := nil;
      end;
end;
Вопрос что нужно подключить в uses. и какие параметры нужно передать процедуре

Последний раз редактировалось StartMis; 23.02.2010 в 02:08.
StartMis вне форума Ответить с цитированием
Старый 22.02.2010, 23:56   #2
StartMis
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 175
По умолчанию

все проблема решена. тема закрыта

Последний раз редактировалось StartMis; 23.02.2010 в 02:07.
StartMis вне форума Ответить с цитированием
Старый 29.04.2010, 18:38   #3
izogfif
Новичок
Джуниор
 
Регистрация: 29.04.2010
Сообщений: 1
По умолчанию WebBrowser сохранить картинку

Не могли бы Вы поделиться решением, пожалуйста?
izogfif вне форума Ответить с цитированием
Старый 21.10.2011, 12:37   #4
QWERYTY
 
Регистрация: 11.04.2010
Сообщений: 5
По умолчанию

Малорик! Себе проблему решил, а остальные нах.

Я этот код запустить не пробовал, но с WebBrowser работал.
Думаю тут нужно смотреть в сторону ActiveX.dcu и MSHTML.dcu.
ShDocVw.dcu если не ошибаюсь сам прописывается при размещении WebBrowser на форму.


Всем удачи.
QWERYTY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить картинку.... Lifefine Мультимедиа в Delphi 22 24.10.2009 11:43
WebBrowser сохранить фаил mdn-77 Работа с сетью в Delphi 1 19.10.2009 02:39
Сохранить картинку и текст в одном файле 856100 Общие вопросы Delphi 15 31.08.2009 13:48
TWebBrowser - сохранить картинку Air Компоненты Delphi 7 16.01.2009 02:31