Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TChromium не реагирует / 19 сообщений из 19, страница 1 из 1
12.10.2020, 02:45
    #40007527
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
Ребят, помогите пожалуйста разобраться!
Скачал с гитхаба 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
12.10.2020, 02:49
    #40007528
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
реакции 0 - в смысле, всё компилится, но страница не загружается.
Даже сообщения типа error 404 и тд нету..
пишу вам с температурой 37.5 )))
...
Рейтинг: 0 / 0
12.10.2020, 12:45
    #40007679
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
Tech N9ne
реакции 0 - в смысле, всё компилится, но страница не загружается.
Даже сообщения типа error 404 и тд нету..
пишу вам с температурой 37.5 )))

Используй Chrome DevTools, чтобы понять, что там у тебя не загружается
https://developers.google.com/web/tools/chrome-devtools
...
Рейтинг: 0 / 0
12.10.2020, 14:28
    #40007737
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
много раз уже писалось
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
12.10.2020, 15:12
    #40007752
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
Изучай прилагающиеся примеры.
...
Рейтинг: 0 / 0
12.10.2020, 18:09
    #40007804
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
Я запускаю демку, SimpleBrowser.
требуемые файлы закидываю в папки, пути к этим папкам прописываю в View Source.
Больше ничего не меняю, запускаю демку, она компилится, и при попытки открыть любую страничку - ничего не происходит. как будто браузера и нет.

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

и про ДЛЛ секретные и прочие файлы из комплекта не забудь
...
Рейтинг: 0 / 0
12.10.2020, 19:39
    #40007827
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
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
12.10.2020, 21:29
    #40007856
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
Я связался с этим хромом только потому что не могу с twebbrowser`ом дождаться полной загрузки страницы (любого сайта),
Конечная цель, имея любой url, получить скриншот страницы.
Но twebbrowser не ждет полной загрузки. ReadyState становится READYSTATE_COMPLETE до полной загрузки.
DocumentComplete тоже не спасает.

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

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

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

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

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

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

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


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

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

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

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

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
13.10.2020, 16:05
    #40008121
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\
Кто же располагает компоненты в Program Files и еще хочет, чтобы у него что-то работало.
...
Рейтинг: 0 / 0
13.10.2020, 17:51
    #40008143
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TChromium не реагирует
ziv-2014
C:\Program Files (x86)\Embarcadero\Studio\Компоненты\cef\CEF4Delphi-master\demos\Delphi_VCL\SimpleBrowser\Win32\Debug\

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

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

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


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

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


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