プログラム
プログラムを以下に示します。
|
コンパイル
このプログラムは、sample/calc のディレクトリにあります。
このプログラムを利用する前に、トップディレクトリで make を行い、 klitcld をコンパイルしておいてください。
このプログラムをコンパイルするには、このディレクトリで make すればOKです。
コンパイルが終了すると、calc という名前の実行ファイルが出来ていると思います。
実行
まず、klitcld を実行します。これは、Tcl/Tk を実行するためのプログラムです。
% ./kltcld &のようにして、バッググラウンドで実行させるとよいでしょう。
% ./calcとすると、プログラムが動作します。
のようになります。
ここで、上の2つのエントリに適当に数字を入力し、「plus」あるいは「minus」と書かれたボタンを押すことにより,2つの数字の和あるいは差を表示します。
プログラムを終了するには、「quit」と書かれたボタンを押します。
プログラムの説明
述語 main の中は、そのほとんどが tcl_eval であり、実際の画面を作るための Tcl コマンドを実行しています。
3つのボタンを生成していますが、それぞれに klic の述語がバインドしてあり、ボタンが押されたときにはそれぞれの述語が実行されるようになっています。
述語 plus および minus は、Tcl 側から引数として 2つの数値を受けとるようになっています。
Tcl 側からの引数は、文字列のリストの形で渡されるため、呼ばれる述語側で整数アトムに変換しています(22,23,24,31,32,33 行目)。
その後、必要な演算を行ない(25,34行目)、Tcl に演算結果を渡すために文字列に変換し(26,35行目)、Tcl 命令を生成して(27,36行目)、実際に評価しています(28,37行目)。
その後、再び、次のイベント待ちに入ります(29,38行目)。
このプログラムは、エラーチェックが充分でありません。
実際のアプリケーションを作成する場合には、Tcl 側から受け取った引数についての正当性のチェックなどをする必要があります。