Webbrowser/de
│
Deutsch (de) │
English (en) │
español (es) │
русский (ru) │
Diese Seite fasst die unterschiedlichen Varianten zusammen, HTML-Seiten von einem Pascal-Programm aus anzuzeigen. Es reicht von "einen externen Browser aufrufen" bis zu "Darstellung einer HTML-Seite im Form".
Einen externen Webbrowser mit einer Seite/URL starten
OpenURL
OpenURL ist die einfachste Form eine URL anzuzeigen. Diese Prozedur erkennt den voreingestellten Browser und öffnet eine URL mit den angegebenen Parametern. Sie kann benutzt werden um eMail zu senden 'mailto:einname@EineAddresse?subject=:::Betreff', eine Webadresse zu öffnen 'http://' oder lokale Dateien anzuzeigen'file:///'.
uses LCLIntf;
...
OpenURL('http://www.lazarus.freepascal.org');
Den voreingestellten Webbrowser finden
Jede Plattform hat ihren eigenen Mechanismuss um den voreingestellten Browser zu definieren. Die LCL-Unit lazhelphtml enthält eine Klasse THTMLBrowserHelpViewer um einen Webbrowser für das LCL-Hilfe-System zu starten. Man kann deren Methode FindDefaultBrowser benutzen um den voreingestellten browser und dessen Startparameter herauszufinden. Zum Beispiel:
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;
Unter Ubuntu (Linux) zum Beispiel ergibt diese:
Browser=/usr/bin/xdg-open Params=%s
Unter Windows:
Browser=C:\windows\system32\rundll32.exe Params=url.dll,FileProtocolHandler %s
Start des Browsers
Wenn man die Kommandozeile und Parameter für den Browser kennt kann man TProcessUTF8 benutzen um den Browser zu starten:
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);
// Browser starten
BrowserProcess:=TProcessUTF8.Create(nil);
try
BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams;
BrowserProcess.Execute;
finally
BrowserProcess.Free;
end;
finally
v.Free;
end;
end;
Eine Webbrowser-Komponente in die Applikation integrieren
Turbopower internet pro-Elemente benutzen
Lazarus stellt das Paket TurboPowerIPro (lazarus/components/turbopower_ipro/turbopoweripro.lpk) bereit. Es hat folgende Vorzüge:
- Es enthält Steuerelemente für den Form-Designer. Bim installieren in die IDE, erhält man neue Komponenten in der Komponenten-Palette, die man einfach, wie jedes andere LCL-Element benutzen kann.
- Es ist vollkommen in Pascal geschrieben. Es arbeitet deshalb von Vorn herein platformübergreifend, ohne zusätzlichen Installationsaufwand.
- Man hat volle Kontrolle, welche Dateien/URLs geöffnet werden.
- Es hat nicht alle Features eines 'richtigen' Webbrowsers, z.B: Kein Multimedia-Zeug, Javascript oder Flash, dies muß man selbst implementieren.
Es exitieren Beispiele in lazarus/components/turbopower_ipro/examples die demonstrieren, wie man eine lokale HTML-Datei mit Bildern anzeigt, Hyperlinks verfolgt mit Historie.
QT Webkit
Siehe auch
- Executing External Programs/de
- fphttpclient Teil der FCL-Web, kann aber auch allein benutzt werden um HTTP-Content zu laden.