HSP3プログラミング入門講座
powered by Let's HSP!
インターネットブラウザを作成してみる (IEコンポーネント)
Windows上で動作するプログラムを作成できるフリーソフト(無料)なプログラミングソフト『HSP』(公式サイト「HSPTV!」)を使って、
インターネット上のページを閲覧するソフトウェア「ブラウザ」を作成します。
で、HTMLのレンダリング処理をすべて自前で開発するのはさすがに無理があるので、Microsoftによる「Internet Explorer」のレンダリングエンジン「Trident」を利用して、
いわゆるIEコンポーネントなブラウザとして放り投げる形にします。
HSP3はCOMに標準対応
ブラウザの作成は、HSP2時代だとちょくとさんが製作された「LOLLIPOP」モジュールを 利用するのが一番手近な手段でしたが、HSP3(HSP 3.x)は標準でCOMの利用をサポートしてます。いずれにしても、HSPプログラミング外の知識が必要になってきます。
HSPの開発環境に付属してるブラウザ関連のサンプルソースは次のとおりです。
- sample/comobj/contest7.hsp
- sample/comobj/web.hsp
まずは、URLアドレスを指定するボックスと移動ボタンを用意して、axobj命令でIEコンポーネントのコントロールを 設置します。他のオブジェクトのように表示位置はpos命令、表示サイズはobjsize命令なんかでも指定できます。
// IEコンポーネントの設置 (by Kpan) sdim url, 512 input url, ginfo(12), 22 button gosub "移動", *navigate ; IEコンポーネントの設置 axobj IE, "Shell.Explorer.2", ginfo(12), 300 stop *navigate if url = "" : return ; ページ移動 IE->"Navigate" url return
ページの移動は「Navigate」メソッドを利用します。他にも下のような基本的なメソッドがあります。
Navigate String | 指定ページに移動 |
GoBack | 前に戻る |
GoForward | 次に進む |
GoHome | ホームページに移動 |
Refresh | ページの更新 |
Refresh2 Value | ページの更新 0=キャッシュから読み込む通常更新 3=サーバーから読み込む完全更新 |
Stop | 読み込みの停止 |
ブラウザの各種イベントを取得するには、あらかじめcomevent命令でサブルーチンジャンプさせる指定を用意しておきます。 イベント内では、comevdisp関数やcomevarg命令で情報を取得することになります。
// IEコンポーネントのイベント (by Kpan) #define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}" sdim sText, 512 sdim url, 512 input url, ginfo(12), 22 button gosub "移動", *navigate axobj IE, "Shell.Explorer.2", ginfo(12), 300 ; ブラウザイベントの登録 comevent ie_event, IE, DIID_DWebBrowserEvents2, *event stop *navigate if url = "" : return IE->"Navigate" url return *event DispID = comevdisp(ie_event) // DISPID_STATUSTEXTCHANGE if DispID = 102 { comevarg sText, ie_event, 0 mes sText return } // DISPID_TITLECHANGE if DispID = 113 { comevarg sText, ie_event, 0 title ""+sText return } return
イベントは下のようなものがあります。いっぱいあってめんどくさくなり・・・手抜き。(^^;
DISPID_STATUSTEXTCHANGE | (ステータスバーの)状態メッセージが変更された時 |
DISPID_COMMANDSTATECHANGE | 「前に戻る」、「次に進む」のコマンドの状態が変更された時 |
DISPID_TITLECHANGE | (タイトルバーの)タイトルが変更された時 |
DISPID_BEFORENAVIGATE2 | ページに移動する前の段階 |
DISPID_NAVIGATECOMPLETE2 | ページに移動した後の段階 |
HTMLタグの書き込み
新規HTMLタグを書き込んでIEコンポーネント上に反映させます。HSPでは属性名の「”」を「¥”」で表現する必要があるのでご注意を。
// IEコンポーネントにHTMLタグを新規挿入 (by Kpan) sdim html, 4048 html = "<font size=\"6\">HSPミニ講座 by Kpan</font>\n" html + "<marquee>"+gettime(1)+"月"+gettime(3)+"日</marquee>" mesbox html, ginfo(12), 100 button gosub "書き込み", *write axobj IE, "Shell.Explorer.2", ginfo(12), 300 IE->"Navigate" "about:blank" stop *write pDocument = IE("Document") pDocument->"Open" ; 開いて pDocument->"Write" html ; 書き込んで pDocument->"Close" ; 閉じる return
ブラウザの作成関連ページ。
- Delphi はじめの一歩
- IEコンポーネントの使い方 (VC++の使い方)
- WebBrowser Control (MSDN)
- HSPTV!内 (Google検索)
キーワード de HSP
- 無料プログラミング
- HSPダウンロード
- 実行ファイル作成
- HSP動作環境
- 演算子
- 文字列操作
- 命令・関数一覧
- アイコン変更
- PACKFILE
- PACKFILE編集
- #packopt
- #deffunc
- HSPエラー
- HSPエラー番号
- HSPエラー7
- HSPエラー12
- HSPエラー13
- HSPエラー33
- HSPエラー38
- HSPエラー41
- ホームページ作成
- バージョン
- フォント
- オブジェクト
- ボタン
- 入力ボックス
- オブジェクト非表示
- Win32 API
- メニュー
- HSPLet
- サウンド再生
- 画像
- PNGファイル
- HSP質問掲示板
- デバッグ
- ドラッグ&ドロップ
- ブラウザ作成
- HSP書籍本