powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TChromium не реагирует
19 сообщений из 19, страница 1 из 1
TChromium не реагирует
    #40007527
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, помогите пожалуйста разобраться!
Скачал с гитхаба https://github.com/salvadordf/CEF4Delphi
так же скачал по той же ссылке, чуть ниже, бинарные файлы 32 bits
указал пути в Libararyи установил, создаю новый проект, кидаю на форму ChromiumWindow1, и кнопку.
Далее View Source, добавил туда код, как указано тут https://www.briskbard.com/index.php?lang=en&pageid=cef
В кнопке код
Код: pascal
1.
ChromiumWindow1.LoadURL('https://google.ru');





и 0 реакции..

Вроде все нужные файлы добавил, вот скрин




Delphi 10.3.3 Rio, win7 64

Помогите пж, очень надо
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007528
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
реакции 0 - в смысле, всё компилится, но страница не загружается.
Даже сообщения типа error 404 и тд нету..
пишу вам с температурой 37.5 )))
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007679
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne
реакции 0 - в смысле, всё компилится, но страница не загружается.
Даже сообщения типа error 404 и тд нету..
пишу вам с температурой 37.5 )))

Используй Chrome DevTools, чтобы понять, что там у тебя не загружается
https://developers.google.com/web/tools/chrome-devtools
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007737
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
много раз уже писалось
SimpleBrowser.dpr
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
program SimpleBrowser;

uses
  {$IFDEF DELPHI16_UP}
  Vcl.Forms,
  {$ELSE}
  Forms,
  Windows,
  {$ENDIF }
  System.SysUtils,
  uMain in 'uMain.pas' {Main},
  uFunc in 'Units\uFunc.pas',
  uCEFApplication,
  Vcl.Themes,
  Vcl.Styles;

{$R *.res}
{$SETPEFLAGS IMAGE_FILE_LARGE_ADDRESS_AWARE}

var
  exec: string;

begin
  exec := ExtractFilePath(Application.ExeName);

  GlobalCEFApp := TCefApplication.Create;

  GlobalCEFApp.FrameworkDirPath := exec + 'lib';
  GlobalCEFApp.ResourcesDirPath := exec + 'lib';
  GlobalCEFApp.LocalesDirPath := exec + 'lib\locales';
  GlobalCEFApp.cache := exec + 'lib\cache';
  GlobalCEFApp.UserDataPath := exec + 'lib\UserData';

  GlobalCEFApp.EnableGPU := True;

  if GlobalCEFApp.StartMainProcess then
  begin
    Application.Initialize;
    {$IFDEF DELPHI11_UP}
    Application.MainFormOnTaskbar := True;
    {$ENDIF}
    Application.CreateForm(TMain, Main);
  Application.Run;
  end;

  GlobalCEFApp.Free;
  GlobalCEFApp := nil;

end.
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007752
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучай прилагающиеся примеры.
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007804
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я запускаю демку, SimpleBrowser.
требуемые файлы закидываю в папки, пути к этим папкам прописываю в View Source.
Больше ничего не меняю, запускаю демку, она компилится, и при попытки открыть любую страничку - ничего не происходит. как будто браузера и нет.

Вот скрин))
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007822
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а где закрывающий слеш?
https://google.ru/

и про ДЛЛ секретные и прочие файлы из комплекта не забудь
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007827
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair
а где закрывающий слеш?
https://google.ru/

и про ДЛЛ секретные и прочие файлы из комплекта не забудь

Бро, любого рода страница не открывается, при попытки открыть страничку, около курсора появляется значек загрузки, через секунду исчезает - кроме этого больше ничего не происходит.
Я пробовал и www. и без www, и http и S и тд.

Насчет файлов, вроде всё в папке с проектом Simple Browser.


View Source:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
program SimpleBrowser;

{$I cef.inc}

uses
  {$IFDEF DELPHI16_UP}
  Vcl.Forms, WinApi.Windows,
  {$ELSE}
  Forms, Windows,
  {$ENDIF}
  uCEFApplication,
  uSimpleBrowser in 'uSimpleBrowser.pas' {Form1};

{$R *.res}

// CEF3 needs to set the LARGEADDRESSAWARE flag which allows 32-bit processes to use up to 3GB of RAM.
// If you don't add this flag the rederer process will crash when you try to load large images.
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}

begin
  GlobalCEFApp := TCefApplication.Create;

  // In case you want to use custom directories for the CEF3 binaries, cache and user data.
  // If you don't set a cache directory the browser will use in-memory cache.

  GlobalCEFApp.FrameworkDirPath     := 'C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\';
  GlobalCEFApp.ResourcesDirPath     := 'C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\';
  GlobalCEFApp.LocalesDirPath       := 'C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\locales';
  GlobalCEFApp.EnableGPU            := True;      // Enable hardware acceleration
  GlobalCEFApp.cache                := 'C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\cache';
  GlobalCEFApp.UserDataPath         := 'C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\User Data';


  // You *MUST* call GlobalCEFApp.StartMainProcess in a if..then clause
  // with the Application initialization inside the begin..end.
  // Read this https://www.briskbard.com/index.php?lang=en&pageid=cef
  if GlobalCEFApp.StartMainProcess then
    begin
      Application.Initialize;
      {$IFDEF DELPHI11_UP}
      Application.MainFormOnTaskbar := True;
      {$ENDIF}
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end;

  GlobalCEFApp.Free;
  GlobalCEFApp := nil;
end.


По логике, если бы чего-то не хватало - дельфя дала бы знать) Но явно же чего-то не хватает..
всё компилится но не работает..
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007856
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я связался с этим хромом только потому что не могу с twebbrowser`ом дождаться полной загрузки страницы (любого сайта),
Конечная цель, имея любой url, получить скриншот страницы.
Но twebbrowser не ждет полной загрузки. ReadyState становится READYSTATE_COMPLETE до полной загрузки.
DocumentComplete тоже не спасает.

Может всё таки есть способ добиться желаемого с twebbrowser?

Так же были мысли юзать сервисы с апи, я ему запрос с ссылкой - он мне ответ со скриншотом.
Пока тестировал - получил бан) за частоту обращений.

Блин, цель простая, а столько мороки...
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007877
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tech N9ne,

да мороки с веббраузер и с хромом полно
но у меня все работает, в тех рамкам что мне нужно
вот усеченная версия (удалил все файлы из состава хрома чтоб влезло)
обрати внимание на состав хрома и его события
версия CEF4Delphi_2019(Chromium 79)
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007905
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne
Я связался с этим хромом только потому что не могу с twebbrowser`ом дождаться полной загрузки страницы (любого сайта),
Конечная цель, имея любой url, получить скриншот страницы.
Но twebbrowser не ждет полной загрузки. ReadyState становится READYSTATE_COMPLETE до полной загрузки.
DocumentComplete тоже не спасает.

Может всё таки есть способ добиться желаемого с twebbrowser?

Так же были мысли юзать сервисы с апи, я ему запрос с ссылкой - он мне ответ со скриншотом.
Пока тестировал - получил бан) за частоту обращений.

Блин, цель простая, а столько мороки...


а конечная цель?
ну будет у тебя скриншот страницы на 5 экранов, дальше что?
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007908
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012,
Какие экраны?)
Если ты имеешь в виду скриншот страниы с верху и до самого низа, это не то.
Просто обычный скриншот того, что отображается в браузере, после окончания загрузки страницы.

Я делаю для себя программу, удобный для меня хранитель ссылок...
Нечто на подобии старой экспресс панели в опера, со скриншотами страниц.
Пока это выглядит так:

Сейчас там только названия сайтов и описания. Но хотелось бы сделать так, как было задумано изначально, с миниатюрными скриншотами сайтов.

В общем вот...
А так спасибо всем, особенно Pcrepair, его демка рабочая, от нее и буду плясать.
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40007966
KinsT_UA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так-с, давайте разбираться по порядку:

1. Проверить файл проекта, как писал Pcrepair:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
program viva_loans;

{$I cef.inc}

uses
  Forms,
  Controls,
  Dialogs,
  Windows,
  SysUtils,
  uCEFApplication,
...
begin

  GlobalCEFApp := TCefApplication.Create;

  GlobalCEFApp.FrameworkDirPath  := 'cef4';
  GlobalCEFApp.ResourcesDirPath  := 'cef4';
  GlobalCEFApp.LocalesDirPath    := 'cef4\locales';
  GlobalCEFApp.EnableGPU         := True;
  //GlobalCEFApp.DisableGPUCache      := True;
  //GlobalCEFApp.cache                := 'cef3\cache';
  //GlobalCEFApp.cookies              := 'cef3\cookies';
  //GlobalCEFApp.UserDataPath         := 'cef3\User Data';
  try
    if not GlobalCEFApp.StartMainProcess
    then Exit;

    Application.Initialize;
    Application.MainFormOnTaskbar := True;

    // 1. Первым создаём дата модуль; 
    // Это мой частный случай, тебе не обязательно так делать;
    Application.CreateForm(TdmMain, dmMain);

    // 2. Cоздаем главную форму приложения;
    Application.CreateForm(TMainForm, MainForm);

    // 3. Запуск приложения;
    Application.Run;
  finally
    GlobalCEFApp.Free;
  end;
end.


2. Проверить либы рядом с проектом:
Обрати внимание, что у меня все либы лежат в папке cef4, а не рядом с ЕХЕ!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
cef4\cef.pak
cef4\cef_100_percent.pak
cef4\cef_200_percent.pak
cef4\cef_extensions.pak
cef4\cef_sandbox.lib
cef4\chrome_elf.dll
cef4\d3dcompiler_47.dll
cef4\devtools_resources.pak
cef4\icudtl.dat
cef4\libcef.dll
cef4\libcef.lib
cef4\libEGL.dll
cef4\libGLESv2.dll
cef4\natives_blob.bin
cef4\snapshot_blob.bin
cef4\v8_context_snapshot.bin

Каталоги:
cef4\locales\ и все файлы в нём...
cef4\swiftshader\libEGL.dll
cef4\swiftshader\libGLESv2.dll

3. Попробовать связку двух компонетов: TCEFWindowParent и TChromium
Бросаем их на форму и настраиваем ряд дополнительных свойств (напр. AfterCreated):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
unit uFrameUniCEF3;

{$I cef.inc}

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls
  , uCEFWindowParent, uCEFChromium, uCEFInterfaces, uCEFConstants
  , uCEFApplication, uCEFTypes, uCEFCookieManager, uCEFWinControl;

  type
  TFrameCEF3 = class(TFrame)
    ChromiumPage: TCEFWindowParent;
    Chromium: TChromium;
    tmrLoadURL: TTimer;
    procedure ChromiumAfterCreated(Sender: TObject; const browser: ICefBrowser);
  private
    FUrl : string;
    IsChromCreated : Boolean;
  public
    procedure LoadURL(AUrl : string);
  published
    {$METHODINFO ON}
    procedure Init(Sender:TObject);overload;
    {$METHODINFO OFF}
  end;

implementation

procedure TFrameCEF3.Init(Sender:TObject);
begin
  // Нужно для корректного создания контекста браузера;
  IsChromCreated := False;
  
  // Связывание TChromium и TCEFWindowParent;
  if not(Chromium.Initialized)
  then begin
    Chromium.CreateBrowser(ChromiumPage, '');
  end;
end;

procedure TFrameCEF3.ChromiumAfterCreated(Sender: TObject; const browser: ICefBrowser);
begin
  IsChromCreated := True;
end;

procedure TFrameCEF3.LoadURL(AUrl: string);
begin
  FUrl := AUrl;

  // Супер кАстыль от разработчиков хрома :-/
  // GlobalCEFApp.GlobalContextInitialized has to be TRUE before creating any browser
  // If it's not initialized yet, we use a simple timer to create the browser later.
  tmrLoadURL.Enabled := True;
end;

procedure TFrameCEF3.tmrLoadURLTimer(Sender: TObject);
begin
  if not IsChromCreated
  then begin
    Chromium.CreateBrowser(ChromiumPage, '');
    Exit;
  end;

  // Остановим таймер;
  TTimer(Sender).Enabled := False;

  // Запустим ссылку в браузере;
  Chromium.LoadURL(FUrl);
end;

initialization
  RegisterClass(TFrameCEF3);

end.


И еще один момент...

Если будут какие-либо перехваты: загрузки страниц, открытия файлов, сохранения файлов и т.д.
Все это нужно делать в асинхронном режиме (таймер или поток тут уж как смогёте)!
Иначе контекст браузера подвешивается намертво :(
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40008121
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\
Кто же располагает компоненты в Program Files и еще хочет, чтобы у него что-то работало.
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40008143
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014
C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\

Кто же располагает компоненты в Program Files и еще хочет, чтобы у него что-то работало.
Если IDE запускается с правами админа, то технически расположение в Program Files не играет роли
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40008442
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,

- CEF4Delphi: бинарные файлы 32 bits
- Delphi 10.3.3 Rio, win7 64

А какой битности компилируемое приложение? Оно, ведь, должно быть одинаковой с DLLками хромиума
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40008515
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,
Оно ругнется, если библиотеки будут не той разрядности.
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40008544
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014
Кроик Семён,
Оно ругнется, если библиотеки будут не той разрядности.


на самом деле, так нельзя сказать на 100%. Если там в недрах CEF4Delphi динамическая линковка через LoadLibrary с обработкой ошибок, то, может и не ругнется Exception'ом, а как-нибудь мягко через статус при инициализации библиотеки.

возможно, автору надо скачать другой вариант (смотри картинку). Но он, ведь, молчит как партизан
...
Рейтинг: 0 / 0
TChromium не реагирует
    #40008550
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TChromium не реагирует
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]