8月9日 末の娘ほのちゃんに,「幼稚園でディズニーランドへ行ってないが,ほのだけや」とせがまれて(「うまいこと言うな。5才といえども,女の子はあなどれん」と思った。),ディズニーランドとディズニーシーへ行ってきた。こうしろうが今のほのと同じ歳の時に行って以来なので,10年ぶりだ。かずはまったく記憶がないという。もったいないやつだ。当時は舞浜の駅とディズニーランドの間には,何もなかったのだが,今ではディズニーリゾートラインというモノレールが走っていた。
夜になって,ディズニーシーの山が火を噴くと,ほのは「こわい,こわい」とアリエルのショーの会場に逃げ込んだ。
8月15日 やっとDelphiによるタブブラウザの作成をこうしろうと始めた。DelphiではMicrosoft Internet ControlsをWebBrowserコントロールとして取り込んで,ブラウザを作成することができる(164話参照)。
今回はまず,2人で仕様を決めていく。
・ MDIフォームを使ってタブブラウザを作成する。
・ ボタンは戻るボタン(Backbtn),進むボタン(Forwardbtn),新規ボタン(Newbtn),再読込ボタン(Reloadbtn),読み込みを中止するストップボタン(Stopbtn),ホームボタン(Homebtn)とナビゲートボタン(Navibtn)を配置する。
・ URLを入力するエディットコントロール(Urledit)を設ける。
・ Urleditでエンターキーを押したら,入力されたページに移動する。
・ すべてのボタンクリック時の動作はアクティブなウィンドウに関連付ける。
・ チャイルドウィンドウを新規作成するときは最大化して開く。
こうしろうは,Opera(オペラ)やSleipnir(スレイプニール)の動きを思い出しながら,仕様を考えている。
次の場合は新規ウィンドウを開くことに決めた。
・ Newbtnをクリックした時。
・ チャイルドウィンドウが0個の状態で,UrleditにURLを入力し,エンターキーを押した場合,もしくはNavibtnを押した場合。あるいはHomebtnを押した場合。
あたり前のことでも,仕様として整理していくことで,プログラミングの道筋が見えてくる。
メニューの構成は,「ファイルと指定したURLのどちらでも開けるメニュー項目を作りたい」とこうしろうが難しいことを言ったが,冒険をせずに簡単なものにまとめた。拡張は後からでもできる。
ファイルメニュー(F)
新規ウィンドウ(N) 新しいチャイルドウィンドウを開く(about blank)
開く(O) ファイルを開く
閉じる(C) アクティブなチャイルドウィンドウを閉じる
終了(X) 終了
ウィンドメニュー(W)
重ねて表示(P)
縦に並べて(V)
ヘルプ(H)
バージョン情報(I)
ここまで決めて,プログラムを作り始めた。
新規作成-その他ープロジェクト-MDIアプリケーションを選ぶと雛形が作成される。便利なことに,このとき保存するフォルダに,存在しないフォルダを指定すると自動的に作成してくれる。
不要なメニュー項目やコントロールを削除して,ChildwindowにWebBrowserコントロールとStatusBarコントロールを貼り付けた。次に,MainフォームにCoolbarを貼り付け,その上にToolbarを2つ置いた。そして,Toolbuttonを設計に従い,配置していく。
ToolButtonの幅を決めるために,Captionプロパティに「戻る」などの文字列を入力するが,表示されない。「なんでや?」 ,「ん?」,「くたびれたな。次回までの宿題としよう」と切り上げた。