Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 TWebBrowser FMX и VCL, дублирование событий  [new]
spider13
Member

Откуда: http://spider13.net
Сообщений: 934
Код простой

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('test.net');
end;

procedure TForm1.WebBrowser1DidFinishLoad(ASender: TObject);
begin
  Memo1.Lines.Add(WebBrowser1.URL)
end;


В VCL он работает отлично(вместо DidFinishLoad используется событие NavigateComplete2), а вот в FMX происходит 3х разовое выполнение события DidFinishLoad. И события DidStartLoad тоже.

В чем проблема? Кто-то может подсказать?
28 сен 17, 11:37    [20828649]     Ответить | Цитировать Сообщить модератору
 Re: TWebBrowser FMX и VCL, дублирование событий  [new]
krapotkin
Member

Откуда: Екатеринбург
Сообщений: 542
может, там редирект
28 сен 17, 12:05    [20828742]     Ответить | Цитировать Сообщить модератору
 Re: TWebBrowser FMX и VCL, дублирование событий  [new]
spider13
Member

Откуда: http://spider13.net
Сообщений: 934
Никаких редайректов и прочего там нет. Пробовал на нескольких url
28 сен 17, 18:20    [20829932]     Ответить | Цитировать Сообщить модератору
 Re: TWebBrowser FMX и VCL, дублирование событий  [new]
stanilar
Member

Откуда: Спб
Сообщений: 558
Думаю что это зависит от реализации броузера. Например осел генерит аналог события OnLoadComplete для каждого фрейма на странице, что логично. И чтоб знать, какой фрейм закончил загрузку, нужно поймать первый фрейм, записать адреса вложенных в него фреймов, а потом сравнить сохраненные адреса с параметром "ASender". Как то так, а может чуть иначе, но не сильно иначе.
29 сен 17, 01:19    [20830603]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить