はじめよう

用意するもの

Tclスクリプトを書いて、実行するのに最低限必要なものです。

ちょっとだけやってみましょう

ボタンがクリックされたら、「こんにちは」というメッセージボックスが出るようにしてみましょう。

button .b -text {押してね} -command {
    tk_messageBox -message {こんにちは}
}
pack .b
たったこれだけです。

これをコピーしてwishのなかに貼るだけで実行できます。
Windows環境なら、wishはスタート→プログラム→Tcl→Wishで起動します。

wishの画面
トップレベルメッセージボックス

どうですか? 簡単でしょう?
-command」が「ボタンがクリックされたら...」という意味で、
tk_messageBox」がメッセージボックスを出すコマンドです。

参考までに、wishよりも高機能なTkConというコンソールもあります。
ヒストリ機能やログの保存機能などが便利ですよ。

tkconの画面

今度はテキスト・エディタの出番です

wishにコピーして貼るだけとは言っても、それはプログラムが短い時の話です。
普通は、テキスト・エディタでスクリプト・ファイルを作成して、それを実行します。
wishのFile→Source...からスクリプト・ファイルを指定して実行できますが、
普通は、wishの引数にスクリプト・ファイルを指定して実行します。
Windows環境なら、スクリプト・ファイルに .tcl 拡張子を付けておくと、
エクスプローラでスクリプト・ファイルをダブルクリックして実行できます。

エクスプローラ

注意としては、button.tcl のようにTkのWidget名をファイル名にしてはいけません。
理由を説明すると長くなるので、とりあえず、そうゆうものだと覚えておいてください。(^^;)

動かしてエラーが出たら直す

普通は、オリジナルのスクリプトを初めて書いて、一発で動く人はほとんどいません。
かなりのベテランでも、新しい言語でエラーの無いものを仕上げるのは難しいものです。
何度も書いては動かし、エラーを見つけて直して、動かしてと繰り返してやっとまともなものが出来上がります。
そうしている間にいろいろなコマンドや言い回しやその言語のクセを習得し、
だんだんエラーの無いものがずっと書けるようになるわけです。

Tclのよいところのひとつはこの作業が簡単にできることです。
テキスト・エディタで書いたら、あとはwishで実行すれば動くかどうか即座にわかります。
エラーが出たら、テキスト・エディタですぐに直してまた、wishで動かしてみられるというわけです。

この作業はデバッグと呼ばれています。Tclではエラーダイアログが出ますので、

エラーダイアログ スタックトレース

どこでエラーが起きたのかはおおよその見当はつけられますが、どの場所と特定できないケースも結構多いものです。
そんな時は、メッセージボックスを表示させて変数の内容を表示したりしてデバッグします。
もっと効率よくデバッグしたいときは、RamDebuggerのデバッガを使ってみるとよいでしょう。