Звонок в компьютерную контору:
- У меня с модемом проблемы, компьютер его не видит...
- Как не видит?
- Да пишет все время: "Не могу найти модем... подключите модем".
- А вы модем подключать к компьютеру пробовали?
- Хм... нет... Как-то в голову не приходило.
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
begin
Listbox1.Clear;
//if frames available if Webbrowser1.OleObject.Document.Frames.Length <> 0 thenbegin//walk through all frames and get the url //to the Listbox for i := 0 to Webbrowser1.OleObject.Document.Frames.Length - 1 dobegin
Listbox1.Items.Add(Webbrowser1.OleObject.Document.Frames.item(i).Document.URL);
end;
end;
end;
Программа предназначена для извлечения всех URL-адресов фреймов в компоненте TWebBrowser и отображения их в компоненте Listbox.
Сюда входят шаги:
Событийный обработчик Button2Click вызывается при клике кнопки с именем "Button2".
Процедура очищает любые существующие элементы из списка Listbox, используя Listbox1.Clear.
Затем она проверяет, есть ли какие-либо фреймы в компоненте Webbrowser, используя Webbrowser1.OleObject.Document.Frames.Length. Если нет фреймов, процедура не продолжает выполнение.
Если есть фреймы, она проходит по каждому фрейму с помощью цикла for и извлекает URL каждого фрейма, используя Webbrowser1.OleObject.Document.Frames.Item(i).Document.URL.
Она добавляет каждый извлеченный URL в список Listbox, используя Listbox1.Items.Add.
Альтернативное решение использует более современный подход:
В этом альтернативном решении мы используем метод GetFrames интерфейса IHTMLDocument2, чтобы извлечь коллекцию фреймов, и затем проходим по каждому фрейму с помощью цикла for. Мы извлекаем атрибут src каждого фрейма, используя свойство src интерфейса IHTMLFrameElement, и добавляем его в список Listbox.
Обратите внимание, что в этом решении мы используем оператор as, чтобы преобразовать объект фрейма в тип IHTMLFrameElement. Если объект фрейма не является типа IHTMLFrameElement, оператор as вернет nil. Мы используем функцию Assigned, чтобы проверить, не равно ли значение фрейма nil, перед доступом к его свойствам.
В статье описывается способ получения всех URL-адресов фреймов в TWebBrowser с помощью процедуры TForm1.Button2Click(Sender: TObject) и цикла по перебору всех доступных фреймов.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.