gpt4 book ai didi

delphi - TEmbeddedWB 和背景颜色

转载 作者:行者123 更新时间:2023-12-03 15:40:09 27 4
gpt4 key购买 nike

如何更改 TEmbeddedWB 的默认背景颜色 (clWhite)组件同时不显示任何页面?

enter image description here

最佳答案

这可以通过在创建表单时加载默认页面来完成(快速方法):

function ColorToHTML(const Color: TColor): string;
var
ColorRGB: Integer;
begin
ColorRGB := ColorToRGB(Color);
Result := Format('#%0.2X%0.2X%0.2X',
[GetRValue(ColorRGB), GetGValue(ColorRGB), GetBValue(ColorRGB)]);
end;

WebBrowser1.Navigate(Format('about:<body bgcolor="%s" style="overflow:hidden"/>', [ColorToHTML(clRed)]));

或更常见的方式(TWebBrowser/TEmbeddedWB):

uses ActiveX, MSHTML;
procedure LoadDocFromString(ABrowser: TWebBrowser; const HTMLString: WideString);
var
v: OleVariant;
HTMLDocument: IHTMLDocument2;
begin
if not Assigned(ABrowser.Document) then
begin
ABrowser.Navigate('about:blank');
while ABrowser.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
end;
HTMLDocument := ABrowser.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := HTMLString;
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
end;

LoadDocFromString(WebBrowser1, Format('<body style="background-color:%s; scrollbar-base-color:%s;"/>',
[ColorToHTML(clGray), ColorToHTML(clBlack)]));

TEmbeddedWB 具体:

EmbeddedWB1.LoadFromString(Format('<body style="background-color:%s; scrollbar-base-color:%s;"/>',
[ColorToHTML(clGray), ColorToHTML(clBlack)]));
<小时/>

编辑:看看本教程:How to customise the TWebBrowser user interface .
这解释了如何使用 IOleClientSiteIDocHostUIHandler 自定义 WB,它们还为浏览器对象本身提供默认 CSS。

我们可以动态创建一个了解表单颜色和字体的样式表,并告诉浏览器使用它(查看第 5 部分(共 6 部分)的结果)。

由于TEmbeddedWB实现了IDocHostUIHandler,您可以使用它的HostCSS属性(不过您仍然需要加载一个空白文档):

procedure TForm1.Button1Click(Sender: TObject);
const
// Template for default CSS style
cCSSTplt = 'body {background-color: %0:s}';
var
FmtCSS: string; // Stores default CSS
begin
FmtCSS := Format(cCSSTplt, [ColorToHTML(clYellow)]);
EmbeddedWB1.HostCSS := FmtCSS;
EmbeddedWB1.AssignEmptyDocument;
end;

请注意,将 HostCSS 属性与 CSS 样式模板一起使用也会将该模板用于没有 CSS 样式的页面。

关于delphi - TEmbeddedWB 和背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com