netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2004-09-30 古い日記からの変換データ [長年日記] ▲
_ [hyCalendar] 追加機能 ▲
hyCalendar に対する機能提案をいただいた. 1. 月をまたがっても連続して変化していくようなカレンダー表示 特定日を中心に前後1ヶ月のような表示方法.月単位でタブ表示をしているのだが,各タブごとに「表示基準日」を持っているので,うまく新しいタブを生成する方向に持っていけば作れなくはなさそう.本当はスクロールバーやボタンなど,ちょっとした動作でカレンダーが一週間単位でずれる,というのが理想だったりするのだが. 2. 検索ボタンでの前へ移動 実は「次へ移動」しかサポートしてなかったりするので,これは素直に対応したほうがよさそう.ツールバー的にも,前に戻るボタンを付けるだけでいけるので簡単. 3. 期間予定のカレンダーの何日後・何日前が欲しい 開始日を基点に,n 日間 (0日なら当日終わり,負なら過去)で情報を設定する方法.これはユーザインタフェース的には簡単だし妥当な設定.GUIのコンポーネント配置的にも何とかなりそうなので対応してよさそう. 4. フリーメモのポップアップ若しくは表示・非表示 とりあえずフリーメモエリアを消せるようにはなったのだが,別ウィンドウとしての表示(あるいはショートカットでの切り替え)というのには対応してない.テキストの同期が面倒だから.フリーメモの表示・非表示切り替えにショートカットキーでも割り当てておこうか.とりあえず優先度は高くない. 5. 期間予定のカレンダー・表示セレクトカレンダーを月曜スタートに. 日付入力欄が表示するミニカレンダーは,日曜開始で固定されている.月曜開始オプションを有効にしたときは月曜始まりで表示したい,というもの.プロパティがないので無理かなーと思っていたら, http://www.sugi-family.net/papanvb/vbnet_tips.asp?cate=23&tips=23001に方法が書いてあった. DropDown イベント時にカレンダーが生成されるので,DTM_GETMONTHCAL メッセージでカレンダーオブジェクトのハンドルを奪ってきて,MCM_SETFIRSTDAYOFWEEK メッセージで開始日付をセットできる. VB用のものをDelphiに書き換えると次のような感じ.procedure TForm1.DateTimePicker1DropDown (Sender: TObject); var handle: THandle; begin handle := DateTimePicker1. Perform(DTM_GETMONTHCAL, 0, 0); if not (handle = 0) then begin // 火曜日始まりにする例 SendMessage(handle, MCM_SETFIRSTDAYOFWEEK, 0, 1); end; end;