2016-05-17 120 views
0

我正在使用TChromium導航到頁面。它具有Options.ImageLoading屬性,您可以在其中指定是否要顯示網站的圖像。Delphi TChromium:如何在顯示和隱藏圖像之間切換Options.ImageLoading

問題是否只有在設計時設置了選項纔有效。如果我在運行時更改此屬性,它不起作用。這是一個示例代碼;在這個例子中,我想實現的是打開test1.com顯示圖像並打開test2.com隱藏圖像。不幸的是,這兩個網站都加載了圖片,忽略了我設置的選項。

任何想法如何解決這個問題?我想只能爲某些網站顯示圖片。

procedure tform1.button1click(Sender : TObject); 
begin 
chromium1.options.ImageLoading = STATE_ENABLED; 
chromium1.load('www.test1.com'); 
end; 

procedure tform1.button2click(Sender: TObject); 
begin 
chromium1.options.ImageLoading = STATE_DISABLED; 
chromium1.load('www.test2.com'); 
end; 
+1

CEF的瀏覽器設置不能動態更改。瀏覽器/控件的重新創建應該有所幫助。 – fddima

+0

@fddima這是壞消息:(當我使用TWebbrowser時,我可以動態地... – delphirules

+0

我不知道TWebBrowser是什麼,因爲你無論如何重新加載頁面 - 重新創建瀏覽器是最簡單的方式沒有任何缺點。動態地,你甚至可以通過正確的等待和顯示/隱藏窗口來避免閃爍,所以不是一個壞消息 – fddima

回答

1

試試這個:

  • 創建TChromium的兩個實例,一個與options.ImageLoading := STATE_ENABLED和其他與options.ImageLoading := STATE_DISABLED

  • 然後,當你想要一個頁面加載,使第一一個可見,另一個不可見,反之亦然。

很明顯,有可能是有點超過,這樣做,但至少它會避免你想改變每次重新瀏覽器。

+0

感謝您的建議。雖然它不能真正解決我的問題,但這是一種解決方法。 – delphirules

1

因爲@delphirules居然問遞延圖片加載,而旁邊的答案是偉大的(並且適用於任何基於鉻的解決方案)我是重新發布part of this answer這裏:

可以加載一個網頁與webkit.webprefs.loads_images_automatically首選項設置爲false,然後將其更改爲true,圖像將加載(加載後無法卸載圖像)。

感謝用戶amaitland的優秀髮現。 :)

+0

謝謝,這是個好消息。我只是不知道如何在我使用的組件中設置它,這是一個Delphi綁定... – delphirules