Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Вниз

загрузка html страницы   Найти похожие ветки 

 
~viper~   (2006-08-13 22:54) [0]

Всем привет!
Как подцепить ProgressBar к WebBrowser?
Чтобы при загрузке сайта отображался ход загрузки...
Спасибо!


 
DiamondShark ©   (2006-08-13 23:37) [1]

Очень просто.


unit Unit1;

interface

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

type
 TForm1 = class(TForm, IUnknown, IDispatch)
   WebBrowser1: TWebBrowser;
   Button1: TButton;
   ProgressBar1: TProgressBar;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
   function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
   function GetIDsOfNames(const IID: TGUID; Names: Pointer;
     NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
   function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
     Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
 private
   FConnectionCookie: Integer;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

uses
 ComObj,
 ActiveX;

const
 DISPID_PROGRESSCHANGE = 108;

function TForm1.GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount,
 LocaleID: Integer; DispIDs: Pointer): HResult;
begin
 Result := E_NOTIMPL;
end;

function TForm1.GetTypeInfo(Index, LocaleID: Integer;
 out TypeInfo): HResult;
begin
 Result := E_NOTIMPL;
end;

function TForm1.GetTypeInfoCount(out Count: Integer): HResult;
begin
 Result := E_NOTIMPL;
end;

function TForm1.Invoke(DispID: Integer; const IID: TGUID;
 LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
 ArgErr: Pointer): HResult;
var
 dp: DISPPARAMS absolute Params;
begin
 case DispID of
   DISPID_PROGRESSCHANGE: begin
     ProgressBar1.Max := OleVariant(dp.rgvarg[0]);
     ProgressBar1.Position := OleVariant(dp.rgvarg[1]);
   end;
 end;
 Result := S_OK;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 cpc: IConnectionPointContainer;
 cp: IConnectionPoint;
begin
 cpc := WebBrowser1.ControlInterface as IConnectionPointContainer;
 OleCheck( cpc.FindConnectionPoint(DWebBrowserEvents2, cp) );
 OleCheck( cp.Advise(self as IDispatch, FConnectionCookie) );
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
 cpc: IConnectionPointContainer;
 cp: IConnectionPoint;
begin
 if FConnectionCookie <> 0 then
   begin
     cpc := WebBrowser1.ControlInterface as IConnectionPointContainer;
     OleCheck( cpc.FindConnectionPoint(DWebBrowserEvents2, cp) );
     OleCheck( cp.Unadvise(FConnectionCookie) );
   end;
end;

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

end.


 
Stexen   (2006-08-14 18:04) [2]

Там же ОнПрогресс был по моему, или я что-то путаю?


 
DiamondShark ©   (2006-08-14 18:26) [3]

Он там должен быть, но почему-то нет. По крайней мере, в Дельфи 5.
А вот если деинсталировать борландовский пакет с WebBrowser и заново импортировать shdocvw.dll, то есть.

Наверное, борландцы свой WebBrowses с очень старого ИЕ импортировали.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
15-1157088870
Ega23
2006-09-01 09:34
2006.09.24
С Днём рождения! 1 сентября


3-1153742657
TrainerOfDolphins
2006-07-24 16:04
2006.09.24
Fatal Error: Unit frxClass was compiled with a different version


2-1157130201
nordic3
2006-09-01 21:03
2006.09.24
Код цвета


15-1157493318
Palladin
2006-09-06 01:55
2006.09.24
Гэндальф


15-1157000425
begin...end
2006-08-31 09:00
2006.09.24
31 августа. С Днём рождения!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский