2016-05-17 5 views
0

Я использую TChromium для перехода на страницы. Он имеет свойство Options.ImageLoading, где вы можете указать, хотите ли вы показывать изображения сайта или нет.Delphi TChromium: как переключаться между шоу и скрывать изображения с помощью Options.ImageLoading

Проблема в том, что он работает только с опцией, установленной во время разработки. Если я изменяю это свойство во время выполнения, это не влияет. Вот пример кода; что я хотел достичь в этом примере, было открыто test1.com, показывающее изображения и открытые test2.com, скрывающие изображения. К сожалению, оба сайта загружены изображениями, игнорируя параметр i.

Любые идеи, как исправить это? Я хочу, чтобы показывать изображения только для определенных сайтов.

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 фактически спрашивают о deffered загрузки изображений, и следующий ответ наибольшее (и применим к любой основе хрома раствора) я снова пост part of this answer здесь:

Вы можете загрузить веб-страницу с webkit.webprefs.loads_images_automatically Предпочтение установлено на false, а затем измените его на true и изображения загрузятся (вы не можете выгружать изображения после их загрузки).

Благодаря пользователю amaitland для отличных результатов. :)

+0

Спасибо, это отличная новость. Я просто не знаю, как установить его в компоненте, который я использую, это привязка Delphi ... – delphirules