Конференция "Corba" » Реакция моего приложения на события в открытом IE
 
  • Johnnnnnnn (27.08.07 05:03) [0]
    Вобщем поделитесь знаниями как зделать так чтобы при возникновении события в ie например ondownloadcomplete
    в моей программе выскакивало сообщение к примеру?

    while ie.ReadyState<>READYSTATE_COMPLETE do не предлагать! есть ли вариант с использование iconnectionpoint?

    читаю просто читаю но понять немогу ниче может поможет кто?

    Спасибо!
  • Сергей М. © (27.08.07 08:53) [1]

    > как зделать так чтобы при возникновении события в ie например
    > ondownloadcomplete
    > в моей программе выскакивало сообщение к примеру?


    Прямо так и сделать - в обработчике события OnDownloadComplete вывести то самое сообщение:

    MessageBox(0, 'К примеру', '', MB_OK or MB_SETFOREGROUND);
  • Johnnnnnnn (27.08.07 19:37) [2]
    НЕзнаю я впринципе в етом неочень понимаю может чето невижу но спрошу еще раз! Итак ЕСТЬ ОТКРЫТЫЙ IE который я открыл WB:=CoInternetExplorer.Create;
         WB.Visible:=True;
         WB.Navigate('url'); вот после етого после того как он пошел по ссылке мне нужно чтобы он отмаячил мне что загрузка закончена расскажите как мне ето написать wb.ondownloadcomplete? ну дак нет такого метода. Добавить на форму webbrowser и через него уже както работать? вот если так то как конкретно напишите плиз!
  • Сергей М. © (28.08.07 09:12) [3]

    > Добавить на форму webbrowser и через него уже както работать?


    Это будет самым простым вариантом, если использование именно IE (как автономного приложения для навигации и отображения ее результатов) не принципиально.

    Ну а если все же принципиально, то:

    TMyForm = class(TForm)
    ..
     procedure DoComplete(Sender: TObject);
    ..
    end;
    ..

    procedure TMyForm.DoComplete(Sender: TObject);
    begin
     ShowMessage('Отмаячил !');
    end;

    var
     IE: TInternetExplorer;

    procedure TMyForm.Button1Click(Sender: TObject);
    begin    
    ..
     IE.OnDownloadComplete := DoComplete;
     IE.Navigate('url');
    ..
    end;
  • Johnnnnnnn (29.08.07 01:59) [4]
    Thanks!
  • Johnnnnnnn (29.08.07 04:24) [5]
    Еще такой вопрос а если допустим я подключился к уже открытому браузеру:

    var
    Okno: IShellWindows;
    Brawser: IWebBrowser2;
    i:integer;
    Doc: IHtmlDocument2;
    begin
    Okno:=CoShellWindows.Create;
    for i:=0 to Okno.Count-1 do
    if (Okno.Item(i) as IWEbBrowser2).Document<>nil then
    begin
    Brawser:= Okno.Item(i)as IWebBrowser2;

    вот как в етом случае подключиться к ondownloadcomplete?
  • Сергей М. © (29.08.07 08:45) [6]
    IE.ConnectTo(Brawser)

    Все остальное точно так же как в [3]
  • Johnnnnnnn (29.08.07 21:05) [7]
    Невыходит ничего. Вобщем кинул на форму 2 кнопки (код всей проги приведу ниже) по нажатию на первую подключаюсь к открытому ie по нажатию на вторую присоединяюсь к brawser (тут никаких ошибок, счас попробую попроверять есть там значение какоето в ie или нет) а на ie.GoBack; выдает ошибку EAccessViolation: Access violation at address 004593ba in module project1.exe read of address 00000000

    kod:

    unit Unit1;

    interface

    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, mshtml, ShDocVw;

    type
     TForm1 = class(TForm)
       Button1: TButton;
       Button2: TButton;
     procedure DoComplete(Sender: TObject);
       procedure Button1Click(Sender: TObject);
       procedure Button2Click(Sender: TObject);
     private
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form1: TForm1;
     IE: TInternetExplorer;
     Okno: IShellWindows;
     Brawser: IWebBrowser2;
     i:integer;

    implementation

    {$R *.dfm}
    procedure TForm1.DoComplete(Sender: TObject);
    begin
    ShowMessage('ghjgh');
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Okno:=CoShellWindows.Create;
    for i:=0 to Okno.Count-1 do
    if (Okno.Item(i) as IWEbBrowser2).Document<>nil then
    begin
    Brawser:= Okno.Item(i)as IWebBrowser2;
    if Brawser.LocationName='Go go go:' then break;
    end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    ie.ConnectTo(Brawser);
    ie.GoBack;
    end;

    end.
  • Johnnnnnnn (29.08.07 21:09) [8]
    а нет ошибка выскакивает именно на ie.ConnectTo(Brawser);
  • Johnnnnnnn (30.08.07 02:30) [9]
    Какието предложения есть у когото как можно зделать?
  • Сергей М. © (30.08.07 09:00) [10]
    Не вижу создания объекта TInternetExplorer ..
  • Johnnnnnnn (30.08.07 21:44) [11]
    Сергей М. - spasibo ogromnoe! rabotaet! yra blin!

    ie:=TInternetExplorer.create(self);
    ie.ConnectTo(Brawser);
    ie.GoBack;
 
Конференция "Corba" » Реакция моего приложения на события в открытом IE
Есть новые Нет новых   [134431   +8][b:0][p:0]