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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2012, 16:37   #1
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию как вызвать процедуру из другой процедуры?

Есть процедура procedure TForm1.Button1Click(Sender: TObject);
на форме лежит веббраузер
так вот, у него есть такое событие как DocumentComplete
вызывается процедурой procedure TForm1.WebBrowser1DocumentComplete( ASender: TObject;
const pDisp: IDispatch; const URL: OleVariant);

Так у меня идет цикл
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin 
  for  i := 0 to ListBox1.Items.Count-1 do
begin


                 WebBrowser1.Navigate(URL);
                 Label4.Caption:=IntToStr(i);
                 Application.ProcessMessages();
 end;
end;
Как мне вызвать в теле цикла процедуру procedure TForm1.WebBrowser1DocumentComplete( ASender: TObject;
const pDisp: IDispatch; const URL: OleVariant);
??
Что подставлять вместо ASender, pDisp, URL ?
bakanaev вне форума Ответить с цитированием
Старый 05.08.2012, 16:42   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Это процедура исполняется автоматически, когда произойдет полная загрузка страницы.
Базиля вне форума Ответить с цитированием
Старый 05.08.2012, 16:54   #3
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Да я знаю)) Но мне надо вызвать вручную
bakanaev вне форума Ответить с цитированием
Старый 05.08.2012, 18:08   #4
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Можно узнать?
Для чего вам это нужно?
Я думаю в данном случае правильней будет написать свою процедуру и воспользоваться ею.
А ваши намерения несколько некорректны.
Базиля вне форума Ответить с цитированием
Старый 05.08.2012, 18:56   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin 
  for  i := 0 to ListBox1.Items.Count-1 do
begin

WebBrowser1DocumentComplete(nil,nil,url);
                 WebBrowser1.Navigate(URL);
                 Label4.Caption:=IntToStr(i);
                 Application.ProcessMessages();
 end;
end;
Сойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2012, 19:00   #6
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Вот хоть убейте, понять не могу, для чего таки извращения автору?
Базиля вне форума Ответить с цитированием
Старый 05.08.2012, 19:13   #7
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin 
  for  i := 0 to ListBox1.Items.Count-1 do
begin

WebBrowser1DocumentComplete(nil,nil,url);
                 WebBrowser1.Navigate(URL);
                 Label4.Caption:=IntToStr(i);
                 Application.ProcessMessages();
 end;
end;
Сойдет?
Хм, не знаю, сейчас попробую))
bakanaev вне форума Ответить с цитированием
Старый 05.08.2012, 19:16   #8
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Вот хоть убейте, понять не могу, для чего таки извращения автору?
Ну смотри как мне надо

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin 
  for  i := 0 to ListBox1.Items.Count-1 do
begin
                 WebBrowser1.Navigate(URL); 
                 Тут надо дождаться пока страница загрузится полностью, и только потом выводить значение в Label4 
                 Label4.Caption:=IntToStr(i);
                 Application.ProcessMessages();
 end;
end;
bakanaev вне форума Ответить с цитированием
Старый 05.08.2012, 19:20   #9
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Можно узнать?
Для чего вам это нужно?
Я думаю в данном случае правильней будет написать свою процедуру и воспользоваться ею.
А ваши намерения несколько некорректны.
Все может быть, только зачем изобретать велосипед?
bakanaev вне форума Ответить с цитированием
Старый 05.08.2012, 19:29   #10
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Как раз таки ваши намерения на изобретение велосипеда понять не могу.
Вот вам пример:
Код:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
               const pDisp: IDispatch; var URL: OLEvariant);
var
  CurWebrowser : IWebBrowser;
  TopWebBrowser: IWebBrowser;
  Document     : OLEvariant;
  WindowName   : string;
begin { TForm1.WebBrowser1DocumentComplete }
  CurWebrowser := pDisp as IWebBrowser; 
  TopWebBrowser := (Sender as TWebBrowser).DefaultInterface; 
  if CurWebrowser=TopWebBrowser then
  begin
    ShowMessage('Document is complete.') 
  end
  else
  begin
    Document := CurWebrowser.Document; 
    WindowName := Document.ParentWindow.Name; 
    ShowMessage('Frame ' + WindowName + ' is loaded.')
  end;
end;
Не могу понять для чего вручную вызывать эут процедуру, для каких целей то?
Тело процедуры можно легко подогнать под себя

Последний раз редактировалось Базиля; 05.08.2012 в 19:32.
Базиля вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать процедуру из другого Unit pavellyba Общие вопросы Delphi 7 01.05.2011 01:35
Не могу вызвать процедуру С ПАРАМЕТРАМИ из другой книги Danver Microsoft Office Excel 4 24.12.2010 12:34
как повторно вызвать процедуру? iiunbreakableii Общие вопросы Delphi 8 24.06.2010 13:32
как вызвать процедуру? ai\ekcah^p Паскаль, Turbo Pascal, PascalABC.NET 4 25.06.2009 11:21
Как вызвать процедуру ??? Marat Помощь студентам 8 02.03.2007 15:11