fpCEF3 seemed promissing to me but I am stuck with retreiving dom information in this project.
Seems that I am not able to use visitdomproc()

Since I am not very versed programmer the issue is
probably between chair and keyboard
I encounter no error messages, I am able run project without problem but these lines do not work:
procedure pokus(const document:ICefDomDocument); //does not work
begin
Mainform.Memo1.text:=document.GetFocusedNode.GetValue;
ShowMessage('Funguje :-)');
end;
procedure TMainform.ChromiumKeyEvent(Sender: TObject;
const Browser: ICefBrowser; const event: PCefKeyEvent;
osEvent: TCefEventHandle; out Result: Boolean);
var
mujFrame : ICefFrame;
dok:ICefDomDocument;
mojeJmenaFramu: TStrings;
begin
pokus1:= @pokus;
Memo1.text:='Identifikátor framu :'+ inttostr( Chromium.Browser.GetMainFrame.GetIdentifier)+ LineEnding
+ 'Počet frames : '+ inttostr (Chromium.Browser.GetFrameCount);
Chromium.Browser.GetMainFrame.VisitDomProc(pokus1); //does not work
end; I enclose all project
Thanks for potential help
Unit Main;
{$MODE objfpc}{$H+}
Interface
Uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, LCLType, ExtCtrls,
cef3types, cef3lib, cef3intf, cef3lcl, cef3gui;
Type
{ TMainform }
TMainform = class(TForm)
BGo : TButton;
Button1: TButton;
Chromium : TChromium;
EUrl : TEdit;
LUrl : TStaticText;
Memo1: TMemo;
procedure BGoClick(Sender : TObject);
procedure ChromiumKeyEvent(Sender: TObject; const Browser: ICefBrowser;
const event: PCefKeyEvent; osEvent: TCefEventHandle; out Result: Boolean);
procedure ChromiumLoadEnd(Sender : TObject; const Browser : ICefBrowser;
const Frame : ICefFrame; httpStatusCode : Integer);
procedure ChromiumTitleChange(Sender : TObject;
const Browser : ICefBrowser; const title : ustring);
procedure EUrlKeyDown(Sender : TObject; var Key : Word;
Shift : TShiftState);
procedure FormCreate(Sender : TObject);
private
{ private declarations }
public
{ public declarations }
end;
procedure pokus(const document:ICefDomDocument);
Var
Mainform : TMainform;
pokus1:TCefDomVisitorProc;
Implementation
{$R *.lfm}
{ TMainform }
procedure TMainform.BGoClick(Sender : TObject);
var
mujFrame : ICefFrame;
begin
Chromium.Load(EUrl.Text);
//mujFrame:=Chromium.Browser.GetMainFrame;
//mujFrame.ExecuteJavaScript('alert("ExecuteJavaScript works!")',mujFrame.GetURL(), 0);;
end;
procedure pokus(const document:ICefDomDocument); //does not work
begin
Mainform.Memo1.text:=document.GetFocusedNode.GetValue;
ShowMessage('Funguje :-)');
end;
procedure TMainform.ChromiumKeyEvent(Sender: TObject;
const Browser: ICefBrowser; const event: PCefKeyEvent;
osEvent: TCefEventHandle; out Result: Boolean);
var
mujFrame : ICefFrame;
dok:ICefDomDocument;
mojeJmenaFramu: TStrings;
begin
pokus1:= @pokus;
Memo1.text:='Identifikátor framu :'+ inttostr( Chromium.Browser.GetMainFrame.GetIdentifier)+ LineEnding
+ 'Počet frames : '+ inttostr (Chromium.Browser.GetFrameCount);
Chromium.Browser.GetMainFrame.VisitDomProc(pokus1); //does not work
end;
procedure TMainform.ChromiumLoadEnd(Sender : TObject; const Browser : ICefBrowser; const Frame : ICefFrame;
httpStatusCode : Integer);
begin
EUrl.Text := UTF8Encode(Browser.MainFrame.Url);
end;
procedure TMainform.ChromiumTitleChange(Sender : TObject; const Browser : ICefBrowser; const title : ustring);
begin
Caption := 'Browser - ' + UTF8Encode(title);
end;
procedure TMainform.EUrlKeyDown(Sender : TObject; var Key : Word; Shift : TShiftState);
begin
If Key = VK_RETURN then BGoClick(Sender);
end;
procedure TMainform.FormCreate(Sender : TObject);
begin
{$INFO Uncomment to use a subprocess, potřebuje subprocess.exe zkompilovaný pro aktuální
platformu v adresáři aplikace viz. příklady v ..\fpCEF3-master\Examples\SubProcess\}
CefBrowserSubprocessPath := '.' + PathDelim + 'subprocess'{$IFDEF WINDOWS}+'.exe'{$ENDIF};
end;
end.