Windows XP

2001年11月16日、Windows XPが日本でも発売になりました。
早速、Windows XPでTcl/Tkの動作確認と性能評価を行いました。
また、Windows XPの新しいXPスタイルのGUIについても検証しました。

動作確認

ActiveTcl8.3.4.1の動作確認を行いました。今のところ、問題なく動作しています。
ただし、アンインストール途中で失敗するため、手動でファイルを削除する必要があります。
レジストリは消えていると思われるので、あまり問題はないと思います。
Tcl/Tk8.4についても動作確認を行いました。こちらも今のところ問題ありません。

性能評価

簡単ではありますが、自作のTkEngineとスクリプトで性能測定しました。

Windows MeとWindows XPのTkEngine値に差はありませんでした。
描画性能は互角といったところでしょうか。

環境TkEngine値
Windows Me
Pentium3 800MHz
31
Windows XP
Pentium3 800MHz
31

以下のコードで性能測定をしてみました。

time {for {set i 0} {$i < 10000} {incr i} {set ary($i) $i}}

配列の操作は、Windows XPの方がかなり速いという結果になりました。
Windows XPの方が、メモリ効率が良いのかもしれません。

環境実行時間
Windows Me
Pentium3 800MHz
0.6秒
Windows XP
Pentium3 800MHz
0.1秒

XPスタイルのGUI

Windows XPからXPスタイルの新しいGUIに生まれ変わりました。
古い95スタイルのGUIにも変更できますが、デフォルトはXPスタイルになります。

XPスタイルのGUIにするには、アプリケーションを若干修正する必要がありますが、
実は、.manifestというファイルを作成するだけで簡単に対応できることはあまり知られていません。
具体的には、wish83.exeに対して、wish83.exe.manifestというファイルを作成するだけです。

.manifestの例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description></description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

試しに、wish83.exeのある場所にwish83.exe.manifestを置きます。
wish83.exeを起動すると、XPスタイルのTKが動作するはずですが、
よく見るとスクロールバー以外は旧95スタイルのままになっています。

どうもTkだけはどうしても言うことを聞いてくれません。なぞです。(^^;)
とりあえず、完璧なXPスタイルは、Tcl/Tk8.4まで待たなければなりません。
ちなみに、tcl_platform(user)は、日本語のユーザ名なので化けています。

その他、XPスタイルになるTkのダイアログです。
ファイル系のダイアログは、また巨大化してしまいました。

tk_getOpenFile

tk_getSaveFile

tk_chooseDirectory

tk_chooseColor

tk_messageBox

参考文献