Difference between revisions of "Webbrowser/es"
m (→QT Webkit) |
|||
Line 87: | Line 87: | ||
=QT Webkit= | =QT Webkit= | ||
− | When using the | + | When using the Qt WidgetSet, you can use the Qt WebKit to embed a browser into a LCL form. |
− | [http://users.telenet.be/Jan.Van.hijfte/qtforfpc/] | + | |
+ | Lazarus LCL/Qt WebKit Demo available on [http://users.telenet.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html FPC Qt4 Binding Web Page] |
Revision as of 17:31, 24 September 2009
Starting a webbrowser to show a page/URL
Finding the default webbrowser
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. You can use its method FindDefaultBrowser to find the default browser and the parameter to start. For example:
<Delphi> 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(['Path=',BrowserPath,' Params=',BrowserParams]); v.Free;
end; </Delphi>
This gives for example under Ubuntu (Linux):
Browser=/usr/bin/xdg-open Params=%s
Under Windows you can get:
Browser=C:\windows\system32\rundll32.exe Params=url.dll,FileProtocolHandler %s
Starting the browser
Once you know the command line and parameters you can use TProcessUTF8 to start the browser:
<Delphi> 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(['Path=',BrowserPath,' Params=',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; </Delphi>
Using the turbopower internet pro control
Lazarus provides the package TurboPowerIPro (lazarus/components/turbopower_ipro/turbopoweripro.lpk) with the following features:
- 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.
- It is written completely in pascal and therefore works on all platforms out of the box without any extra installation.
- You have the full control, what files/urls are opened.
- It has not all the features of a full webbrowser. No multimedia stuff, javascript or flash. This must be implemented by you.
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.
QT Webkit
When using the Qt WidgetSet, you can use the Qt WebKit to embed a browser into a LCL form.
Lazarus LCL/Qt WebKit Demo available on FPC Qt4 Binding Web Page