昨日は22時半くらいに就寝。少し寝つきが悪くなった。最近妻が体調を崩して早くに寝てしまっているので、マッサージをしてもらってないからかもしれない。でも夜はそこそこ眠れて、朝は7時に起床。
朝起きたときは割と元気だったのに、午前中に少しだるくなってきた。何時くらいからだろうか、ちょっと横になっていて起きたら10時くらいになってしまった。寝てしまったのだろうか。あまり覚えてない。ちょっと調子は低いようだ。
プログラミングの続き。ツールバーを作って見たのだが、これらもそのボタンが使える状態のときだけアクティブにして、そうでないときはボタンを押せないようにしようとした。しかし、どのタイミングでコントロールすればいいかわからない。
メニューやコンテキストメニューでは、そのメニューが表示される直前のイベントで行っている。しかし、ツールバーは常に表示されているので、どのイベントを拾ってコントロールすればいいのか。「コピー」とか「切り取り」とかは、テキストフィールドを持つ全てのコントロールで何らかのイベントを拾えば制御できそうだが、「貼り付け」はクリップボードが空かどうかで判断するのに、他のアプリで何らかのテキストをコピーして戻ってきたらアクティブにならないといけない。
とか書いているうちに、なんだかんだやっていたらできてしまった。全てのテキストフィールドを持つコントロール(4つなんだけどね)でKeyUpとMouseUpのイベントを拾って処理、それからメインフォームのEnterイベントを拾って「貼り付け」ボタンの制御ができた。
昼過ぎまでたんたんとそんなことをやっていたが、なんだか今日は低い。少しだるいし眠いし頭がぼ〜っとしている。無理は禁物だ。
たんたんとデバッグをする。昨日実装した検索と置換機能は、いろいろ試しているとバグだらけのことがわかった。これは検索ダイアログをモードレスにしており、検索中でもメインのウィンドウを選択できるようにした(これは自分の好みだが、その方が使い勝手がいいと思っている)のと、検索対象がテキストの最初の1文字とか最後の1文字の場合に考慮漏れがあったのが原因だが、デバッグついでに機能を追加した。「上へ」「下へ」と検索方向を指定できるが、一番上または一番下に行ったら、自動的に最後尾や先頭から戻って検索するようにした。
そしてついでに、配置したはいいが使ってなかったステータスバーに「最後まで検索したので最初に戻りました」とか出すようにしたのだが、出したら消すタイミングがわからない。ずっと出っぱなしである。検索画面をモーダルにしていれば、その検索画面のコントロールだけのイベントをハンドリングしてステータスバーをクリアすればいいのだが、検索画面を出したままメイン画面も操作できるので、う〜ん、メイン画面のEnterイベントでクリアするか。でもステータスバーには今まで手を抜いてきたけど、これからいろいろなタイミングで表示する機能を作り込んで行きたいと思っているから、それだけじゃだめだな。もうちょっと考えよう。
昨日、今日と久しぶりに夕食を作った。昨日はチャーハンとイカステーキ、今日は鮭のムニエル。最近ちょっと妻の体調がよくないので、PCの前にかじりついてばかりじゃいかん、と思って作ってみたが、料理も楽しい。
それにしても昨日スーパーで見つけた「イカステーキ」はちょっとした初体験だった。こんにゃくみたいな大きさの直方体のイカが「広告の品」と書かれてスーパーに鎮座していたのだ。なんじゃこれ?と思って買ってみた。しかしどうやって調理していいかわからない。ステーキっつーくらいだから焼けばいいだろう、と思って、塩コショウしてごま油で焼いて、最後に醤油を少し垂らして香りをつけてみた。それをナイフとフォークで切って食べる。正にステーキであった。ちょっと屋台チックな料理になってしまったが、なかなかいける味だった。これからも独創的な料理を編み出してみよう。人生には冒険が必要だ。