Открыть ссылку все в том же WebBrowser, а не в отдельном окне IE - PascalABC.NET
Формулировка задачи:
Листинг программы
- {$apptype windows}
- {$reference 'System.Windows.Forms.dll'}
- uses
- System,
- System.Windows.Forms,
- System.Net;
- var w := new WebBrowser;
- var bbr := new Form;
- begin
- bbr.WindowState := FormWindowState.Maximized;
- w.Url := new System.Uri('http://www.google.ru/');
- w.Dock := Dockstyle.Fill;
- bbr.Controls.Add(w);
- Application.Run(bbr);
- end.
И еще заголовок не добавляеться
Решение задачи: «Открыть ссылку все в том же WebBrowser, а не в отдельном окне IE»
textual
Листинг программы
- {$apptype windows}
- {$reference 'System.Windows.Forms.dll'}
- uses
- System.Windows.Forms,
- System.Net;
- var
- url: string := '';
- w := new WebBrowser;
- procedure LinkClicked(sender: Object; e: System.EventArgs);
- begin
- var link: HtmlElement := w.Document.ActiveElement;
- url := link.GetAttribute('href');
- end;
- procedure MyDocumentCompleted(sender: object; e: WebBrowserDocumentCompletedEventArgs);
- begin
- var links: HtmlElementCollection := w.Document.Links;
- foreach item: HtmlElement in links do
- item.AttachEventHandler('onclick', LinkClicked);
- end;
- procedure MyNewWindow(sender: Object; e: System.ComponentModel.CancelEventArgs );
- begin
- var wb := sender as WebBrowser;
- wb.Navigate(url);
- e.Cancel := true;
- end;
- begin
- var myForm := new Form;
- w.Url := new System.Uri('http://vk.com');
- w.Dock := Dockstyle.Fill;
- w.NewWindow += MyNewWindow;
- w.DocumentCompleted += MyDocumentCompleted;
- myForm.Controls.Add(w);
- myForm.WindowState := FormWindowState.Maximized;
- Application.Run(myForm);
- end.
Объяснение кода листинга программы
- Объявлены переменные:
- url (строка) - для хранения URL-адреса, который будет получен при клике по ссылке;
- w (объект WebBrowser) - для отображения веб-страниц.
- Определены процедуры:
- LinkClicked (Object sender, System.EventArgs e) - обрабатывает клик по ссылке, сохраняя URL в переменную url;
- MyDocumentCompleted (object sender, WebBrowserDocumentCompletedEventArgs e) - выполняется при завершении загрузки документа в WebBrowser, подключает обработчик событий к каждой ссылке;
- MyNewWindow (Object sender, System.ComponentModel.CancelEventArgs e) - отменяет открытие нового окна браузера и вместо этого навигация осуществляется в том же окне.
- Создано окно приложения (Form) и добавлен в него объект WebBrowser (w).
- Установлены события:
- w.DocumentCompleted - вызывается процедура MyDocumentCompleted;
- w.NewWindow - вызывается процедура MyNewWindow.
- Задано начальное URL-адрес для объекта WebBrowser (w).
- Запущена основная программа, которая включает в себя создание и отображение окна приложения, а также обработку событий.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д