Home English

Kuina-chan

くいなちゃんNov 18, 2017


プログラミング言語Kuin」のウインドウとコントロールのチュートリアルです。

Kuinドキュメント」の内容を組み合わせた、実践的な使い方を示します。
目次

ウインドウとボタンを表示する

基本的なウインドウアプリの作成方法を説明していきます。

ウインドウの表示

ウインドウを表示するには、ウインドウの表示のように書きます。
var wndMain: wnd@Wnd
  
func main()
  do @wndMain :: wnd@makeWnd(null, %normal, 500, 500, "Test")
  while(wnd@act())
  end while
end func
ウインドウの表示
「wnd@makeWnd」関数でウインドウを生成し、「@wndMain」変数に格納しています。 アプリが終了するまでウインドウが解放されないように、格納する変数はグローバルもしくはmain関数内に定義すると良いでしょう。
「wnd@act」関数はウインドウメッセージを処理する関数で、定期的に呼ばないとウインドウはフリーズします。 ウインドウが閉じられると「wnd@act」関数はfalseを返すため、ただちにアプリが終了するようにします。
実行すると、ウインドウの表示の実行結果のようになります。
ウインドウの表示の実行結果
ウインドウの表示の実行結果

ボタンコントロールを表示する

ボタンコントロールを表示するには、ボタンコントロールの表示のプログラムを追加します。
var wndMain: wnd@Wnd
var btnTest: wnd@Btn
  
func main()
  do @wndMain :: wnd@makeWnd(null, %normal, 500, 500, "Test")
  do @btnTest :: wnd@makeBtn(@wndMain, 12, 12, 75, 23, %fix, %fix, "Push Me")
  while(wnd@act())
  end while
end func
ボタンコントロールの表示
「wnd@makeBtn」関数でボタンコントロールを、「@wndMain」を親ウインドウにして生成し、「@btnTest」変数に格納しています。
実行すると、ボタンコントロールの表示の実行結果のようになります。
ボタンコントロールの表示の実行結果
ボタンコントロールの表示の実行結果

ボタンが押されたときのイベント

ボタンが押されたときのイベントを処理するには、ボタンコントロールのイベントのプログラムを追加します。
var wndMain: wnd@Wnd
var btnTest: wnd@Btn
  
func main()
  do @wndMain :: wnd@makeWnd(null, %normal, 500, 500, "Test")
  do @btnTest :: wnd@makeBtn(@wndMain, 12, 12, 75, 23, %fix, %fix, "Push Me")
  do @btnTest.onPush :: @btnTestOnPush
  while(wnd@act())
  end while
end func
  
func btnTestOnPush(wnd: wnd@Btn)
  do wnd@msgBox(@wndMain, "Hello, world!", "Test", %none, %ok)
end func
ボタンコントロールのイベント
「onPush」プロパティに「@btnTestOnPush」関数を代入することで、ボタンが押されたときに「@btnTestOnPush」関数が呼ばれるようになります。 ここでは「wnd@msgBox」関数でメッセージボックスを表示しています。
実行すると、ボタンコントロールのイベントの実行結果のようになります。
ボタンコントロールのイベントの実行結果
ボタンコントロールのイベントの実行結果

メッセージボックスの選択に応じて処理する

メッセージボックスの選択に応じて処理するには、メッセージボックスの選択のように書きます。
func main()
  switch(wnd@msgBox(null, "どれを選択しますか?", "Test", %warn, %yesNoCancel))
  case %yes
    do wnd@msgBox(null, "はいが選択されました。", "Test", %none, %ok)
  case %no
    do wnd@msgBox(null, "いいえが選択されました。", "Test", %none, %ok)
  case %cancel
    do wnd@msgBox(null, "キャンセルが選択されました。", "Test", %none, %ok)
  end switch
end func
メッセージボックスの選択

ファイルを保存するダイアログを表示する

ファイルを保存するダイアログボックスを表示するには、「wnd@saveFileDialog」関数を使ってファイルを保存するダイアログのように書きます。
func main()
  var path: []char :: wnd@saveFileDialog(null, ["テキストファイル(*.txt)", "*.txt", "すべてのファイル", "*.*"], 0, "txt")
  if(path =& null)
    do wnd@msgBox(null, "キャンセルされました。", "Test", %none, %ok)
  else
    do wnd@msgBox(null, "\{path}が選択されました。", "Test", %none, %ok)
  end if
end func
ファイルを保存するダイアログ
なお、ファイルを開くダイアログボックスを表示するには、同様に「wnd@loadFileDialog」関数を使って書きます。
1511006920ja