Если ваш браузер запущен, закройте его. Продолжаем писать.
Теперь мы будем печатать страницу(!). Создаем еще меню(мы будем часто это делать) с именем "Печать...". Снова на него кликаем и вписываем, ВНИМАНИЕ, будет добавлены переменные, так что процедура должна выглядеть так:
procedure TMainForm.PrintClick(Sender: TObject);
var
PostData, Headers:OLEvariant;
begin
WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT,PostData, Headers);
end;
Вот, теперь при выборе этого меню будет выдано окно, где можно будет дать страницу на распечатку :). И, как видите, все как у IE.
Еще можно добавить "Поиск"(всмысле в интернете), но тут другая ситуация, тут никаких окон не будет, просто юзверь будет переходить на страницу поиска. Тут можно поизвращаться двумя способами:
Способ намбр один, переходим на поисковую страницу, которая поставлена по умолчанию:
WebBrowser1.GoSearch;
Способ намбр два, здесь вы можете вписать что хотите, хоть вашу хом пэйдж:
WebBrowser1.Navigate('Здесь пишите адрес этой странички');
Все, с поиском разобрались. Чтобы такого еще написать... А как же без отображения свойств страницы?!! Вот теперь мы этим займемся. Для начала создадим меню, что-нибудь вроде "Параметры страницы", теперь кликнув на эту менюшку снова попадаем в Дельфийский редактор(как ни странно) и пишем(писать, писать и еще раз писать... :)):
WebBrowser1.ExecWB(OLECMDID_PROPERTIES,OLECMDEXECOPT_DONTPROMPTUSER);
Как всегда будет выдано окошко, но теперь с информацией о документе.
Помучаем же обработчики событий WebBrowser1. Для этого сперва кликнем на компонент, потом перейдем Object Inspector -> Events. Там для нас раздолье...
Вы не заметили, что в нашей строке состояния не отображается путь, когда проводишь над ссылкой, как у IE? Надо исправить. Два раза кликаем по OnStatusTextChange слева. Переходим в редактор и пишем:
StatusBar1.SimpleText:=Text;
Но сначала надо в свойствах StatusBar1 выставить SimplePanel в True. Все, теперь при проведении над ссылкой в строке состояния будет отображаться путь.
А почему нет индикатора загрузки страницы? Щас исправим. Но надо кинуть в какое-нибудь место на форме TProgressBar со страницы Win32. Снова идем к обработчикам событий WebBrowser1, но теперь вместо OnStatusTextChange выбираем OnProgressChange и пишем:
ProgressBar1.Max:=ProgressMax;// Устанавливаем максимальное значение, равное ProgressMax
ProgressBar1.Position:=Progress;
А почему вместо того чтобы открыть свое окно, браузер открыват IE? Чесно говоря, я и сам так и не смог сделать, чтобы нормально открывалось окно(если кто-нибудь знает как это сделать, то напишите как), но смог добиться не открывания IE. Для этого надо описать обработчик TWebBrowser'a OnNewWindow2 просто напросто написав Cancel:=True, т.е. не открывать окно IE.
Вроде все, точнее есть еще много вещей, которые можно сотворить с TWebBrowser, но о них потом. А так вы можете создать вполне хороший интернет браузер. И еще, можно сделать так, чтобы при каком нибудь переходе на страничку, она не заносилась в History для этого надо WebBrowser1.Navigate('Путь',navNoHistory); Вот теперь все.