---- Возможно, вы еще помните пример браузера в примере программы Delphi. В этом примере браузер был создан с использованием свойств и методов элемента управления THttp. Этот пример действительно хорош для понимания того, как использовать элемент управления THttp. Но мало кто будет использовать его как настоящий браузер. Причина очень проста: функции слишком ограничены, он не поддерживает Frame, не поддерживает язык сценариев Script, не может просматривать HTML-файлы как локальные файлы и т. д. Большинство пользователей используют IE или Navigator; мы, программисты, также рады использовать готовые браузеры. Когда нам нужно использовать браузер, мы вызываем внешний браузер в программе с помощью таких методов, как WinExec или CreatePROcess, чтобы пользователи могли его использовать. Этот метод действительно очень безопасен, но он всегда вызывает у меня нежелание передавать управление программой другим внешним программам. Это всегда доставляет мне много хлопот, особенно когда уровень использования компьютера пользователем прикладного программного обеспечения не очень высок. высокий. Было бы здорово, если бы существовал элемент управления браузером, позволяющий встроить браузер в вашу собственную программу.
---- Если внешняя среда вашего программного обеспечения - WIN95+IE или WIN98 (уровень использования такого программного обеспечения все еще очень высок), то в системе уже есть управление браузером IE, которое можно использовать. Возможно, вы уже давно. Вы не заметили время, не тратьте ресурсы, используйте их. При использовании IE 3.X или IE 4. вы обнаружите, что элемент управления IE зарегистрирован в системе как элемент управления ActiveX, поэтому мы можем использовать этот элемент управления в Delphi.
---- Поскольку элемент управления браузера IE должен предоставить функцию отображения, прежде чем его можно будет использовать, вы не можете использовать CreateOleObject для получения экземпляра в программе и напрямую использовать его свойства и методы, иначе программа вызовет ошибку при запуске; в этом случае вам необходимо использовать функции, предусмотренные в функции Delphi «Импорт элементов управления ActiveX», метод работы описан ниже.
---- В меню «Компоненты» вызовите функцию «Импортировать элементы управления ActiveX», выберите «Microsoft Internet Controls (Version1.1)» в списке «Зарегистрированные элементы управления», а в строке подсказки ниже будет показан путь C:PWin98SystemSHDOCVW. .DLL, три элемента управления, которые можно зарегистрировать, перечислены в именах классов (список типов): TWebBrowser_V1, TWebBrowser и TShellFolderViewOC — это элементы управления браузером IE3, элементы управления браузером IE4 и элемент управления «Microsoft Shell Folder View Router» соответственно. Нажмите «Установить», чтобы установить. После завершения установки в панель управления «ActiveX» будут добавлены три элемента управления, а именно TWebBrowser_V1, TWebBrowser и TShellFolderViewOC; в каталоге Imports Delphi будет создан файл SHDocVw_TLB.PAS, содержащий сведения об упаковке этих трех элементов управления. , конечно же, содержит описания свойств и методов элемента управления, которые можно использовать в качестве справочника по использованию элемента управления.
----
В качестве примера возьмем TWebBrowser (элемент управления браузером IE4). Общие свойства и методы TWebBrowser в основном включают в себя: GoBack: метод возврата на предыдущую страницу. GoForward: метод перехода на следующую страницу. GoHome: метод вызывает домашнюю страницу по умолчанию, заданную в параметрах IE. GoSearch: метод вызывает страницу поиска по умолчанию, которая задана в параметрах IE. Navigate(const URL: WideString; var Flags, TargetFrameName, PostData, Headers: OleVariant): метод, вызывает указанную страницу, конкретные параметры следующие: URL: URL-адрес указанной страницы. Флаги: Тип слова, функция пока не ясна, можно установить в 0. TargetFrameName: WideString, открыть фрейм, в котором находится страница. Если это пустая строка, она будет открыта в текущем фрейме; если фрейм, указанный TargetFrameName, существует, он будет открыт в фрейме, указанном параметром; TargetFrameName не существует, откроется новое окно. Это эквивалентно вызову внешнего браузера IE. PostData: логическое значение, разрешать ли отправку данных. Заголовки: WideString, данные заголовка отправляемого URL-запроса. Обновить: метод, обновляет текущую страницу. Стоп: метод остановки вызова или открытия текущей страницы. LocationName: свойство (WideString), имя текущего местоположения. LocationURL: свойство (WideString), URL-адрес текущего местоположения. Занят: Атрибут (логический), указывает, занят ли он. Visible: свойство (логическое значение), определяет, отображается ли окно браузера. (Следующие свойства являются новыми в TWebBrowser и недоступны в TWebBrowser_V1, их функции необходимо изучить) StatusBar: Свойство (логическое значение), отображать ли строку состояния. StatusText: свойство (WideString), содержимое строки состояния. ToolBar: свойство (SYSINT), содержимое панели инструментов. MenuBar: Свойство (логическое значение), отображать ли строку меню. FullScreen: свойство (логическое значение), отображать ли изображение в полноэкранном режиме. Offline: свойство (логическое), следует ли просматривать в автономном режиме. AddressBar: Свойство (логическое значение), отображать ли адресную строку. Общие события TWebBrowser в основном включают: OnStatusTextChange = процедура (Sender: TObject; const Text: WideString) объекта;
---- Происходит при изменении информации в строке состояния. Параметр Text — это текущая информация в строке состояния. Мы можем обновлять собственную информацию в строке состояния или обрабатывать другие транзакции на основе этой информации.
----OnProgressChange = процедура (Отправитель: TObject; Прогресс, ProgressMax: Integer) объекта;
---- Происходит при изменении хода выполнения открытой страницы. Параметр Progress — это текущий прогресс, а ProgressMax — общий прогресс. Мы можем обновлять собственную информацию в строке состояния или обрабатывать другие транзакции на основе этих двух параметров.
----OnCommandStateChange = процедура (Отправитель: TObject; Команда: Целое число; Включить: WordBool) объекта;
---- Происходит при выполнении новой команды. Команда — это идентификатор команды, а Включить — разрешено ли выполнение команды. OnTitleChange = процедура (Отправитель: TObject; const Text: WideString) объекта;
---- Происходит при изменении заголовка страницы. Текст – это текущий заголовок.
----OnPropertyChange = процедура (Отправитель: TObject; const Property_: WideString) объекта;
---- Происходит при изменении свойств страницы, Property_ — это имя свойства OnDownloadComplete: TNotifyEvent
---- Происходит после завершения страницы загрузки.
----OnDownloadBegin: TNotifyEvent
---- Происходит перед запуском страницы загрузки.
---- (1) Создайте свою собственную справочную систему.
---- Мы используем элемент управления браузера IE для создания справочной системы для пользователей. Файл справки состоит из нескольких файлов HTML. Одна тема соответствует одному файлу HTML (Topic.HTM), а элементы каждой темы соответствуют файлу. HTML-файлы. Тег (#Item). Таким образом, в нашей системе нам больше не нужно вызывать браузер IE или программу WinHelp для оказания помощи пользователям. Я думаю, вы все знаете преимущества файлов справки HTML по сравнению с традиционными файлами справки HLP.
---- В следующем примере демонстрируется использование метода Navigate TWebBrowser (элемент управления браузером IE4). Пожалуйста, обратите внимание на комментарии в программе. (Ниже приведен основной фрагмент программы).
{Вызов файла справки по теме и проекту}procedure ShowHelp(HelpTopic,HelpItem: String);var TargetFrameName,PostData,Heads,Flags:OleVariant;URL:widestring;begin TargetFrameName:= ';{При указании пустой строки Кадр, затем откройте файл справки в текущем кадре} PostData := false;{Не отправлять данные} Заголовки := ';{Информация заголовка пуста} Флаги := 0;{Флаги установлены в 0} URL := HelpTopic + '.HTM#'+HelpItem;{URL справочной информации} с formHelp.webbrowser do{Отобразить справочную информацию в элементе управления браузером IE в окне справки} начать навигацию( URL,Flags,TargetFrameName,PostData,Heads);{Показать справочную информацию} end;end;
---- (2) Отобразить GIF-анимацию
---- Если у вас нет подходящего элемента управления отображением анимации, попробуйте следующий метод.
процедура ShowGIF( GIFFileName : String );var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : Widestring;begin TargetFrameName := ';{При указании пустой строки Frame файл анимации будет открыт в текущем кадре} PostData := false;{Не отправлять данные} Заголовки := ';{Информация о заголовке пуста} Флаги := 0;{Флаги установлены в 0} URL := GIFFileName; formGIF.webbrowser do{Отобразить анимацию в элементе управления браузером IE в указанном окне} Begin Navigation(URL,Flags,TargetFrameName,PostData,Heads);{Отобразить файл анимации} end;end;
----Вышеуказанная программа была отлажена под PWIN98+Delphi3.0.