Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка лаб по ООП с ИИТ.doc
Скачиваний:
17
Добавлен:
23.08.2019
Размер:
919.04 Кб
Скачать

Лабораторная работа 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;

Теперь, если попробовать открывать документы с диска и из Интернета, то брау­зер включает и выключает автономный режим.