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

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

キーの二度押し防止処理(HandleEventがあるよーなもので)

2006-04-05 19:22:59 | 開発ネタ

 つーことは、なにか。。。
 (BREWにかぎらず)HandleEvent(非同期に、イベントがあがると入ってくるルーチン)があるよーなやつで、キーの2度押しを防止したい場合は、こうやるのかなあ。。

(1)アプリ全体が見える共通領域に、キーの2度押し防止フラグ
      (以下フラグとします)をつける
(2)2度押しされたくない状況に来たら、フラグON!
(3)もう、押されてもいいよというところにきたら、フラグOFF!

こーすると、HandleEventの中では、
・フラグONで、かつ、キーイベントなら、なにもせんでぬける
・OFFのときだけ処理する

で、できるような気がするニャー。

こんど、ためしてみよう!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

業務アプリを組む場合はOKなんだけど、そーじゃないのだと、致命的エラーになるケース

2006-04-05 18:27:40 | Weblog

 ウィリアムのいたずらは、業務アプリはまだしも、組み込みとかはしたことない(ケータイも組み込みならやってるけど、ケータイ以外はない)

 業務アプリの世界では、そのモジュールで使う直前まで、変数をセットしなくても、問題はない。

つまり、(これをAのケースとする)
(1)画面を構成する部品を生成する
(2)その間ずーと、その部品に変数を設定する
(3)モジュールからぬけるときに、アプリ全体の構造体に、画面を構成する部品をセットする。
これでもOK。

そして、(これをBのケースとする)
(1)画面を構成する部品を生成する
(3)直後に、アプリ全体の構造体に、画面を構成する部品
(2)その後、その部品に変数を設定する
これもOK




 でも、組み込みやスレッドが動く場合は違ったりする。

 こういう動きをするから。
Aのケースで
・メモリをとった後、その部品を生成したとする。
・生成されると、「できたよ」というイベントが飛ぶ
・このイベント関数は、クラス全体の構造体を受け取る
  。。。が、この時点では、その生成した部品はセットされていない。
 ので、死ぬ。

って言うことがありえる。

つーことで、Bのやりかたでないといけない。。
うーん、なんつーことは、業務アプリしかやらないウィリアムのいたずらは、あまり考えないことなのだな(^^;)
 

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

BREWで複数画面(複数の開発者)に分かれる場合の開発方法

2006-04-05 14:32:06 | ケータイ

 BREWで複数画面(複数の開発者)に分かれる場合の開発方法について、ちょっと最近、考えが変わりました。

 BREWでアジャイル!みたいなことをかいていたときは、
1.全体のコントロール(アプリのプログラム)をつくる
2.それをもとに、各個別のプログラムをつくって
3.つなげる

だけど、これだと、開発者単位、個別の単位で、きりだせない。

デバッグとかで、こまる。




なので、こんなかんじのほうがいいのかと

1、全体のコントロールを作る(ここまでの手順)っていうところは、おなじなんだけど、

2.各画面、各開発担当者ごとには、あるきまり(きまりは、こんなかんじ)をつけるけど、基本的に、その画面単体でかいはつできるようにして

3.そいつを組み込む(インターフェース部分は、ダミー関数を使ってもらっていて、ほんちゃん環境だと、本ちゃん関数になり、つながると)





 で、画面間をつなげるインターフェースとして、

クラスの構造体(pMeでかくやつ)の中に
savedata=>コントロールのクラスのデータが入ってる
comdata=>画面間共通データ

がはいっていて、

 各画面の終了で、ISHELL_CloseAppletのかわりになにか関数をよんでもらい、その関数内で、次の画面を用意するっていうかんじ(単体テストするときは、その関数に、ISHELL_CloseAppletがはいってる)

ってなかんじのほうが、いいのかなあ。。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする