まどかの 日記

[2003/03/10〜2003/03/16の日記]
[2003/03/17〜2003/03/23の日記]
[2003/03/24〜2003/03/30の日記]
[2003/03/31〜2003/04/06の日記]
[2003/04/07〜2003/04/13の日記]
[2003/04/14〜2003/04/20の日記]
[2003/04/21〜2003/04/27の日記]
[2003/04/28〜2003/05/04の日記]
[2003/05/05〜2003/05/11の日記]
[2003/05/12〜2003/05/18の日記]
[2003/05/19〜2003/05/25の日記]
[2003/05/26〜2003/06/01の日記]
[2003/06/02〜2003/06/09の日記]
[2003/06/10〜2003/06/15の日記]
[2003/06/16〜2003/06/22の日記]
↑過去3ヶ月くらいの日記はこちら↑

まどかは「P/ECE Hand Book」を応援しています


0625
2003/06/29()
 低反発まくら買ってみました
 えー、今日はお昼くらいまで寝て、嫁さんと2人で近くに出来たショッピングセンターに出かけました。

 今日の目的は、とりあえず新しく出来たところを見るのと、来月に嫁さんがちょっとしたパーティに御呼ばれするので、それ用の服を買いに行きました。

 で、お昼を食べずに行ったので、とりあえず中の飲食店でちょっと遅い昼食を食べ、なんかオープン記念ということで680円のジョッキ入りパフェが100円だったので、2人で1個ずつ頼んで食べました。
 こんな大きなパフェは初めて食べましたが(っていうかパフェなんか滅多に食べない(^^;)、これくらいなら余裕だということが判りました(笑

 ご飯を食べた後は、なんかこれまたオープン記念ということで、なんか今流行り(?)の低反発枕が1個1500円で売っていたので、枕カバーと一緒に2人分購入し、それから嫁さんの服を見に行きました。

 色んな店をまわって服を決め、その後は本屋やCD屋に行って家に帰りました。

 家に帰ってさっそく枕を使ってちょっと横になり、この日記を書いて今日はおしまい。

 明日はまたC++Builderの仕事の続きです。もうそろそろ期限も近いのでがんばります。

 それでは、おやすみなさーい。

0624
2003/06/28()
 さっぱりしました(^^
 はい、今日は11時半くらいまで寝てから、地元の床屋さんを目的にお出掛けしました。

 床屋さんまでは片道2時間半くらいなのですが、のんびり向かってとりあえず雑談しながら髪を切ってもらって、その後は床屋さんのパソコンをメンテナンスして、床屋のおじさんに実家まで送ってもらい、夕飯を食べてまたのんびり家に帰りました(^^;

 実家に帰ると、この前母の日に贈った観葉植物を父親がなぜか気に入ったらしく、別の鉢がいくつか増えてました(^^; ま、喜んでもらっているようなので、別にいいんですけど。

 で、家に帰ってからは、色々歩いて疲れたのですぐに寝ました。
 
 明日は、近くにちょっと大きなショッピングセンターができたので、そこに行ってこようと思います。

 それでは、おやすみなさーい。

0623
2003/06/27()
 がんばったけど、もうちょっと
 えー、今日も引き続きC++Builderの仕事の修正をやってました。

 今日は私のネットワークに関する知識を強化するため、本屋に行って色々本を買ってきて半日くらい勉強してました。

 3冊くらい本を買ってきたのですが、やっぱり実際にネットワーク関連のアプリを作ってからだと、ここらへんの解説書を読んでもピンとくるようになりますね(^^;

 今までさらりとしか知らなかったネットワーク関連ですが、こうやって勉強してみると面白いですね。
 最近はHTTPクライアントとかもサンプルで作ったりしたので、これからはこっちの分野にも手を出していけそうです(^^

 というわけで、今日はここまで。
 明日は、先週行けなかった床屋に行こうと思います。

 それでは、おやすみなさーい。

0622
2003/06/26()
 まだまだ直すことはいっぱい
 はい、今日は昨日判明したグローバルなネットワークに関連する修正をいそいそとやってました。

 で、今日は後半先週の月曜日からうちで試験的に働くことになった同い年の女の子の歓迎会を近くの韓国家庭料理屋と、呑み屋で行いました(^^

 その子は、この業界に関してはほとんど素人とですが、コンピュータには興味があるみたいだし、要領はいいのでまあ大丈夫なんじゃないでしょうかね。
 
 そんなことより、同い年なのにこんなに歩んできた人生が違うものかとしみじみ思いました。いやぁ、すごい人生歩んでらっしゃる方です(^^;

 というわけで、今日はここまで。
 明日も修正に追われます。

 それでは、おやすみなさーい。

0621
2003/06/25()
 とりあえず接続は成功
 えー、今日は自宅のPCに今作ってるサーバソフトを入れて起動し、ルータの設定やセキュリティソフトの設定をし、会社からクライアントを接続してみました。

 まぁ、特に心配することもなかったので、全然問題なく接続は成功し、通信もちゃんとできてご満悦だったのですが、ルータで強制的に通信を切断してみたら、エラーメッセージが山のようにでるようになったり、今までクライアントはIPアドレスでクライアントを見分けていたのですが、よーく考えてみたらルータを通すと、サーバに通知されるIPアドレスはデフォルトゲートウェイのグローバルIPなので、また別の方法でクライアントを識別しないといけないということが判明し(うう、無知でごめんなさい……(j−j)、色々修正する必要が出てきました。

 というわけで、しばらくはこれらの修正に追われそうです。
 それでは、おやすみなさーい。

0620
2003/06/24()
 色々判ってきました(^^
 はい、今日も昨日に引き続きC++Builderの仕事でXPで起こるTListViewの表示の不具合を直すべく、いろいろ調べていました。

 で、判ったことは、WM_NOTIFYというのはいわゆる子コントロールが親コントロールに対して通知する際に使用するメッセージのことで、このWM_NOTIFYのメッセージフォーマットを利用して色々な状態を子から親へと通知しているわけです。

 で、親コントロールがこのWM_NOTIFYを解析することで、子コントロールの状態を把握したり、その状態に合わせて何かの処理をすることができるというわけ。

 ということは、TListViewをサブクラス化してこのWM_NOTIFYを処理し、カラム幅の変更時にTListViewに対して正しいカラム幅を設定してやればすべてうまくいくんじゃないか!?

 ……やってみましたが、おしくも結果はだめでした(j−j

 実際このやり方でもドラッグ時のカラムの幅を正しく取得することはできますが、それをTListViewのColumnプロパティに設定しても、そこで余計な再描画処理が発生してしまい、見た目にさらにおかしい状態になってしまいました。

 で、今のやり方をちょっと変えて、Columnプロパティに値をセットせずに、自分でカラムの幅を管理する配列を造って、再描画時にはそれからカラム幅を参照してやれば全て上手くいくんじゃないのでしょうか。
 いえいえ、ちょっと待ってください。

 そんなことしなくても、よーく考えてみると、WM_NOTIFYがTListViewに飛んでくるということは当たり前ですが、TListViewにカラム幅を変更した時にWM_NOTIFYメッセージを飛ばす子コントロールが存在するわけで、カラムに関係する子コントロールって言ったら、ヘッダコントロールですよね。

 ここまで判ってきたら話は簡単で、再描画時には毎回このTListViewにくっついているヘッダコントロールに対して、現在のカラムの幅を問い合わせればドラッグ時の幅も手に入るってなもんですよ。

 で、問題はそのヘッダコントロールのウインドウハンドルを得るメッセージと、カラム幅を取得するメッセージがあるかどうかなんですが…… 案の定と言うか当然と言うか、ありました(^^

 ヘッダコントロールのウインドウハンドルを取得するにはLVM_GETHEADERというメッセージをListViewに対して送り、そのヘッダコントロールのカラム幅を問い合わせるには、ヘッダコントロールに対してHDM_GETITEMRECTを送ってヘッダの矩形情報を取得すればカラムの幅を調べることができます。

 というわけで、この2つのメッセージを使って、無事XPでもちゃんと表示されるリストを作ることに成功しました(^^; いやぁ、XPだけ表示がおかしくて、TListViewのイベントやプロパティじゃどうにもならない問題だっただけに、一時はどうなることかと思いましたが、なんとかなるもんですね(汗

 さて、この一番厄介だと思われる不具合が克服できたので、次はいよいよADSLでのテストに入ります。
 それでは、おやすみなさーい。

0619
2003/06/23()
 なんとか回復しました(^^;
 えー、今日は昨日、一昨日とちゃんと寝込んだおかげで、体調もなんとか元に戻り、普通に仕事をすることができました。

 で、今週もC++Builderの続きで、アプリの方はもうだいたい出来てきたので、今日はTListViewのXPで表示がおかしくなるバグを直しにかかりました。

 そのXPでのバグというのは、TListViewをオーナー描画で書き換えた時に、OnDrawItemイベント時にプロパティのカラムの幅を参考にサブアイテムを描画していくのですが、カラムの幅をドラッグして変更した場合に、TListViewクラスのプロパティからだと変更中のカラム幅が正しく取得できずに、幅変更前のカラムの位置にサブアイテムが描画されておかしく見えてしまうのです(j−j

 そもそも、こんな現象がXPだけで起こるというのは、2000までのTListViewだとカラムの幅をドラッグ時にはドラッグ時のカラム幅で再描画が発生しないのに、XPだけ再描画が発生するからで、XPからいきなり挙動が違っているからなんです。

 というわけで、今日はこの表示の不具合に対応するために、まずはVC付属のSpy++を使ってカラム幅変更時にどんなメッセージが発行されているかを調べることにしました。

 で、早速見てみたのですが、なんかWM_NOTIFYっていうのがTListViewに向かっていっぱい発行されてて、これが何を意味するのかはさっぱりわかりませんが、とりあえずこれをトラップすればなんとかなるかなと思い、さっそくTFormでのメッセージトラップのコードを書いてみましたが、よくよく考えるとこのWM_NOTIFYというメッセージは、TListViewからTFormに対してではなく、何かからTListViewに対して送られてくるものなので、TFormでメッセージをどうこうということはできないんですね(--;

 でも、このメッセージが何かの手がかりになるのは確かそうなので、しばらくこれについて調べてみることにしました。

 というわけで、今日はここまで。

 実は、今日この前うちの会社を見学に来た私と同じ専門学校の後輩が試験を受けに来ました。
 で、一応普通に試験を受けてもらったのですが、持ってきてもらった作品をみんなで見たところ、結構がんばって作ってあったので、これでほぼ内定決定ということになりました。

 明日はWM_NOTIFYについていろいろ調べる予定です。
 それでは、おやすみなさーい。