Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


【Delphi】アプリケーションからWEBサイトを表示

今回は、Delphi/400のアプリケーションから
ブラウザを起動してWebサイトを表示するプログラムの記述方法になります。

ブラウザを開くにはWindows APIのShellExecuteを利用します。
ShellExecuteは関連付けされた拡張子に指定されたアプリケーションを起動しますので、
WebサイトのURLを渡せば既定のブラウザでWebサイトを表示します。
(エクスプローラーでフォルダやファイルを開く場合と同様です。)

 
例) URL https://www.migaro.co.jp/ を表示します。
 ※プログラム宣言部のuses節に『Winapi.ShellAPI』を追加

ShellExecute(
  Handle,                             // 親ウインドウのハンドル
  'open',                             // 操作
  PChar('https://www.migaro.co.jp/'), // 操作対象ファイル
  nil,                                // 操作パラメータ
  nil,                                // 操作ディレクトリ
  SW_SHOW);                           // 表示状態

 

URLにパラメータを渡して実行したい場合は、引き渡す文字によりURLエンコードが必要になります。
Delphi/400でURLエンコードを行うにはHTTPEncode関数を利用します。

この関数はHTTPメッセージヘッダーで無効となる値を含まない形式に文字列を変換します。
例として、Googleマップに住所のパラメータを渡してURLを開く方法をご紹介します。

例) パラメータを渡してGoogleマップを表示します。
※プログラム宣言部のuses節に『Winapi.ShellAPI』『Web.HTTPApp』を追加

var
  strURL: string;     // URL
  strAddress: string; // 住所
begin
  // 表示する住所
  strAddress := '大阪府大阪市浪速区湊町2-1-57';
  // URLの%sの部分に住所が組み込まれます。
  strURL := Format('https://maps.google.co.jp/?q=%s',
    [HTTPEncode(AnsiToUtf8(strAddress))]); // URLエンコード
  try
    ShellExecute(Handle,'open', PChar(strURL), nil, nil, SW_SHOW);
  except
    on Exception do
    begin
      // メッセージ処理
     ShowMessage('URLの起動に失敗しました。');
    end;
  end;
end;

 

 

(ミガロ.情報マガジン「MIGARO News!!」Vol.134 2012年1月号より)