あまつぶ

8.26 【そろそろ限界か?】

 ピリオドロックのことを書いたのは去年の12.7だった。Sherlockの索引がやっとできたので検索してみたら見事に見つけてくれた。えらい。
 しかし、本当にそろそろだめかも知れない。文章を打っていても、ソースを書いていても、いらいらして仕方がない。「posList->prev->next=posList->next;」なんてのを打った時には気がくるいそうになってしまった(笑)。思いきり押さないと反応してくれないし、かといってあまり押し過ぎると「>>>>>>」とかなってしまうし。文末の「。」くらいなら他の文字で代用できなくはないが、ピリオドや不等号は、ねぇ。>じゃ無理やし。

 そういえば、4連勝しているんだそうな。いつ以来なのかわからないけど、とにかくめでたい。最下位あらそいだったりするから新聞の記事がなかったりするけど、まあしかたないんか(^^;;

 上にちょっと書いた「posList...」ってのを見るとわかるように、双方向リストを処理するプログラムを書いた。Phutで、起動中のアプリケーションを管理する機能をつけるため。起動中のアプリケーションリストを内部で管理して、なにかアプリケーションが増えたり減ったりした時に画面も含めて更新してやるという方法。いろいろ考えたけどこれが一番処理に時間がかからないかな。ま、比較検討したわけじゃないからなんともいえないけど、うちで動作テストしている分には快適だ。しばらく使ってバグが見つからなければ、そのうち新しいバージョンをリリースできるかと思う。
 そういえば、1つバグがあって修正した。色のパターンをポップアップメニューで選択できるようにしたのだけど、何度かメニューを表示させると内容がおかしくなってしまうというもの。ダイアログのポップアップメニューにアイテムを追加したり削除したりするのってなかなかややこしい。適当にやればなんとかなるんだけど、本当にこれでいいのか? って聞かれるとあまり自信がない。

 まず、ダイアログを表示する前にGetMenu()でリソースからメニューを作る。メニューが空でいい場合はNewMenu()で作っても問題ないかな。IDが他のメニューと重ならなければ。
 そして、必要なアイテムを追加して、ダイアログを表示。あとは特になにもする必要はないのだけど、ダイアログを消したあとにReleaseResource()を呼んでやる必要があるんだろうか。IMによれば、NewMenu()で作成したメニューはDisposeMenu()で破棄、GetMenu()で作成したメニューはReleaseResource()で破棄しろということらしいのだが。また、GetMenu()は1つのメニューにつき1回しか使用せず、あとはGetMenuHandle()を使えと書かれていたが、ダイアログのポップアップメニューではどうしたらいいんだろう。もうひとつ、DeleteMenu()は呼ぶ必要があるのかというのも謎だ。InsertMenu()を呼んでいなければ必要ないのかなぁ。
 素直に考えるとダイアログを表示したあとにGetMenuHandle()でメニューを取得してアイテムを追加……という流れじゃないかと思うんだけど、それではどうもだめらしい。このあたりのことをまとめて書いてあるドキュメントがあるとうれしいんだけど、メニューマネージャにもコントロールマネージャにもそれらしい説明はなし。ダイアログマネージャは、、まだチェックしてないや。

to August 24, 1999 ↑ to August index → to August 27, 1999