1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
{
Copyright 1998-2018 PasDoc developers.
This file is part of "pasdoc_gui".
"pasdoc_gui" is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
"pasdoc_gui" is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with "pasdoc_gui"; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
----------------------------------------------------------------------------
}
{ @author(Michalis Kamburelis)
@author(Arno Garrels <first name.name@nospamgmx.de>) }
unit WWWBrowserRunnerDM;
interface
{$IFDEF ConditionalExpressions}
{$IF CompilerVersion >= 15}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF}
{$IFEND}
{$IF CompilerVersion >= 20}
{$DEFINE STRING_UNICODE}
{$IFEND}
{$ENDIF}
uses
Classes, SysUtils, Forms, Controls, Dialogs;
type
{ TWWWBrowserRunner }
TWWWBrowserRunner = class(TDataModule)
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
private
{ private declarations }
public
procedure RunBrowser(const URL: string);
end;
var
WWWBrowserRunner: TWWWBrowserRunner;
implementation
uses {$ifdef WIN32} Windows, ShellAPI, {$endif} PasDocGuiSettings;
{$R *.dfm}
{ TWWWBrowserRunner }
procedure TWWWBrowserRunner.DataModuleCreate(Sender: TObject);
begin
end;
procedure TWWWBrowserRunner.DataModuleDestroy(Sender: TObject);
begin
end;
procedure TWWWBrowserRunner.RunBrowser(const URL: string);
{$ifdef WIN32}
procedure ShellExecuteURL;
var
ExecInfo: TShellExecuteInfo;
const
OpenCommand = 'open';
begin
ExecInfo.cbSize := SizeOf(ExecInfo);
ExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
ExecInfo.Wnd := 0; // <= Might be "ExecInfo.hWnd" in older FPC ?
ExecInfo.lpVerb := PChar(OpenCommand);
ExecInfo.lpFile := PChar(URL);
ExecInfo.lpParameters := nil;
ExecInfo.lpDirectory := nil;
ExecInfo.nShow := SW_SHOWNORMAL;
ShellExecuteEx(@ExecInfo);
end;
{$endif}
begin
{$ifdef WIN32}
ShellExecuteURL;
{$endif}
end;
end.
|