HOME | 旧TClock(日本語)| プログラミングTClock
Windows XP対応のスタートボタンの改造を追加。プロパティは相変わらず未実装です。
すっぴんのWindows 95では、スタートボタンを改造するとTClockの終了時にExplorerが落ちるという問題があります。
ソースをXP用に改良してくれた人には申し訳ないのですが、TClock2chのソースstartbtn.cのXP対策の部分はほとんど削除して、シンプルな処理にしました。
設定画面は次のようにする予定。

「スタートボタンを改造する(クラシック)」は、今までのものと同じく、灰色の四角いボタンにアイコンとキャプションを載せます。
「スタートボタンを改造する(スキン)」は、ビットマップをボタン全体の表示に使います。Windows XPでテーマを設定している人のためのものですが、クラシックスタイルやXP以外のWindowsでも使えます。
「スタートボタンを改造する(スキン)」をテストするには、INIファイルのMainセクションに次のような行を加えてください。
StartButtonSkin=1 StartButtonBmp1=C:¥tclock¥kao1.bmp StartButtonBmp2=C:¥tclock¥kao2.bmp StartButtonBmp3=C:¥tclock¥kao3.bmp
テスト用画像:TClock Lightには透過させて描画する機能はないので、この画像はWindows XPスタイルの配色青、タスクバー横置き専用です。
次回の更新では、スタートボタンの改造を追加するつもり。今日はソースをちょっといじっただけで終わり。
プロパティ画面とタイマーは、やはりtclock.exeから切り出して別のexeにする。言語モジュール形式はやめ、リソースは各exe内に入れる。TClock英語版は、tcprop_en.exeとtctimer_en.exeが付いてるTClock、という感じになる。
しかし、そうするとプロパティの「時刻合わせ」で結果を表示させる処理が面倒くさくなるなあ。
右クリックメニューは、テキストファイルから読み出して作る。次のような感じ。ユーザーは自由にカスタマイズ可能。各行は「表示文字列(スペース)コマンド」とし、コマンドが数字だけだったら内蔵の機能を呼び出し、数字以外の場合はファイルを開く。
#コメント行 日付と時刻の調整 408 重ねて表示 403 (中略) ------- タイマー tctimer_ja.exe #Timer ここに残り時間表示 ------- TClockのプロパティー tcprop_ja.exe TClockのヘルプ http://homepage1.nifty.com/kazubon/tclock/help/ja/ TClockの終了 102
Borland C++ Compilerでコンパイルできるようにしました。コンパイルの方法は、TClockのコンパイルを参照してください。だれだか分からないけど、ソースをBCCでコンパイルできるように改造したりMAKEFILEを書いてくれたりした人に感謝したい。
無料のBCCでコンパイルできるようになったので、本日以降、私が配布するTClockはソースコードのみとします。
もちろん、だれでも、コンパイルしたバイナリをパッケージ化して配布するのは自由です。ただし、ソースコードは、同一パッケージに加えるなり、並べてダウンロードできるようにするなりしてください。
嘆かわしいことに、最近の若者はPCヲタクでさえコマンドプロンプトを知らない人が多いらしい。TClockのコンパイルにくどくど書いたから大丈夫だとは思うが……大丈夫だよね?
本日はソースの更新はなし。
TClockのプログラミング解説のページを書き始めました。プログラミングTClockです。今日は推薦書籍とTClockの概要をアップ。
Borland C++ Compilerでのコンパイルを研究中。
本日のバージョン。昨日と見た目は変わらず(23:55ごろ同じファイル名でアップし直しました。それ以前のはバグあり)。
終了処理が怪しいので、シンプルに書き直した。終了時に無駄なメッセージをやり取りしていたのは、右クリックメニューがdllの中にあった昔の名残りだろう。で、終了処理をチェックしていたら、1997年に世間を騒がせた「IE 4を入れたらTClockのせいでExplorerが落ちる」問題の原因ではないかと思われることを見つけた。
dllのtclock.cをさらに3つに分割。
| main2.c | 関数InitClock、EndClock、その他の初期化用関数。 |
|---|---|
| wndproc.c | ウィンドウプロシージャとメッセージハンドラ関数。 |
| fitclock.c | 関数FitClockのみ。 |
とりあえず動くものができた。時計を改造するだけです。それ以外の機能はありません。設定画面(TClockのプロパティ)もありません。Borland C++でのコンパイルは確認していません。
exeのmain.cは3つに分割した。
| main.c | 中身はWinMainだけにした。TTBase用のDLLを作る人は、このソースに手を加えてください。 |
|---|---|
| main2.c | WinMainから呼び出される関数TclockExeMainと、その他の初期化関数。 |
| wndproc.c | ウィンドウプロシージャ。 |
dllのtclock.cは次のように2つに分割。main.cはほぼそのまま。
| tclock.c | 初期化と終了用の関数、ウィンドウプロシージャ、その他あれこれ。 |
|---|---|
| draw.c | 時計の描画の処理。描画を拡張する人は、このソースをいじること。 |
dllのformat.cは2つに分割。
| format.c | 書式処理の中心となる部分。TClockのソースの中でもかなりみっともない関数MakeFormatでは、長大なifを並べるのではなく、書式の種類ごとに関数を呼び出すようにした。 |
|---|---|
| formattime.c | 書式のうち、時間に関するものの処理。書式を拡張したい人は、formatxxx.cというソースを作って、その中に書式を処理する関数を入れるようにする。 |
今日も引き続き清書。
まずは、何にも機能がないTClockを作ろうとしてソースを清書し始めたが、思ったより難航している。
2年前の汚いソースに人が手を加えたもので、しかも自分が何を書いたか忘れているので、「この部分で何をやってるの?」と聞かれても答えられないような状態である。特にdllのtclock.cがひどい。ざっと見ただけで萎え萎え。このソースを「どうぞ改良してください」というのは失礼というもんだ。
それでも、派生ソフトの作者さんたちが、私のソースコードを差し替えるのではなく、追加する形で拡張してくれているので、何とか思い出しつつ作業を進めております。
TClockでは、ユーザーがソースをいじって拡張版を公開することを強く推奨します。ユーザーが作った派生ソフトも「TClock」です。私が今後作るTClockもTClock2chの「派生ソフト」です。
機能たっぷりのTClockがほしい方は、TClock2chを使うか、TClock2chの修正版を作るといいでしょう。私が今後作るTClockは、なるべくソースを改造しやすいように考慮した、ベーシックなバージョンとします。
今後のTClockの再配布に関しては、1つ「シバリ」を加えようと思います。TClockのソースコードをベースにして、「TClockみたいなソフト」を作って配布するときは、ソースコードの公開を義務付ける、というものです。
最近、ストールマンの「フリーソフトウェアと自由な社会」を読んだら、なんだか元気が出てきたので、ホームページを再開することにします。
2年半ほったらかしにしていた間に、TClockの派生ソフトがいろいろできているようです。とりあえず、2ちゃんねるのTClockスレの過去ログはざっと読みました。