Copia del wikiespejo

Este es un espejo del wiki de pascal.chat. La edición, el historial y el inicio de sesión están allí.

Webbrowser/es

Deutsch · English · Español · Русский

Esta página resume varios modos para mostrar páginas HTML desde un programa pascal, que van desde llamar a un navegador externo hasta la adición de un componente capaz de mostrar una página html en un formulario.

Iniciando un navegador web para mostrar una página desde su URL

OpenURL

   OpenURL es el modo más simple para abrir cualquier URL. Este procedimiento detecta el navegador por defecto del sistema y abre la URL colocado en su único parámetro. See puede usar con direcciones de correo electrónico con el siguiente formato 'mailto:UnNombre@UnDominio?subject=:::Es asunto', con las direcciones web con este formato 'http://' y para archivos locales con este otro 'file:///'.

pascal
 uses LCLIntf;
 ...
 OpenURL('http://www.lazarus.freepascal.org');

Encontrando el navegador por defecto del sistema

   Cada plataforma tiene un mecanismo para localizar el navegador predeterminado.La unidad lazhelphtml de la LCL dispone de la clase THTMLBrowserHelpViewer para ejecutar el navegador web para el subsistema de ayuda de las LCL. Usaremos el método FindDefaultBrowser para hallar el navegador web predeterminado y el parámetro de inicio. Por ejemplo:

pascal
 uses 
  Classes, ..., LCLProc, LazHelpHTML;

 ...

 implementation

 procedure TMainForm.Button1Click(Sender: TObject);
 var
  v: THTMLBrowserHelpViewer;
  BrowserPath, BrowserParams: string;
 begin
  v:=THTMLBrowserHelpViewer.Create(nil);
  v.FindDefaultBrowser(BrowserPath,BrowserParams);
  debugln(['Ruta=',BrowserPath,' Parámetros=',BrowserParams]);
  v.Free;
 end;

   En Ubuntu (Linux) este nos daría:

text
 Ruta=/usr/bin/xdg-open Parámetros=%s

   En Windows obtendríamos:

text
 Ruta=C:\windows\system32\rundll32.exe Parámetros=url.dll,FileProtocolHandler %s

Iniciando un navegador

   Una vez sabemos la línea de comandos y los parámetros usaremos TProcessUTF8 para lanzar el navegador:

pascal
 uses 
  Classes, ..., LCLProc, LazHelpHTML, UTF8Process;

 ...

 implementation

 procedure TMainForm.Button1Click(Sender: TObject);
 var
  v: THTMLBrowserHelpViewer;
  BrowserPath, BrowserParams: string;
  p: LongInt;
  URL: String;
  BrowserProcess: TProcessUTF8;
 begin
  v:=THTMLBrowserHelpViewer.Create(nil);
  try
    v.FindDefaultBrowser(BrowserPath,BrowserParams);
    debugln(['Ruta=',BrowserPath,' Parámetros=',BrowserParams]);

    URL:='http://www.lazarus.freepascal.org';
    p:=System.Pos('%s', BrowserParams);
    System.Delete(BrowserParams,p,2);
    System.Insert(URL,BrowserParams,p);

    // start browser
    BrowserProcess:=TProcessUTF8.Create(nil);
    try
      BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams;
      BrowserProcess.Execute;
    finally
      BrowserProcess.Free;
    end;
  finally
    v.Free;
  end;
 end;

Integrando un componente navegador web en la aplicación

Usando el control "Turbopower Internet pro"

   Lazarus provee el paquete TurboPowerIPro (lazarus/components/turbopower_ipro/turbopoweripro.lpk) con las siguientes características:

   Hay algunos ejemplos en lazarus/components/turbopower_ipro/examples que demuestran cómo abrir un archivo HTML local con algunas imágenes, hipervínculos y botones de historial.

QT Webkit

   Si utilizamos Qt WidgetSet, hacemos uso de Qt WebKit para embeber el navegador en un formulario LCL.

   Lazarus LCL/Qt WebKit Demo disponible en Free Pascal Qt4 Binding

THtmlPort

   THtmlPort es una versión Lazarus/Free Pascal del componente HTML de Dave Baldwin, incluye THtmlViewer, TFrameViewer'' yTFrameBrowser''.

GeckoPort (v2)

   GeckoPort es una versión Lazarus/Free Pascal del SDK Gecko para Delphi de Takanori It, incluye el componente TGeckoBrowser.

Ver también


From the Free Pascal wiki, page "Webbrowser/es", as it stood on 2020-03-04 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revisión 2, último cambio por WikiArchive .