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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2018, 08:45   #1
andrejjka
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 13
Лампочка Chromium динамическое создание

Всем здравствуйте.
Проблема в следующем. На форме лежит PageControl. На первой вкладке лежит Chromium1. В основном потоке программы вызываю создание Chromium на второй вкладке, когда срабатывает Beforepopup пытаюсь в него передать ссылку. Процедура создания выполняется, но при передачи ему ссылки программа вылетает, если вторая вкладка при этом не активна (с активной вкладной все работает). В чем проблема?

Код:
  public
    FCurrentURL,temp : ustring;

{$R *.dfm}

var
  PopupChromium:tchromium;

...

procedure TForm1.CreateChromium;
var browser:tchromium;
begin

  Addlog('Form1.CreateChromium - Начинаем создавать браузер');
  browser:=tchromium.Create(self);
  browser.Parent:=Form1.TabSheet4;
  browser.Align:=alclient;
  browser.tag:=10;
  browser.OnClose:=ChromiumClose;
  browser.OnLoadEnd:=ChromiumLoadEnd;
  browser.OnJsdialog:=ChromiumJsdialog;
  PopupChromium:=browser;
  Addlog('Form1.CreateChromium - Браузер создан');

end;


procedure TForm1.CheckNewTask;
begin

      FCurrentURL:='www*';
      form1.CreateChromium;
end;

procedure TForm1.Chromium1BeforePopup(Sender: TObject;
  const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
  targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
  userGesture: Boolean; var popupFeatures: TCefPopupFeatures;
  var windowInfo: TCefWindowInfo; var client: ICefClient;
  var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
  out Result: Boolean);
begin

   result:=true;
    if (sender as tchromium).Name = 'Chromium1' then
      begin
        addlog('Ссылка отправлена в PopupChromium: '+FCurrentURL);

        PopupChromium.Load(FCurrentURL);
      end;
end;
andrejjka вне форума Ответить с цитированием
Старый 17.12.2018, 15:04   #2
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

Простейший вариант, создавать именно при переходе на страницу. Принципиальной разницы тут нет, когда именно создавать. В целом даже лучше. А в целом, ошибку выдает какую то хромиум? В папке с экзешником должен генериться лог файл, можно из него понять что ему не нравится. И ему ли вообще. Мб какая то ваша логика не верно работает. Еще вариант глянуть на версию, мб уже по новее есть и без подобной проблемы.
stalker1995s вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическое создание Stringgrid SPD Общие вопросы Delphi 1 08.02.2012 15:45
Динамическое создание romanzi Общие вопросы Delphi 1 24.08.2011 12:20
Динамическое создание TabSheet Crystallon Общие вопросы Delphi 2 25.05.2011 14:57
динамическое создание компонентов DOLBY Компоненты Delphi 10 17.10.2010 14:03
Динамическое создание TShape tocsik Общие вопросы Delphi 2 09.02.2010 17:20