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

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

Webbrowser1 должен загружать только текст. Как сделать? [D7]


Hitriy_r60 ©   (2006-08-15 16:52:00) 

Как Webbrowser1 запретить загружать картинки?
Чтобы он грузил только текст.

Заранее спасибо!!!


DiamondShark   (2006-08-15 17:43:00) [1]

Всё опять просто.


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, OleCtrls, SHDocVw;

type
 TForm1 = class(TForm)
   WebBrowser1: TWebBrowser;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   procedure Reader_FindComponentClass(Reader: TReader; const ClassName: string; var ComponentClass: TComponentClass);
 protected
   procedure ReadState(Reader: TReader); override;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

type
 TMyWebBrowser = class(TWebBrowser, IDispatch)
 protected
   function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
     Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
 end;

{ TForm1 }

procedure TForm1.Reader_FindComponentClass(Reader: TReader;
 const ClassName: string; var ComponentClass: TComponentClass);
begin
 if ClassName = 'TWebBrowser' then ComponentClass := TMyWebBrowser;
end;

procedure TForm1.ReadState(Reader: TReader);
begin
 Reader.OnFindComponentClass := Reader_FindComponentClass;
 inherited;
end;

{ TMyWebBrowser }

const
 DISPID_AMBIENT_DLCONTROL = (-5512);

function TMyWebBrowser.Invoke(DispID: Integer; const IID: TGUID;
 LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
 ArgErr: Pointer): HResult;
begin
 Result := S_OK;
 if DispID = DISPID_AMBIENT_DLCONTROL then
   OleVariant(VarResult^) := 0 // См. примечание
 else
   Result := inherited Invoke(DispID, IID, LocaleID, Flags, Params, VarResult, ExcepInfo, ArgErr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 WebBrowser1.Navigate(' http://www.delphimaster.ru');
end;

end.


Примечание.
Вообще-то, здесь должен быть набор флагов, разрешающих или запрещающих те или иные фичи, но мне влом.
Описание здесь:
http://msdn.microsoft.com/workshop/browser/hosting/wbcustomization.asp?frame=true#Controlling_Download_and_Execution


Наверх

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