Delphi Chromium Embedded Framework

Para los que quieran tener embebido en su aplicación un navegador que encapsula a Chrome y que además es compatible con Firemonkey (con alguna particularidad) aquí se lo pueden descargar:

Clic aqui para descargar


Una vez que se ha descargado hay que instalar el componente cefcomponent.dpk de la carpeta src (No olvidar poner la ruta de la carpeta "src" en Opciones-Library) 
Espero que este componente no tenga el memory leak que observé en el TWebBrowser.



Las nuevas funciones que ofrece son:
-Embebe un web browser con html5/css3
-parsing javascript
-html5 drag&drop
-Soporte para geolocalizacion
-Aceleracion por GPU
-Manejo de la configuracion para proxy
-Clases para utilizarlo en linea de comandos, url, xml y zip para lectura / parsing
-Acceso a las cookies
-Menu contextual 
-Acceso directo a DOM
-Notificacion e interceptacion de pulsaciones de teclas y foco de la aplicacion
-Manejo de zoom
-Manejo de descargas
-Soporte para webrequest -
-Soporte para multi_threaded_message_loop
-Puede trabajar sin el VCL o como un componente

Ejemplos:
Cargar una URL: (siendo crm: TChromium)
      crm.Browser.MainFrame.LoadUrl(edAddress.Text); 

Recargar una URL:
  if crm.Browser <> nil then
    if FLoading then
      crm.Browser.StopLoad else
      crm.Browser.Reload;


Hacer Zoom:
crm.Browser.ZoomLevel := crm.Browser.ZoomLevel + 0.5;

Obtener el codigo de la pagina:
var
  frame: ICefFrame;
  source: ustring;
begin
  if crm.Browser = nil then Exit;
  frame := crm.Browser.MainFrame;
  source := frame.Source;
  source := StringReplace(source, '<', '<', [rfReplaceAll]);
  source := StringReplace(source, '>', '>', [rfReplaceAll]);
  source := 'Source:
' + source + '
';
  frame.LoadString(source, 'http://tests/getsource');
end;


Ejecutar javascript:
    crm.Browser.MainFrame.ExecuteJavaScript(
      'alert(''JavaScript execute works!'');', 'about:blank', 0);


Mostrar herramientas del programador:
crm.Browser.ShowDevTools;

Ejecutar DOM:
begin
{$IFDEF DELPHI12_UP}
  crm.Browser.MainFrame.VisitDomProc(
    procedure (const doc: ICefDomDocument) begin
      doc.Body.AddEventListenerProc('mouseover', True,
        procedure (const event: ICefDomEvent) begin
          caption := getpath(event.Target);
        end)
  end);
{$ELSE}
  crm.Browser.MainFrame.VisitDomProc(domvisitorcallback);
{$ENDIF}
end;


Imprimir una pagina:
crm.Browser.MainFrame.Print;





No hay comentarios:

Publicar un comentario