2011年5月7日土曜日

Erlang wxErlang でHello World サンプル

やっと、画面を出せた。自分が納得できるもので。
以下Hello Worldのサンプル


-module(irc).
-export([start/0]).
-compile(export_all).
-include_lib("wx.hrl").

start() ->
    Wx = wx:new(),
    Frame = wx:batch(fun() -> create_window(Wx) end),
    wxWindow:show(Frame),
    loop(Frame),
    wx:destroy(),
    ok.

create_window(Wx)->
    Frame = wxFrame:new(Wx,
-1,
"IRC On wxErlang",
[{size,{300,200}}]),
   
    wxFrame:createStatusBar(Frame,[]),
   
    wxFrame:connect(Frame, close_window),
   
    Frame.

loop(Frame) ->
    receive
#wx{event=#wxClose{}} ->
   io:format("~p Closing window ~n",[self()]),
   ok = wxFrame:setStatusText(Frame, "Closing...",[]),
   wxWindow:destroy(Frame),
   ok;
Msg ->
   io:format("Got ~p ~n",[Msg]),
   loop(Frame)
    end.

wx.hrlはErlangをインストールしたフォルダ内を検索するとあるもの。
本ソースをコンパイルしたbeamと同一フォルダに置いてください。

画面を消すときは、右上の☓ボタン押下で。

Hello Worldとはいっても、ソースのどこにもその記述がない。
これは、飛行機本(Erlangの参考書)のIRCがGSで書かれているので、それをwxErlangで書き換えようとしている最中のものなので、「IRC On wxErlang」とか書いている。