Difference between revisions of "Webbrowser/es"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting; deleted category included in page template)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{Webbrowser}}
 
{{Webbrowser}}
  
This page summarizes various ways to display HTML pages from a Pascal program, ranging from calling an external browser to adding a component capable of rendering the html page into a form.
+
   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.
  
=Starting a web browser to show a page/URL=
+
=Iniciando un navegador web para mostrar una página desde su URL=
  
 
==OpenURL==
 
==OpenURL==
  
OpenURL is simplest way of opening URLs in general. This procedure will detect default web browser and open URL from parameter in it. It can be used for mail address of the form <nowiki>'mailto:aname@AnAddress?subject=:::A subject line'</nowiki>, web addresses <nowiki>'http://'</nowiki> and files <nowiki>'file:///'</nowiki>.
+
&nbsp;&nbsp;&nbsp;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 <nowiki>'mailto:UnNombre@UnDominio?subject=:::Es asunto'</nowiki>, con las direcciones web con este formato <nowiki>'http://'</nowiki> y para archivos locales con este otro <nowiki>'file:///'</nowiki>.
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal> uses LCLIntf;
uses LCLIntf;
+
...
...
+
OpenURL('http://www.lazarus.freepascal.org');</syntaxhighlight>
OpenURL('http://www.lazarus.freepascal.org');
 
</syntaxhighlight>
 
  
==Finding the default webbrowser==
+
==Encontrando el navegador por defecto del sistema==
  
Every platform has a mechanism for its default platform. The LCL unit '''lazhelphtml''' contains a class THTMLBrowserHelpViewer to start a web browser for the LCL help system.
+
&nbsp;&nbsp;&nbsp;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:
You can use its method FindDefaultBrowser to find the default browser and the parameter to start. For example:
 
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal> uses  
uses  
 
 
   Classes, ..., LCLProc, LazHelpHTML;
 
   Classes, ..., LCLProc, LazHelpHTML;
  
...
+
...
  
implementation
+
implementation
  
procedure TMainForm.Button1Click(Sender: TObject);
+
procedure TMainForm.Button1Click(Sender: TObject);
var
+
var
 
   v: THTMLBrowserHelpViewer;
 
   v: THTMLBrowserHelpViewer;
 
   BrowserPath, BrowserParams: string;
 
   BrowserPath, BrowserParams: string;
begin
+
begin
 
   v:=THTMLBrowserHelpViewer.Create(nil);
 
   v:=THTMLBrowserHelpViewer.Create(nil);
 
   v.FindDefaultBrowser(BrowserPath,BrowserParams);
 
   v.FindDefaultBrowser(BrowserPath,BrowserParams);
   debugln(['Path=',BrowserPath,' Params=',BrowserParams]);
+
   debugln(['Ruta=',BrowserPath,' Parámetros=',BrowserParams]);
 
   v.Free;
 
   v.Free;
end;
+
end;</syntaxhighlight>
</syntaxhighlight>
 
  
This gives for example under Ubuntu (Linux):
+
&nbsp;&nbsp;&nbsp;En Ubuntu (Linux) este nos daría:
Browser=/usr/bin/xdg-open Params=%s
+
  Ruta=/usr/bin/xdg-open Parámetros=%s
Under Windows you can get:
+
&nbsp;&nbsp;&nbsp;En Windows obtendríamos:
Browser=C:\windows\system32\rundll32.exe Params=url.dll,FileProtocolHandler %s
+
  Ruta=C:\windows\system32\rundll32.exe Parámetros=url.dll,FileProtocolHandler %s
  
==Starting the browser==
+
==Iniciando un navegador==
  
Once you know the command line and parameters you can use TProcessUTF8 to start the browser:
+
&nbsp;&nbsp;&nbsp;Una vez sabemos la línea de comandos y los parámetros usaremos TProcessUTF8 para lanzar el navegador:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal> uses  
uses  
 
 
   Classes, ..., LCLProc, LazHelpHTML, UTF8Process;
 
   Classes, ..., LCLProc, LazHelpHTML, UTF8Process;
  
...
+
...
  
implementation
+
implementation
  
procedure TMainForm.Button1Click(Sender: TObject);
+
procedure TMainForm.Button1Click(Sender: TObject);
var
+
var
 
   v: THTMLBrowserHelpViewer;
 
   v: THTMLBrowserHelpViewer;
 
   BrowserPath, BrowserParams: string;
 
   BrowserPath, BrowserParams: string;
Line 64: Line 58:
 
   URL: String;
 
   URL: String;
 
   BrowserProcess: TProcessUTF8;
 
   BrowserProcess: TProcessUTF8;
begin
+
begin
 
   v:=THTMLBrowserHelpViewer.Create(nil);
 
   v:=THTMLBrowserHelpViewer.Create(nil);
 
   try
 
   try
 
     v.FindDefaultBrowser(BrowserPath,BrowserParams);
 
     v.FindDefaultBrowser(BrowserPath,BrowserParams);
     debugln(['Path=',BrowserPath,' Params=',BrowserParams]);
+
     debugln(['Ruta=',BrowserPath,' Parámetros=',BrowserParams]);
  
 
     URL:='http://www.lazarus.freepascal.org';
 
     URL:='http://www.lazarus.freepascal.org';
Line 86: Line 80:
 
     v.Free;
 
     v.Free;
 
   end;
 
   end;
end;
+
end;</syntaxhighlight>
</syntaxhighlight>
 
  
=Integrate web browser component in application=
+
=Integrando un componente navegador web en la aplicación=
  
==Using the Turbopower internet pro control==
+
==Usando el control "Turbopower Internet pro"==
  
Lazarus provides the package TurboPowerIPro (lazarus/components/turbopower_ipro/turbopoweripro.lpk) with the following features:
+
&nbsp;&nbsp;&nbsp;Lazarus provee el paquete '''TurboPowerIPro''' (lazarus/components/turbopower_ipro/turbopoweripro.lpk) con las siguientes características:
* It contains a control to put onto a form. When you install the package in the IDE, you get some new components in the palette, so you can drop them onto a form just like any LCL control.
+
* Dispone de un control para colocar en el formulario. Al instalar el paquete en el IDE, conseguimos algunos componentes nuevos en la paleta, que puedes colocar en un formulario como cualquier control de la LCL.
* It is written completely in pascal and therefore works on all platforms out of the box without any extra installation.  
+
* Está escrito completamente en pascal y por lo tanto funciona en todas las plataformas sin ninguna instalación adicional.  
* You have the full control, what files/urls are opened.
+
* Tienes el control total, sobre que archivos/URLs se abren.
* It does not have all the features of a full webbrowser. No multimedia stuff, javascript or flash. This must be implemented by you.
+
* No dispone de todas las características de un navegador web completo. No hay multimedia, javascript o flash. Si lo quieres tienes que implementarlo tú.
  
There are some examples in lazarus/components/turbopower_ipro/examples demonstrating how to open a local html file with some images, hyperlinks and history buttons.
+
&nbsp;&nbsp;&nbsp;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==
 
==QT Webkit==
  
When using the Qt WidgetSet, you can use the Qt WebKit to embed a browser into a LCL form.
+
&nbsp;&nbsp;&nbsp;Si utilizamos '''Qt WidgetSet''', hacemos uso de '''Qt WebKit''' para embeber el navegador en un formulario LCL.
  
Lazarus LCL/Qt WebKit Demo available on [http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html FPC Qt4 Binding Web Page]
+
&nbsp;&nbsp;&nbsp;[http://users.telenet.be/Jan.Van.hijfte/qtforfpc/lclwebkit.zip ''Lazarus LCL/Qt WebKit Demo''] disponible en [http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html '''Free Pascal Qt4 Binding''']
  
==[[THtmlPort]]==
+
==THtmlPort==
  
THtmlPort is a Lazarus/Free Pascal version of Dave Baldwin's HTML Components, including THtmlViewer, TFrameViewer and TFrameBrowser.
+
&nbsp;&nbsp;&nbsp;[[THtmlPort|'''THtmlPort''']] es una versión Lazarus/Free Pascal del componente HTML de Dave Baldwin, incluye '''''THtmlViewer''''', '''''TFrameViewer''''' y '''''TFrameBrowser'''''.
  
==[[GeckoPort_version2|GeckoPort]]==
+
==GeckoPort (v2)==
  
GeckoPort is a Lazarus/Free Pascal version of Takanori Ito's Gecko SDK for Delphi, including the TGeckoBrowser component.
+
&nbsp;&nbsp;&nbsp;[[GeckoPort_version2|'''GeckoPort''']] es una versión Lazarus/Free Pascal del SDK Gecko para Delphi de Takanori It, incluye el componente '''''TGeckoBrowser'''''.
  
=See also=
+
=Ver también=
  
* [[Executing External Programs]]
+
* [[Executing External Programs/es|Ejecutar programas externos]]
 
 
[[Category:Tutorials]]
 

Latest revision as of 09:47, 4 March 2020

Deutsch (de) English (en) español (es) русский (ru)

   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:///'.

 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:

 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:

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

   En Windows obtendríamos:

 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:

 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:

  • Dispone de un control para colocar en el formulario. Al instalar el paquete en el IDE, conseguimos algunos componentes nuevos en la paleta, que puedes colocar en un formulario como cualquier control de la LCL.
  • Está escrito completamente en pascal y por lo tanto funciona en todas las plataformas sin ninguna instalación adicional.
  • Tienes el control total, sobre que archivos/URLs se abren.
  • No dispone de todas las características de un navegador web completo. No hay multimedia, javascript o flash. Si lo quieres tienes que implementarlo tú.

   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 y TFrameBrowser.

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