HOME | 旧TClock(日本語)| プログラミングTClock


2003/10/11

スタートボタンの改造

Windows XP対応のスタートボタンの改造を追加。プロパティは相変わらず未実装です。

tclocklight-ja-031011.zip

すっぴんの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スタイルの配色青、タスクバー横置き専用です。

スタートボタンを改造する(スキン)のテスト

2003/10/10

次回の更新では、スタートボタンの改造を追加するつもり。今日はソースをちょっといじっただけで終わり。

アイデア

プロパティ画面とタイマーは、やはり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

2003/10/09

Borland C++ Compilerでコンパイルできるようにしました。コンパイルの方法は、TClockのコンパイルを参照してください。だれだか分からないけど、ソースをBCCでコンパイルできるように改造したりMAKEFILEを書いてくれたりした人に感謝したい。

tclocklight-ja-031009.zip

無料のBCCでコンパイルできるようになったので、本日以降、私が配布するTClockはソースコードのみとします。

もちろん、だれでも、コンパイルしたバイナリをパッケージ化して配布するのは自由です。ただし、ソースコードは、同一パッケージに加えるなり、並べてダウンロードできるようにするなりしてください。

嘆かわしいことに、最近の若者はPCヲタクでさえコマンドプロンプトを知らない人が多いらしい。TClockのコンパイルにくどくど書いたから大丈夫だとは思うが……大丈夫だよね?

2003/10/08

本日はソースの更新はなし。

TClockのプログラミング解説のページを書き始めました。プログラミングTClockです。今日は推薦書籍TClockの概要をアップ。

Borland C++ Compilerでのコンパイルを研究中。

2003/10/07

本日のバージョン。昨日と見た目は変わらず(23:55ごろ同じファイル名でアップし直しました。それ以前のはバグあり)。

tclocklight-ja-031007.zip

6年前のバグを見つける

終了処理が怪しいので、シンプルに書き直した。終了時に無駄なメッセージをやり取りしていたのは、右クリックメニューがdllの中にあった昔の名残りだろう。で、終了処理をチェックしていたら、1997年に世間を騒がせた「IE 4を入れたらTClockのせいでExplorerが落ちる」問題の原因ではないかと思われることを見つけた。

メモ:TClockの終了処理

ソースの変更点

dllのtclock.cをさらに3つに分割。

main2.c 関数InitClock、EndClock、その他の初期化用関数。
wndproc.c ウィンドウプロシージャとメッセージハンドラ関数。
fitclock.c 関数FitClockのみ。

2003/10/06

とりあえず動くものができた。時計を改造するだけです。それ以外の機能はありません。設定画面(TClockのプロパティ)もありません。Borland C++でのコンパイルは確認していません。

tclocklight-ja-031006.zip

ソースの変更点

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というソースを作って、その中に書式を処理する関数を入れるようにする。

2003/10/05

今日も引き続き清書。

2003/10/04

まずは、何にも機能がないTClockを作ろうとしてソースを清書し始めたが、思ったより難航している。

2年前の汚いソースに人が手を加えたもので、しかも自分が何を書いたか忘れているので、「この部分で何をやってるの?」と聞かれても答えられないような状態である。特にdllのtclock.cがひどい。ざっと見ただけで萎え萎え。このソースを「どうぞ改良してください」というのは失礼というもんだ。

それでも、派生ソフトの作者さんたちが、私のソースコードを差し替えるのではなく、追加する形で拡張してくれているので、何とか思い出しつつ作業を進めております。

2003/10/03

あれこれ考えたこと

TClockの機能拡張について

TClockでは、ユーザーがソースをいじって拡張版を公開することを強く推奨します。ユーザーが作った派生ソフトも「TClock」です。私が今後作るTClockもTClock2chの「派生ソフト」です。

機能たっぷりのTClockがほしい方は、TClock2chを使うか、TClock2chの修正版を作るといいでしょう。私が今後作るTClockは、なるべくソースを改造しやすいように考慮した、ベーシックなバージョンとします。

今後のTClockの再配布に関しては、1つ「シバリ」を加えようと思います。TClockのソースコードをベースにして、「TClockみたいなソフト」を作って配布するときは、ソースコードの公開を義務付ける、というものです。

2003/10/02

最近、ストールマンの「フリーソフトウェアと自由な社会」を読んだら、なんだか元気が出てきたので、ホームページを再開することにします。

2年半ほったらかしにしていた間に、TClockの派生ソフトがいろいろできているようです。とりあえず、2ちゃんねるのTClockスレの過去ログはざっと読みました。

今後のTClockの予定

古い日記