Webbrowser/es: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | 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. | |
| 2 | 2 | ||
| 3 | 3 | # Iniciando un navegador web para mostrar una página desde su URL | |
| 4 | 4 | ||
| 5 | 5 | ## OpenURL | |
| 6 | 6 | ||
| 7 | 7 | 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:///'. | |
| 8 | 8 | ||
| 9 | 9 | ``` pascal | |
| 10 | 10 | uses LCLIntf; | |
| 11 | 11 | ... | |
| 12 | 12 | OpenURL('http://www.lazarus.freepascal.org'); | |
| 13 | 13 | ``` | |
| 14 | 14 | ||
| 15 | 15 | ## Encontrando el navegador por defecto del sistema | |
| 16 | 16 | ||
| 17 | 17 | 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: | |
| 18 | 18 | ||
| 19 | 19 | ``` pascal | |
| 20 | 20 | uses | |
| 21 | 21 | Classes, ..., LCLProc, LazHelpHTML; | |
| 22 | 22 | ||
| 23 | 23 | ... | |
| 24 | 24 | ||
| 25 | 25 | implementation | |
| 26 | 26 | ||
| 27 | 27 | procedure TMainForm.Button1Click(Sender: TObject); | |
| 28 | 28 | var | |
| 29 | 29 | v: THTMLBrowserHelpViewer; | |
| 30 | 30 | BrowserPath, BrowserParams: string; | |
| 31 | 31 | begin | |
| 32 | 32 | v:=THTMLBrowserHelpViewer.Create(nil); | |
| 33 | 33 | v.FindDefaultBrowser(BrowserPath,BrowserParams); | |
| 34 | 34 | debugln(['Ruta=',BrowserPath,' Parámetros=',BrowserParams]); | |
| 35 | 35 | v.Free; | |
| 36 | 36 | end; | |
| 37 | 37 | ``` | |
| 38 | 38 | ||
| 39 | 39 | En Ubuntu (Linux) este nos daría: | |
| 40 | 40 | ||
| 41 | - | ||
| 41 | + | ```text | |
| 42 | + | Ruta=/usr/bin/xdg-open Parámetros=%s | |
| 43 | + | ``` | |
| 42 | 44 | ||
| 43 | 45 | En Windows obtendríamos: | |
| 44 | 46 | ||
| 45 | - | ||
| 47 | + | ```text | |
| 48 | + | Ruta=C:\windows\system32\rundll32.exe Parámetros=url.dll,FileProtocolHandler %s | |
| 49 | + | ``` | |
| 46 | 50 | ||
| 47 | 51 | ## Iniciando un navegador | |
| 48 | 52 | ||
| 49 | 53 | Una vez sabemos la línea de comandos y los parámetros usaremos TProcessUTF8 para lanzar el navegador: | |
| 50 | 54 | ||
| 51 | 55 | ``` pascal | |
| 52 | 56 | uses | |
| 53 | 57 | Classes, ..., LCLProc, LazHelpHTML, UTF8Process; | |
| 54 | 58 | ||
| 55 | 59 | ... | |
| 56 | 60 | ||
| 57 | 61 | implementation | |
| 58 | 62 | ||
| 59 | 63 | procedure TMainForm.Button1Click(Sender: TObject); | |
| 60 | 64 | var | |
| 61 | 65 | v: THTMLBrowserHelpViewer; | |
| 62 | 66 | BrowserPath, BrowserParams: string; | |
| 63 | 67 | p: LongInt; | |
| 64 | 68 | URL: String; | |
| 65 | 69 | BrowserProcess: TProcessUTF8; | |
| 66 | 70 | begin | |
| 67 | 71 | v:=THTMLBrowserHelpViewer.Create(nil); | |
| 68 | 72 | try | |
| 69 | 73 | v.FindDefaultBrowser(BrowserPath,BrowserParams); | |
| 70 | 74 | debugln(['Ruta=',BrowserPath,' Parámetros=',BrowserParams]); | |
| 71 | 75 | ||
| 72 | 76 | URL:='http://www.lazarus.freepascal.org'; | |
| 73 | 77 | p:=System.Pos('%s', BrowserParams); | |
| 74 | 78 | System.Delete(BrowserParams,p,2); | |
| 75 | 79 | System.Insert(URL,BrowserParams,p); | |
| 76 | 80 | ||
| 77 | 81 | // start browser | |
| 78 | 82 | BrowserProcess:=TProcessUTF8.Create(nil); | |
| 79 | 83 | try | |
| 80 | 84 | BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams; | |
| 81 | 85 | BrowserProcess.Execute; | |
| 82 | 86 | finally | |
| 83 | 87 | BrowserProcess.Free; | |
| 84 | 88 | end; | |
| 85 | 89 | finally | |
| 86 | 90 | v.Free; | |
| 87 | 91 | end; | |
| 88 | 92 | end; | |
| 89 | 93 | ``` | |
| 90 | 94 | ||
| 91 | 95 | # Integrando un componente navegador web en la aplicación | |
| 92 | 96 | ||
| 93 | 97 | ## Usando el control "Turbopower Internet pro" | |
| 94 | 98 | ||
| 95 | 99 | Lazarus provee el paquete **TurboPowerIPro** (lazarus/components/turbopower_ipro/turbopoweripro.lpk) con las siguientes características: | |
| 96 | 100 | ||
| 97 | 101 | - 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. | |
| 98 | 102 | - Está escrito completamente en pascal y por lo tanto funciona en todas las plataformas sin ninguna instalación adicional. | |
| 99 | 103 | - Tienes el control total, sobre que archivos/URLs se abren. | |
| 100 | 104 | - 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ú. | |
| 101 | 105 | ||
| 102 | 106 | 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. | |
| 103 | 107 | ||
| 104 | 108 | ## QT Webkit | |
| 105 | 109 | ||
| 106 | 110 | Si utilizamos **Qt WidgetSet**, hacemos uso de **Qt WebKit** para embeber el navegador en un formulario LCL. | |
| 107 | 111 | ||
| 108 | 112 | [*Lazarus LCL/Qt WebKit Demo*](http://users.telenet.be/Jan.Van.hijfte/qtforfpc/lclwebkit.zip) disponible en [**Free Pascal Qt4 Binding**](http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html) | |
| 109 | 113 | ||
| 110 | 114 | ## THtmlPort | |
| 111 | 115 | ||
| 112 | 116 | [[THtmlPort]] es una versión Lazarus/Free Pascal del componente HTML de Dave Baldwin, incluye ***THtmlViewer***, ***TFrameViewer**'' y***TFrameBrowser**''. | |
| 113 | 117 | ||
| 114 | 118 | ## GeckoPort (v2) | |
| 115 | 119 | ||
| 116 | 120 | [[GeckoPort version2|GeckoPort]] es una versión Lazarus/Free Pascal del SDK Gecko para Delphi de Takanori It, incluye el componente ***TGeckoBrowser***. | |
| 117 | 121 | ||
| 118 | 122 | # Ver también | |
| 119 | 123 | ||
| 120 | 124 | - [[Executing External Programs/es|Ejecutar programas externos]] | |
| 121 | 125 | ||
| 122 | 126 | --- | |
| 123 | 127 | *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](/wiki-contact).* |
