Delphiからでブラウザを開きたいときなど、ShellExecuteを使う必要があります。
FireMonkeyプロジェクトでも、WindowsならusesにWinapi.ShellAPI, Winapi.Windowsを追加し、
ShellExecute(0, 'OPEN', PChar(url), '', '', SW_SHOWNORMAL);
で使用できます。
ところでMac OSではどうやるんでしょう?
_system
Mac OSではPosix.stdlibを使います。
uses に Posix.stdlib を追加。
_system(PAnsiChar('open ' + {コマンド} ));
{コマンド}の部分にURLを書けばSafariが起動してくれます。
カンタンでうれしい!
手続きにまとめる
OSの違いをコンパイラ指令にまとめて記述し、便利にしてみます。
uses
{$IFDEF MSWINDOWS} Winapi.ShellAPI, Winapi.Windows {$ENDIF} {$IFDEF POSIX} Posix.stdlib {$ENDIF}
フォーム
procedure BrowserExecute(url: String);
など手続きを追加。
実現部
procedure TForm1.BrowserExecute(url: String); begin {$IFDEF MSWINDOWS} ShellExecute(0, 'OPEN', PChar(url), '', '', SW_SHOWNORMAL); {$ENDIF MSWINDOWS} {$IFDEF POSIX} _system(PAnsiChar('open ' + AnsiString(url))); {$ENDIF POSIX} end;
これで呼び出し部分で常にBrowserExecuteを使えば、OSを意識せずに立ち上げられますね。