Приходит 3d художник на собеседование в компанию по созданию компьютерных игр Шеф - за неделю нарисуйте какого нибудь монстра для нашей игры... Чисто на пробу, посмотреть на что вы способны.
- Не могли бы вы повернуться, чтобы я увидел вас со всех сторон, пожалуйста?
Следующий пример устанавливает borderStyle:
uses mshtml;
procedure TForm1.WBDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
Doc : IHTMLDocument2;
Element : IHTMLElement;
begin
Doc := IHTMLDocument2(TWebBrowser(Sender).Document);
if Doc = nilthen
Exit;
Element := Doc.body;
if Element = nilthen
Exit;
case Make_Flat ofTRUE : Element.style.borderStyle := 'none';
FALSE : Element.style.borderStyle := '';
end;
end;
Задача - сделать WebBrowser-контроль плоским вместо 3D-рендеринга.
Программный код использует библиотеку mshtml и устанавливает стиль границы HTML-элемента в either 'none' (плоский) или пустую строку ('') в зависимости от логического переменной Make_Flat.
Код выполняет следующие действия:
Он получает событие WBDocumentComplete, когда WebBrowser-контроль завершает загрузку документа.
Он кастит объект TWebBrowser в интерфейс IHTMLDocument2 и присваивает его переменной Doc.
Если Doc не равен null, он получает элемент <body> HTML-документа с помощью свойства Doc.body и присваивает его переменной Element.
Если Element не равен null, он устанавливает стиль границы элемента с помощью свойства style.borderStyle.
Логическая переменная Make_Flat determines, whether the border should be set to 'none' (flat) or an empty string (''). If Make_Flat is TRUE, the border will be set to 'none', effectively making it flat. If Make_Flat is FALSE, the border will remain as set by the HTML document.
Чтобы сделать WebBrowser-контроль плоским, вы можете установить Make_Flat в TRUE в вашем коде. Это должно удалить любые эффекты 3D-рендеринга и сделать браузер выглядеть как простой окно с границей.
Альтернативное решение:
Вместо программного установки стиля границы с помощью кода выше, вы можете использовать CSS для достижения этого эффекта. Вы можете добавить блок <style> в ваш HTML-документ, который устанавливает свойство border в 'none'. Например:
<style>body{border:none;}</style>
Это установит границу всего HTML-документа в 'none', эффективно сделав его плоским. Вы можете добавить этот код в раздел <head> вашего HTML-документа или в внешний файл CSS, связанный с вашей страницей.
Надеюсь, это поможет!
В статье рассматривается способ изменения внешнего вида WebBrowser, преобразовав его из трёхмерной формы в плоскую, с помощью изменения стиля границы элемента BODY документа.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.