読者です 読者をやめる 読者になる 読者になる

指定したURLをデフォルトのウェブブラウザで開く

Delphi XE3、FireMonkeyアプリケーションで指定したURLをデフォルトのウェブブラウザで開くには。
WindowsだとShellAPI.ShellExecuteを使えばいいんだけど、WindowsAPIなのでこれはMacOSXでは使えない。
MacOSXだとPosixパッケージのコマンド実行(_system関数)で開くといいみたい。PosixパッケージはWin32, Win64ターゲットでは使用不可。
コンパイラ指令のIFDEFを使ってMACOSとMSWINDOWSシンボルを見て挙動を切り替える。
以下、ボタンクリックで example.org をウェブブラウザで開くコード例。

Unit1.pas

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes,
  System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs
{$IFDEF MACOS}
  ,Posix.Stdlib
{$ENDIF}
{$IFDEF MSWINDOWS}
  ,Windows
  ,ShellAPI
{$ENDIF}
  ;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
  {$IFDEF MACOS}
    _system(PAnsiChar('open http://example.org/'));
  {$ENDIF}
  {$IFDEF MSWINDOWS}
     ShellExecute(Self.Handle, 'open', PChar('http://example.org/'),
        '', '', SW_SHOWNORMAL);
  {$ENDIF}
end;

end.