Лабораторная работа 12.Создание браузера
Начиная с пятой версии в Delphi появился компонент WebBrower, который позволяет написать свой собственный браузер. Однако созданный таким образом браузер будет использовать Internet Exlporer, встроенный в Windows, и поэтому будет очень похож на этот браузер. Можно полностью поменять интерфейс, но принцип работы все равно будет, как у Internet Explorer.
Задание 1.
WebBrowser находится на вкладке Internet. Нужно просто перетащить его на форму и увеличить до нужных размеров.
В процедуре активации формы FormActivate напишите следующие строки
WebBrowserl.Offline := True;
WebBrowserl.Navigate('c:\File.htm');
Первая строка переключает браузер в автономный режим. Это делается для того, чтобы браузер не пытался постоянно подсоединиться к Интернету, находясь в неподключенном к Интернету режиме.
Вторая строка открывает в браузере нужный НТМL-документ.
Вместо с: \File.htm, разумеется, нужно написать путь к вашему файлу, который необходимо предварительно создать.
После этого можно запустить проект на выполнение и посмотреть, как НТМL-файл открылся в окне нашей Dеlрhi-программы.
Убедившись, что браузер работает, можно продолжать его разработку.
Задание 2.
Поместите на форму помимо находящегося там WebBrowser текстовую строку Edit и кнопку Buttonl. Размещение этих компонентов особого значения не имеет, ширина и высота всех компонентов при изменении размеров формы будут автоматически пересчитываться.
В дополнение к основным компонентам поместите на форму компонент ToolВaг (вкладки Win32). По умолчанию ToolВaг располагается в верхней части формы. На нем будут находится кнопки управления браузером: Назад, Обновить, Стоп, Домашняя страница, Вперед.
Установите свойство Height компонента ToolВaг равным 52 пикселам. Затем можно добавлять на ToolВaг кнопки, Для этого щелкните правой кнопкой мыши на компоненте ToolBar и выберите в меню строку New Button. Разделитель между кнопками' добавляется, как и кнопки, только нужно выбрать строку New Separator и так, нужно добавить на ToolВaг пять кнопок Удобнее всего добавить сначала одну кнопку. Затем изменить ее размеры (Width, Height), а затем добавить еще четыре кнопки. В таком случае последние четыре кнопки сразу будут нужного размера.
Задание 3.
Для добавления изображений на кнопки создайте компонент ImageList (Win32). Проверьте, чтобы свойство Width компонента ImageList соответствовало свойству ButtonWidth компонента ToolВaг. В свойстве Images панели ToolВaг из раскрывающегося списка выбрать ImageList1, в результате чего на кнопках сразу отобразятся подготовленные изображения.. Для добавления изображений в список откройте редактор ImageList через контекстное меню загрузите изображения из папки BorlandShared, Image, Button. У каждого изображения в списке имеется свой номер, который соответствует номеру кнопки.
Задание 4.
Удалите из FormActivate две строки, написанные в начале данного раздела, и приведите процедуру FormActivate к виду, показанному в следующем листинге.
procedure TForm1.FormActivate(Sender: TObject);
begin
// инициализация
Form1.Caption := 'имя вашего браузера';
Edit1.Text:='http://' ;
Button1.Caption:='открыть' ;Edit1.TabOrder := 0;
Button1.Default := True;
Button1.TabOrder:= 1;
WebBrowser1.TabOrder:= 2;
Edit1. SetFocus;
end;
Задание 5.
Компоненты будут размещаться по местам, а также изменять свои размеры при
изменении размеров окна (формы). Все это зададим при помощи процедуры FormResize.
procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
// меняем расположение компонентов
Edit1.Left := 0;
Edit1.Top := ToolBar1.Height + 2;
Button1.Top := Edit1.Top;
Button1.Left := Form1.ClientWidth - Button1.Width - 2;
WebBrowser1. Left:=0;
WebBrowser1.Top := Edit1.Top + Edit1.Height + 2;
// меняем размеры некоторых компонентов
Edit1.Width := Form1.ClientWidth - Button1.Width - 4; Button1.Height := Edit1.Height;
WebBrowser1.Width := Form1.ClientWidth;
WebBrowser1.Height := Form1.ClientHeight-(Edit1.Top + Edit1.Height + 2);
end;
Все размеры вычисляются относительно размеров окна - Forml.ClientWidth И Forml. ClientHeight.
Задание 6.
Теперь напишем обработчики событий нажатий кнопок, и наш браузер будет готов.
Обработка событий кнопки Buttonl выполняется при помощи процедуры Navigate.
Данная процедура либо загрузит какую-то страницу из Интернета (если указать URL),либо откроет файл с диска (если указать путь).
Кстати, записывать http:// в адресной строке нашего браузера необязательно. Хотя, возможно, это зависит от браузера, используемого в операционной системе. Можно для надежности указывать в FormActivate не Editl. Text : = ", а Editl. Text : = ‘ http: / / ‘
Итак, рассмотрим обработку нажатия кнопки, при помощи которой загружается страница.
procedure Тform1.Button1CI ick(Sender: TObject);
begin
WebBrowser1.Navigate(Edit1.Text);
Edit1.SetFocus;
end;
Процедура Navigate позволяет браузеру загружать страницу из Интернета или с диска, а SetFocиs переводит фокус клавиатуры назад в адресную строку.
Задание 7.
Далее описываем обработку нажатий кнопок на панели ToolВaг.
Для обработки каждой кнопки достаточно одной строки кода, то есть соответствующей команды браузера.
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
WebBrowser1.GoBack; // назад
end;
procedure TForm1.ToolButton3Click(Sender: TObject);
begin
WebBrowser1. Stop; // остановить загрузку
end;
procedure TForm1.ToolButton5Click(Sender: TObject);
begin
WebBrowser1.Refresh; // обновить
end;
procedure TForm1.ToolButton7Click(Sender: TObject);
begin
WebBrowser1.GoHome; // на домашнюю страницу
end;
procedure TForm1.ToolButton9Click(Sender: TObject);
begin
WebBrowser1.GoForward; // вперед
end;
Задание 8.
Если запустить такую программу, то получится работающий браузер. Произведем koe-кaкие улучшения. Например, неудобно открывать НТМL-документ с диска если в документе встречаются какие-либо ссылки (например, рекламные баннеры), то браузер сразу же пытается соединиться с Интернетом, выводя окна подключения и разные предупреждения.
Если нажать кнопку Назад, когда на предыдущую страницу нельзя попасть, то появляется сообщение об ошибке. Попробуем исправить эти недочеты.
procedure TForm1.ToolButton1CI ick(Sender: TObject); begin
try
WebBrowser1.GoBack; // назад
except
ShowMessage (Невозможно открыть страницу! );
end; // tгу
end;
В данном листинге сначала пробуем (при помощи try) дать браузеру команду возвратиться на страницу назад - GoBack. Если не получается, то сообщение об ошибке не появляется, а выполняется код, следующий за ключевым словом except, который выводит на экран строку: «Невозможно открыть страницу!» Можно вообще не выводить сообщение, а поступить как-нибудь по-другому.
Задание 9.
Автоматически переключать браузер в автономный режим, если открывается файл с диска, можно следующим способом. Если открывается локальный файл, то в адресной строке будет написано, например, с: \File. htm или а:\Docs\Otchet.html, то есть при открытии в браузере НТМ~-файла с диска в пути указано имя этого диска, затем двоеточие.
Именно двоеточие в качестве второго символа в адресной строке и будем искать. Если оно есть, то включаем автономный режим, если двоеточия нет - выключаем. Перед этим обязательно нужно проверять, имеет ли адресная строка хотя бы два символа, иначе при попытке обратиться к несуществующему второму символу возникнет ошибка.
procedure TForm1.Button1Click(Sender: TObject);
begin
// проверка откуда загружается файл
if length(Edit1.Text)>1 then
begin
if Edit1.Text[2]='' then WebBrowser1.Offline:= True
else WebBrowser1.Offline := False;
end;
// загрузка документа
WebBrowser1.Navigate(Edit1.Text);
Edit1. SetFocus;
end;
Теперь, если попробовать открывать документы с диска и из Интернета, то браузер включает и выключает автономный режим.
- 1. Теоретические основы объектно – ориентированного программирования 5
- 2. Использование системы программирования Delphi для создания Windows-приложений 9
- 3. Лабораторный практикум 27
- Введение
- 1. Теоретические основы объектно – ориентированного программирования
- 1.1.Объектная модель и ее элементы.
- 1.2.Основные понятия объектно-ориентированного подхода - объект и класс.
- 1.3.Методы построения классов.
- 2. Использование системы программирования Delphi для создания Windows-приложений
- 2.1. Интерфейс интегрированной среды разработки Delphi
- 2.2. Синтаксические правила языка Object Pascal
- 2.3. Создание и структура пользовательских приложений в среде Delphi
- 2.4. Структура модуля (*.Pas)
- 2.5. Создание формы и написание откликов на события
- 1) Компоновка формы и задание свойств компонентов
- 2) Написание отклика на событие
- 2.6. Компиляция и исполнение программы
- 2.7. Ввод и вывод данных. Функции преобразования типов данных
- 3. Лабораторный практикум Лабораторная работа 1. Разработка приложения Калькулятор
- Лабораторная работа 2. Использование курсоров в приложениях Windows.
- Лабораторная работа 4. Создание простого текстового редактора.
- Лабораторная работа 5. Рисование мышью в форме
- Лабораторная работа 6. Применение графических компонентов
- Лабораторная работа 7.Создание числовых изображений
- Лабораторная работа 8. Создание текстурных заливок
- Лабораторная работа 9. Поддержка справочной системы. Создание всплывающих подсказок.
- Лабораторная работа 10.Создание видеопроигрывателя
- Лабораторная работа 12.Создание браузера
- Лабораторная работа 13. Работа с внешним файлом.
- Лабораторная работа 14. Работа с базами данных.
- Лабораторная работа 15. Создание многооконных приложений.
- Литература Основная литература
- Дополнительная литература