Title: open local files in a TWebbrowser and start links directly?
{
This example shows how to open local files in a TWebbrowser
and start links directly without showing a Dialog.
}
{
Dieses Beispiel zeigt, wie man lokale Dateien in einem TWebbrowser
ffnen kann und wie man lokale Links direct ausf hren kann ohne
dass ein Dialog erscheint.
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleCtrls, SHDocVw;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
private
FIsStartPage: Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses
ShellApi;
// Open a local page:
procedure TForm1.Button1Click(Sender: TObject);
const
LOCAL_PAGE ='C:/StartPage.htm'
begin
FIsStartPage := True;
Webbrowser1.Navigate('file:///' + LOCAL_PAGE);
FIsStartPage := False;
end;
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
newURL: string;
begin
newURL := URL;
// For local links, don't show a dialog but open the file directly
if (not FIsStartPage) and FileExists(newURL) then
begin
Cancel := True;
ShellExecute(Application.Handle, 'open', PChar(newURL), nil, nil, SW_NORMAL);
end;
end;