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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2014, 23:43   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию как принудительно остановить загрузку странички WebBrowser1

как принудительно остановить загрузку странички WebBrowser1?

Код:
      WebBrowser1.Stop;
      WebBrowser1.Quit;
      WebBrowser1.QueryStatusWB(OLECMDID_STOP);
есть что-то такого, как:

Код:
Application.Terminate;

Последний раз редактировалось beegl; 06.03.2014 в 23:51.
beegl вне форума Ответить с цитированием
Старый 07.03.2014, 07:53   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

WebBrowser1.Stop; останавливает загрузку странички. Или что вы хотите вообще?
FaTaL вне форума Ответить с цитированием
Старый 07.03.2014, 11:38   #3
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

что-то не останавливает



надо как-то прервать событие OnDocumentComplete, WebBrowser1.Stop; почему-то не останавливает, как прервать выполнение OnDocumentComplete? скомпилированный проект

Код:
procedure TIntertelecomForm.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  Browser: TWebBrowser;
  List: TStringList;
  I: Integer;
  ErrorText: string;
begin
  Caption := URL;

  Browser := Sender as TWebBrowser;

  if (Pos('/login', URL) > 0) then
  begin

    if (ErrorExists(Browser, ErrorText)) then
      raise Exception.CreateFmt(ERROR_LOGIN, [ErrorText]);
//      ExaptErrorLogPass;

    if (not FillForm(Browser, 'phone', EditUsername.Text)) then
      raise Exception.Create(ERROR_FIELD_PHONE_NOT_FOUND);

    if (not FillForm(Browser, 'pass', EditPassword.Text)) then
      raise Exception.Create(ERROR_FIELD_PASSWORD_NOT_FOUND);

    if (not AcceptForm(Browser)) then
      raise Exception.Create(ERROR_SUBMIT_FAILED);
    Exit;
  end;

  if (Pos('/statistic', URL) > 0) then
  begin
    List := TStringList.Create();
    try
      if (not ExtractInfos(Browser, List)) then
      LSVGauge12.Visible := False;
      RxGIFAnimator1.Visible := True;
      Timer4.Enabled := False;
      Timer3.Enabled := True;
      CoolTrayIcon1.CycleIcons := True;
      GradBtnCancel.Visible := False;
      RollUp;
      WebBrowser1.OleObject.Document.ParentWindow.ScrollBy(0, +645);
      WebBrowser1.OleObject.Document.ParentWindow.ScrollBy(+250, 0);
      RxGIFAnimator1.Visible := True;
//        raise Exception.Create(ERROR_ON_EXTRACT_INFOS);

      StringGrid1.RowCount := List.Count + 1;
      for I := 0 to List.Count - 1 do
      begin
        StringGrid1.Cells[0, I+1] := List.Names[I];
        StringGrid1.Cells[1, I+1] := List.ValueFromIndex[I];
      end;
    finally
      List.Free();
    end;
    Exit;
  end;
end;

Последний раз редактировалось beegl; 07.03.2014 в 11:44. Причина: добавил скрин, код и проект
beegl вне форума Ответить с цитированием
Старый 07.03.2014, 11:46   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
как прервать выполнение OnDocumentComplete?
exit.
ваш КО.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.03.2014, 11:48   #5
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

а как направить команду Exit на событие OnDocumentComplete ?

вставил между выполняемым кодом этот кусок:

Код:
var
   ExitProcFlag: Boolean;
..................................
 Application.ProcessMessages();
     if ExitProcFlag = True then
     begin
     Caption := 'Intertelecom Balans';
     Exit;
     end;
..................................
на кнопку отмена написал:

Цитата:
ExitProcFlag := True;
все равно не прерывает

Код:
procedure TIntertelecomForm.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  Browser: TWebBrowser;
  List: TStringList;
  I: Integer;
  ErrorText: string;
begin
  Caption := URL;

  Browser := Sender as TWebBrowser;
 Application.ProcessMessages();
   if ExitProcFlag = True then            все равно не прерывает
   begin
   Caption := 'Intertelecom Balans';
   Exit;
   end;
  if (Pos('/login', URL) > 0) then
  begin

    if (ErrorExists(Browser, ErrorText)) then
      raise Exception.CreateFmt(ERROR_LOGIN, [ErrorText]);
//      ExaptErrorLogPass;

    if (not FillForm(Browser, 'phone', EditUsername.Text)) then
      raise Exception.Create(ERROR_FIELD_PHONE_NOT_FOUND);

    if (not FillForm(Browser, 'pass', EditPassword.Text)) then
      raise Exception.Create(ERROR_FIELD_PASSWORD_NOT_FOUND);

    if (not AcceptForm(Browser)) then
      raise Exception.Create(ERROR_SUBMIT_FAILED);
    Exit;
  end;
   Application.ProcessMessages();
   if ExitProcFlag = True then        все равно не прерывает
   begin
   Caption := 'Intertelecom Balans';
   Exit;
   end;
  if (Pos('/statistic', URL) > 0) then
  begin
    List := TStringList.Create();
    try
      if (not ExtractInfos(Browser, List)) then
      LSVGauge12.Visible := False;
      RxGIFAnimator1.Visible := True;
      Timer4.Enabled := False;
      Timer3.Enabled := True;
      CoolTrayIcon1.CycleIcons := True;
      GradBtnCancel.Visible := False;
      RollUp;
      WebBrowser1.OleObject.Document.ParentWindow.ScrollBy(0, +645);
      WebBrowser1.OleObject.Document.ParentWindow.ScrollBy(+250, 0);
      RxGIFAnimator1.Visible := True;
//        raise Exception.Create(ERROR_ON_EXTRACT_INFOS);
     Application.ProcessMessages();
     if ExitProcFlag = True then      все равно не прерывает
     begin
     Caption := 'Intertelecom Balans';
     Exit;
     end;
      StringGrid1.RowCount := List.Count + 1;
      for I := 0 to List.Count - 1 do
      begin
        StringGrid1.Cells[0, I+1] := List.Names[I];
        StringGrid1.Cells[1, I+1] := List.ValueFromIndex[I];
      end;
    finally
      List.Free();
    end;
    Exit;
  end;
end;

Последний раз редактировалось beegl; 07.03.2014 в 12:16. Причина: добавил код
beegl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать загрузку браузера. Dryn9 Помощь студентам 1 14.12.2012 06:30
как заставить twebbrowser принудительно открывать все ftp ссылки в пассивном режиме key-bo2 Помощь студентам 0 24.07.2011 18:41
Остановить принудительно. D.O.G БД в Delphi 2 14.12.2010 09:06
Как принудительно сохранить в .xls Nicos Microsoft Office Excel 2 17.08.2010 22:03
Как принудительно перерисовать форму. IliaIT Общие вопросы Delphi 2 23.04.2009 14:34