Главная » Delphi » Интернет и сети » как отключить, включить отображение рисунков в TWebBrowser?

как отключить, включить отображение рисунков в TWebBrowser?

15:16
unit Unit1;
 
interface
 
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, SHDocVw, OleCtrls, ActiveX, StdCtrls;
type
 TimgWebBrowser = class(TWebBrowser, IDispatch)
 private
   FImageEnabled: boolean;
    procedure SetImageEnabled(const Value: boolean);
 protected
   function IDispatch.Invoke = Invoke;
   function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
     Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
     stdcall;
 public
   constructor Create(AOwner: TComponent); override;
 published
   property ImageEnabled: boolean read FImageEnabled write SetImageEnabled default true;
 end;
 
type
 TForm1 = class(TForm)
    Button1: TButton;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   imgWebBrowser: TimgWebBrowser;
 public
   { Public declarations }
 end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{ TimgWebBrowser }
 
constructor TimgWebBrowser.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 FImageEnabled := true;
end;
 
function TimgWebBrowser.Invoke(DispID: Integer; const IID: TGUID;
 LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
 ArgErr: Pointer): HResult;
const
 DISPID_AMBIENT_DLCONTROL = -5512;
 DLCTL_DLIMAGES = $00000010;
begin
 if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil) then
 begin
   Result := S_OK;
   case DispID of
     DISPID_AMBIENT_DLCONTROL:
       if FImageEnabled then
         PVariant(VarResult)^ := Integer(DLCTL_DLIMAGES)
       else
         PVariant(VarResult)^ := Integer(not DLCTL_DLIMAGES);
   else
     Result := DISP_E_MEMBERNOTFOUND;
   end;
 end else
   result := inherited invoke(dispid, iid, localeid, flags, params, varresult,
     ExcepInfo, argerr);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 imgWebBrowser := TimgWebBrowser.Create(self);
 with imgWebBrowser do begin
   Align := alclient;
   TControl(imgWebBrowser).Parent := form1;
   ImageEnabled := false;   // Это тут.
   Navigate('http://delphimaster.ru');
 end;
 Button1.BringToFront;
 Button1.Caption:='Enbl/Dsbl';
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
 imgWebBrowser.Free;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  imgWebBrowser.ImageEnabled:=not imgWebBrowser.ImageEnabled;
end;
 
procedure TimgWebBrowser.SetImageEnabled(const Value: boolean);
var
  path:OleVariant;
begin
if (assigned(Document)) then begin
  FImageEnabled := Value;
  path:=OleObject.document.location;
  RecreateWnd;
  Navigate(path);
end;
end;
 
end.