ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

BREWアプリで、HTMLで画面入出力して開発を効率化しようとしたときに知らないといけないこと

2006-01-13 22:45:32 | ケータイ

 昨日の話のつづき、

■■ 昨日までの話のあらすじ

 BREWアプリは、HTMLファイルを読み込み、これによって画面入出力ができる。
 これを使えばHTMLファイルを使って画面を作成できるため、開発は効率化する。
 しかし、このHTMLファイルを使って画面を作成する関数IHTMLVIEWERについて、以下のことをやりたくても、その情報が公開されていない。

(1)ふつう、画面って、項目間のカーソル制御とか、やりたいよね。
(2)あと、スクロールがあるから、スクロールもさせたいし、
(3)イベントをとってきて何か検索して、その結果を項目に反映させたりしたい。
(4)さらには、かな漢を、ここは数字とかここはカナも、とかしたい。

ここで、(1)から(3)について、まず考える。
これを実現するには、
以下のようにおこなう

1.IHTMLVIEWER_GetViewState()を発行して、現在の画面状態を取得する
2.その値を加工する(スクロール量をきめたり、次のフォーカスを変えたければ変えたり)、項目値を変えたり
3.IHTMLVIEWER_SetViewState()を発行して、その加工した値をセットする。

さて、ここで、実際に行うには、IHTMLVIEWER_GetViewStateとIHTMLVIEWER_SetViewStateの関数の引数について、わからないといけないが、これについての説明が不十分だ。

 この引数のうち、わからないのはたぶん、「HTML ビューアの状態 をあらわす文字列」というやつ。ほかの引数は理解できるはず。

 で、この引数のフォーマットは、以下のとおり

カーソルのTOPの位置,現在フォーカスのあたっているところ?項目名=値&項目名2=値

 このうち、?以降の「項目名=値&項目名2=値」は、CGIのGetの引数と同じ形(漢字は16進にするのも同じ)。なので、説明は要らない。公開されていないのは、「カーソルのTOPの位置」と「現在フォーカスのあたっているところ」だが、カーソルのTOP位置は、画面のY座標の相対座標なので、これもOK.
 で、今日説明するのは、「現在フォーカスのあたっているところ」の中身について。




<<おことわり>>

 以下の内容は、(また、上記の内容、昨日の内容も)ウィリアムのいたずらが、主にシミュレーターを使って解析したものであり、KDDIやメーカーの情報を受け取って知ったものではありません。したがって、解析不十分で間違っている可能性は十分あります。
 さらに、端末によって、違う動きをする場合があります。シミュレーターと実機は動きが違うところがあります。その点、ご注意ください。

 この内容を参考に開発を行う場合は、あくまで、自己責任でやってください。

 つーか、BREWアプリを作るのなら、かならず実機で確かめるべきっす!!




■■ 「現在フォーカスのあたっているところ」の2種類の意味
 少なくとも、現在フォーカスのあたっているところには、2種類の意味がある。

(1)HTML上、inputタグ、selectタグで書くもので、これは、IDと一致する。

 IDの取得は、IHTMLVIEWER_FindElemの関数でできる
 なお、この関数で、種別を指定する場合は、
"input"とか、"a"とか"select"で指定する。つまり、1行テキストも、サブミットのボタンも、inputタグなので、どちらもinputで指定する(位置は、これらの通し番号になる)

(2)aタグは、IDと一致しない。
 この場合は、<A HREF=abc>のように書く場合、(AのほかにHREF属性しか指定しない場合)、ID+HREF属性の長さが、このフォーカスの当たっているところの指定となる。
 たとえば、IHTMLVIEWER_FindElemの関数で100と返ってきて、<A HREF=abc>と書いていた場合、100+STRLEN("HREF=abc"); (この大文字で書いたのは、わざと。)の値になる。
"HREF="も、長さに含まれるところに注意。

 上記(1)ないしは(2)の値を指定する。なお、(1)の値+2にすると、項目の2バイト目にいくのかというと、そんなことはなく、不正な値を指定すると、カーソルは表示されないか、へんなところにいく。

 また、スクロール量が足りず、項目が「完全に」表示されている状態でないと、カーソルは、画面に表示している一番上の項目にフォーカスがいく「ことがある」。
 



 で、あと、2つの話題を説明すると、かけると思う。

 1つは、<FORM>タグの指定方法、

 もうひとつは、HandleEventで上がってくる返り値
 この値にTRUEを返すかFALSEを返すかで、システムのデフォルト処理(かな漢の表示など)を行ったり、行わなかったりできるようになる。

ただ、この2つを説明する時間が今ないので、またこんど。



この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ナンバーポータビリティのメ... | トップ | GUIは、いちいちカスタマ... »
最新の画像もっと見る

ケータイ」カテゴリの最新記事