Archive for the ‘Tcl’ Category

  1. Hello, Tcl/Tk World!

    Posted on 5月 11th, 2013 by cx20

    Tcl/Tk

    Tcl はシンプルな構文を持つスクリプト言語である。名前は「ツールコマンド言語(Tool Command Language)」に由来する。
    Tcl スクリプト用の GUI ツールキットとして Tk が開発され、バンドルされたものを Tcl/Tk と呼ぶ。Tk の人気は高く、Tcl/Tk 以外に Perl/Tk、Ruby/Tk と言った他の言語にも移植されている。

    ソースコード

    wm title . "Hello, World!"
    wm geometry . "640x480"
    label .label -text "Hello, Tcl/Tk World!" 
    pack .label -side top -anchor w

    実行方法

    $ wish ./hello.tcl

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Tcl/Tk World!                      |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  2. Hello, Windows Forms(Tcl/CSharp) World!

    Posted on 3月 31st, 2013 by cx20

    Windows Forms(Tcl/CSharp)

    Windows フォーム(Windows Forms)は .NET Framework におけるユーザーインターフェイス基盤である。Windows アプリケーションにおけるウィンドウやダイアログに対応する。
    以下は Tcl/CSharp における Windows フォーム の例となっている。

    ソースコード

    package require java
     
    java::load -gac System.Windows.Forms.dll
    java::import -package System.Windows.Forms Form Application Label
    set form [java::new Form]
    java::prop $form Text "Hello, World!"
    java::prop $form Size [java::new System.Drawing.Size 640 480]
    set label1 [java::new Label]
    java::prop $label1 Text "Hallo, Tcl/CSharp World!"
    java::prop $label1 Size [java::new System.Drawing.Size 320 20]
    [java::prop $form Controls] Add $label1
     
    java::call Application Run $form

    コンパイル方法

    C:¥> tclsh Hello.tcl

    実行結果

    +------------------------------------------+
    |Hello, World!                    [_][~][X]|
    +------------------------------------------+
    |Hello, Windows Forms(Tcl/CSharp) World!   |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  3. Hello, Tcl/CSharp World!

    Posted on 3月 27th, 2013 by cx20

    Tcl/CSharp

    Tcl/CSharp は Tcl の Java 実装である「Tcl/Java」の C# 移植版である。

    ソースコード

    puts "Hello, Tcl/CSharp World!"

    ソースコード(.NET ライブラリを使用)

    package require java
    java::call System.Console WriteLine "Hello, Tcl/CSharp World!"

    実行方法

    C:¥> tclsh hello.tcl

    実行結果

    Hello, Tcl/CSharp World!
  4. Hello, COM(Tcl) World!

    Posted on 3月 15th, 2013 by cx20

    COM(Tcl)

    COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
    COM を用いて開発された部品であれば言語を問わず利用することができる。
    以下は Tcl にて TWAPI ならび tcom を用いた COM クライアントの例となっている。

    ソースコード(Tcl + TWAPI)

    package require twapi
    set shell [twapi::comobj "Shell.Application"]
    set folder [$shell BrowseForFolder  0 "Hello, COM(Tcl) World!" 0 36 ]

    ソースコード(Tcl + tcom)

    package require tcom
    set shell [::tcom::ref createobject "Shell.Application"]
    set folder [$shell BrowseForFolder  0 "Hello, COM(Tcl) World!" 0 36 ]

    実行方法

    C:¥> tclsh hello.tcl

    実行結果

    +----------------------------------------+
    |Browse For Folder                    [X]|
    +----------------------------------------+
    | Hello, COM(Tcl) Wolrd!                 |
    |                                        |
    | +------------------------------------+ |
    | |[Windows]                           | |
    | | +[addins]                          | |
    | | +[AppCompat]                       | |
    | | +[AppPatch]                        | |
    | | +[assembly]                        | |
    | |     :                              | |
    | |     :                              | |
    | |     :                              | |
    | +------------------------------------+ |
    | [Make New Folder]    [  OK  ] [Cancel] |
    +----------------------------------------+
  5. Hello, Win32 API(Tcl) World!

    Posted on 3月 11th, 2013 by cx20

    Win32 API(Tcl)

    Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
    以下は Tcl にて Ffidl を使用した Win32 API 呼出しの例となっている。

    ソースコード

    load Ffidl06.dll
    ffidl::callout dll_MessageBox {int pointer-utf8 pointer-utf8 int} int [ffidl::symbol user32.dll MessageBoxA]
    dll_MessageBox 0 "Hello, Win32 API World!" "Hello, World!" 0

    実行方法

    C:¥> tclsh Hello.tcl

    実行結果

    ---------------------------
    Hello, World!
    ---------------------------
    Hello, Win32 API World!
    ---------------------------
    OK   
    ---------------------------
  6. Hello, Tcl/Java World!

    Posted on 1月 16th, 2012 by cx20

    Tcl/Java

    Tcl/Java は Java から Tcl コマンドを利用できる「Jacl( Java Command Language)」と、Tcl スクリプトから Java ライブラリが使用できる拡張ライブラリ「Tcl Blend」からなるプロジェクトである。
    なお、Java ライブラリが使用できるスクリプト言語としては他に Groovy、JRuby、Jython などがある。

    ソースコード

    #!/usr/bin/env jaclsh
    puts "Hello, Tcl/Java World!"

    ソースコード(Java ライブラリを使用)

    #!/usr/bin/env jaclsh
    package require java
    [java::field System out] println "Hello, Tcl/Java World!"

    実行方法(スクリプトファイルを指定して実行)

    $ jaclsh hello.tcl

    実行方法(実行権限を付与して実行)

    $ chmod +x hello.tcl
    $ ./hello.tcl

    実行結果

    Hello, Tcl/Java World!
  7. Hello, Tcl World!

    Posted on 1月 15th, 2012 by cx20

    Tcl

    Tcl はシンプルな構文を持つスクリプト言語である。名前は「ツールコマンド言語(Tool Command Language)」に由来する。
    Tcl スクリプト用の GUI ツールキットとして Tk が開発され、バンドルされたものを Tcl/Tk と呼ぶ。Tk の人気は高く、Tcl/Tk 以外に Perl/Tk、Ruby/Tk と言った他の言語にも移植されている。

    ソースコード

    #!/usr/bin/tclsh
    puts "Hello, Tcl World!"

    実行方法(スクリプトファイルを指定して実行)

    $ tclsh hello.tcl

    実行方法(実行権限を付与して実行)

    $ chmod +x hello.tcl
    $ ./hello.tcl

    実行結果

    Hello, Tcl World!