2011-12-27 21 views
3

私はTChromiumを使用します。私はAWebPageAsStringを静的HTMLページに割り当て、背景色はグレーです。TChromiumコンポーネントのデフォルトの背景色を変更するには?

FBrowser := TChromium.Create(pnlHolder); 
FBrowser.Visible := false; 
FBrowser.Parent := TWinControl(pnlHolder); 
FBrowser.Align := alClient; 
FBrowser.OnBeforeBrowse := BrowserBeforeBrowse; 
FBrowser.HandleNeeded; 
FBrowser.FontOptions.RemoteFontsDisabled := true; 
FBrowser.Browser.MainFrame.LoadString(AWebPageAsString, 'navigate:webpage'); 

私はそれが白い背景と、空のコンテンツと最初に表示され、その後、私のページはグレーの背景と実際の内容で表示されますアプリケーションを起動します。

これを回避する方法はありますか?たぶん、デフォルトの背景色がありますか?

+0

ブラウザを非表示にしてページを読み込み、読み込みが完了したときに表示するのはなぜですか? –

+0

おそらく、これがChromeエンジンの機能だからです。 Chromeブラウザをしばらくの間最小化してから復元して別のタブに移動すると、ページが表示される前に完全に白い背景とコンテンツが表示されます。 –

+0

「ブラウザーを非表示にしてページを読み込み、読み込みが完了したときに表示するのはなぜですか?」 - VisibilityプロパティとOnLoadEndで同じ方法を試しましたが、同じ動作です。 –

答えて

2

かなり遅い回答ですが、少なくとも興味深いトピックです。デフォルトブラウザの背景色を変更するには、カスタムスタイルシートを使用できます。それはいいようですが、大きな弱点があります。スタイルシートが定義されていない場合、カスタムスタイルシートが適用されます。しかし、あなたが閲覧することがわかっている場合など特定のスタイルのページのみを使用することもできます。それは、そのデフォルトのカスタムスタイルで定義されたスタイル定義をそのまま残すことができるからです。だから、黒の背景にブラウザを作成する

(下記の様式を使用して)あなたはこのコードを使用することができます:

procedure TForm1.FormCreate(Sender: TObject); 
const 
    CSSHeader = 'data:text/css;charset=utf-8;base64,'; 
    CSSBase64 = 'Ym9keSB7YmFja2dyb3VuZC1jb2xvcjpibGFjazt9'; 
begin 
    Chromium1.UserStyleSheetLocation := CSSHeader + CSSBase64; 
    Chromium1.Options.UserStyleSheetEnabled := True; 
    Chromium1.ReCreateBrowser('about:blank'); 
end; 

上記のコードで使用CSSBase64定数は以下のスタイルシートです:

body {background-color:black;} 
+0

作品は魅力的です。それを実装するのに2年しかかかりませんでした。 :) –

関連する問題