Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2014, 23:16   #1
Deman75
Пользователь
 
Регистрация: 01.10.2014
Сообщений: 13
По умолчанию TChromium как запретить открытие в новом окне

Доброго времени суток!
Возникла следующая проблема. При открытии pdf файла, он открывается в новом окне. В интернете нашел как ее решить:
Код:
procedure TForm1.TCromium1BeforePopup(Sender: TObject;
  const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
  targetFrameName: ustring; var popupFeatures: TCefPopupFeatures;
  var windowInfo: TCefWindowInfo; var client: ICefClient;
  var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
  out Result: Boolean);
begin
 result:=false;
end;
Этот код прекрасно работает.
Но браузер у меня создается динамически, и я не могу понять как мне этот код использовать.
Может кто уже сталкивался с подобным вопросом?
Deman75 вне форума Ответить с цитированием
Старый 01.10.2014, 23:28   #2
indexx
Заблокирован
 
Регистрация: 12.09.2014
Сообщений: 544
По умолчанию

Код:
Cromium1.OnBeforePopup := TCromium1BeforePopup;
indexx вне форума Ответить с цитированием
Старый 02.10.2014, 00:12   #3
Deman75
Пользователь
 
Регистрация: 01.10.2014
Сообщений: 13
По умолчанию

Спасибо! Я и думал что что-то не так.
Изначально я сделал так
Код:
procedure TForm1.brow1BeforePopup(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; const targetUrl, targetFrameName: ustring;
  var popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
  var client: ICefClient; var settings: TCefBrowserSettings;
  var noJavascriptAccess: Boolean; out Result: Boolean);
var
 n:string;
begin
  n:=rightstr((sender as TChromium).name, length((sender as TChromium).Name)-4);
  (findcomponent('ed'+n) as TEdit).Text:=targeturl;
  result:=false;
  (findcomponent('brow'+n) as TChromium).Load(targeturl);
end;
И в таком виде не заработало. Открывалось в brow1 нормально, а в тех которые создавались динамически, открывалось одновременно и в окне и на странице.
В итоге сделал так
Код:
procedure TForm1.brow1BeforePopup(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; const targetUrl, targetFrameName: ustring;
  var popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
  var client: ICefClient; var settings: TCefBrowserSettings;
  var noJavascriptAccess: Boolean; out Result: Boolean);
var
 n:string;
begin
result:=true;      // чтобы не ссылка не открывалась в новом окне
if (sender as tchromium).Name<>'brow1' then
  begin
    n:=rightstr((sender as TChromium).name, length((sender as TChromium).Name)-4);
    (findcomponent('ed'+n) as TEdit).Text:=targeturl;
    (findcomponent('brow'+n) as TChromium).Load(targeturl)
  end
 else
  begin
   ed1.Text:=targeturl;
   brow1.Load(targeturl);
  end;
end;
И все стало нормально.
Спасибо!
Тему можно закрывать.
Deman75 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие изображения в полном размере в новом окне. HTML messiman HTML и CSS 1 30.03.2014 01:28
Открытие результата в новом окне java-script Bogdan11 Помощь студентам 0 18.03.2013 22:58
Открытие в новом окне Kapitann JavaScript, Ajax 2 07.08.2010 13:43
Открытие ссылки в новом окне vitalik007 HTML и CSS 3 24.10.2007 17:07
Открытие ссылки в новом окне илья too HTML и CSS 1 14.07.2007 13:31