コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

Luaridaダイアログ編 (2)

Luaridaのダイアログ機能について、リストダイアログとラジオボタンダイアログとチェックリストダイアログの説明をします。いずれも選択肢をセットして画面に出すものです。

item.add( 文字 [,フラグ] )

表示する内容を設定します。item.addした順番に表示されます。フラグはチェックリストを使うときに必要な設定です。1にしておくと選択肢表示時にチェックが入っています。

例.
 item.add("みかん", 0 )

item.clear()

追加した表示アイテムを全てクリアします。新規に選択肢を作る場合は、必ずitem.clear()してください。

例.
 item.clear()

item.list( タイトル )

選択リストを表示します。選択リストは選択肢をタッチすると選ばれます。
戻り値
 0: キャンセルされた
 1〜: 選択アイテムの番号
例.
 t = item.list( "好きなものを選んでください" )

------------------------------------------
--リストサンプル
------------------------------------------
--関数宣言--------------------------------
main={}  --mainメソッド
--グローバル変数宣言----------------------

------------------------------------------
mt={}
mt.__newindex=function(mtt,mtn,mtv)
  dialog( "Error Message", "宣言していない変数 "..mtn.." に値を入れようとしています", 0 )
  touch(3)
end
mt.__index=function(mtt,mtn)
  dialog( "Error Message", "変数 "..mtn.." は宣言されていません", 0 )
  touch(3)
end
setmetatable(_G,mt)
--------以下が実プログラム----------------

function main()
local g = "あなたは、"
local w,h
local t
  canvas.drawCls( color(255,255,255) )
  w,h = canvas.getviewSize()

  item.clear()
  item.add("みかん", 0 )
  item.add("たちうお", 0 )
  item.add("海", 0 )
  item.add("川", 0 )
  item.add("山", 0 )
  item.add("鮎", 0 )
  item.add("鵜飼", 0 )
  item.add("山本商店", 1 )
  t = item.list( "好きなものを選んでください" )
	
  if( t==0 )then
    canvas.drawTextCenter( "好きなものが無かったですか。", w/2, h/2, 24, color(255,0,0) )
    touch(3)
    do return end
  elseif( t==1 )then
    g = g.."みかん"
  elseif( t==2 )then
    g = g.."たちうお"
  elseif( t==3 )then
    g = g.."海"
  elseif( t==4 )then
    g = g.."川"
  elseif( t==5 )then
    g = g.."山"
  elseif( t==6 )then
    g = g.."鮎"
  elseif( t==7 )then
    g = g.."鵜飼"
  elseif( t==8 )then
    g = g.."山本商店"
  end
  canvas.drawTextBox( g.."が好きですね。", 0, 0, 36, color(255,0,0), 480 )
  touch(3)
end
main()

item.radio( タイトル, 初期選択位置 )

選択ラジオボタンを表示します。
初期選択位置
0: 初期選択無し
1〜: 初期選択アイテム番号
戻り値
戻り値
 0: キャンセルされた。もしくは、選択無し。
 1〜: 選択アイテムの番号
例.
 t = item.radio( "好きなものを選んでください", 1 )

------------------------------------------
--ラジオボタンサンプル
------------------------------------------
--関数宣言--------------------------------
main={}  --mainメソッド
--グローバル変数宣言----------------------

------------------------------------------
mt={}
mt.__newindex=function(mtt,mtn,mtv)
  dialog( "Error Message", "宣言していない変数 "..mtn.." に値を入れようとしています", 0 )
  touch(3)
end
mt.__index=function(mtt,mtn)
  dialog( "Error Message", "変数 "..mtn.." は宣言されていません", 0 )
  touch(3)
end
setmetatable(_G,mt)
--------以下が実プログラム----------------

function main()
local g = "あなたは、"
local w,h
local t
  canvas.drawCls( color(255,255,255) )
  w,h = canvas.getviewSize()

  item.clear()
  item.add("みかん", 0 )
  item.add("たちうお", 0 )
  item.add("海", 0 )
  item.add("川", 0 )
  item.add("山", 0 )
  item.add("鮎", 0 )
  item.add("鵜飼", 0 )
  item.add("山本商店", 1 )
  t = item.radio( "好きなものを選んでください", 1 )
	
  if( t==0 )then
    canvas.drawTextCenter( "好きなものが無かったですか。", w/2, h/2, 24, color(255,0,0) )
    touch(3)
    do return end
  elseif( t==1 )then
    g = g.."みかん"
  elseif( t==2 )then
    g = g.."たちうお"
  elseif( t==3 )then
    g = g.."海"
  elseif( t==4 )then
    g = g.."川"
  elseif( t==5 )then
    g = g.."山"
  elseif( t==6 )then
    g = g.."鮎"
  elseif( t==7 )then
    g = g.."鵜飼"
  elseif( t==8 )then
    g = g.."山本商店"
  end
  canvas.drawTextBox( g.."が好きですね。", 0, 0, 36, color(255,0,0), 480 )
  touch(3)
end
main()

item.check( タイトル )

選択チェックボタンを表示します。チェックアイテムは64個まで指定可能です。
戻り値1
 戻り値の16ビットが1〜16番の選択肢のチェックの有無となります。0がチェック無し、1がチェックありです。
戻り値2
 戻り値の16ビットが17〜32番の選択肢のチェックの有無となります。0がチェック無し、1がチェックありです。
戻り値3
 戻り値の16ビットが33〜48番の選択肢のチェックの有無となります。0がチェック無し、1がチェックありです。
戻り値4
 戻り値の16ビットが49〜64番の選択肢のチェックの有無となります。0がチェック無し、1がチェックありです。
戻り値5
 0: Cancelが押された。
 1: OKが押された。

例.
 c1,c2,c3,c4,t = item.check("好きなものにチェックしてください")

------------------------------------------
--チェックリストサンプル
------------------------------------------
--関数宣言--------------------------------
main={}  --mainメソッド
--グローバル変数宣言----------------------

------------------------------------------
mt={}
mt.__newindex=function(mtt,mtn,mtv)
  dialog( "Error Message", "宣言していない変数 "..mtn.." に値を入れようとしています", 0 )
  touch(3)
end
mt.__index=function(mtt,mtn)
  dialog( "Error Message", "変数 "..mtn.." は宣言されていません", 0 )
  touch(3)
end
setmetatable(_G,mt)
--------以下が実プログラム----------------

function main()
local c1,c2,c3,c4
local g = "あなたは、"
local f = 0
local w,h
local t
  canvas.drawCls( color(255,255,255) )
  w,h = canvas.getviewSize()

  item.clear()
  item.add("みかん", 0 )
  item.add("たちうお", 0 )
  item.add("海", 0 )
  item.add("川", 0 )
  item.add("山", 0 )
  item.add("鮎", 0 )
  item.add("鵜飼", 0 )
  item.add("山本商店", 1 )

  c1,c2,c3,c4,t = item.check("好きなものにチェックしてください")
  if( t==0 )then
    canvas.drawTextCenter( "キャンセルしましたね。", w/2, h/2, 24, color(255,0,0) )
    touch(3)
    return
  end
  if( c1==0 )then
    canvas.drawTextCenter( "何も好きなものが無いのですね。", w/2, h/2, 24, color(255,0,0) )
    touch(3)
    return
  end
	
  if( math.fmod(math.floor(c1/32768),2)==1 )then
    g = g.."みかん"
    f = 1
  end
  if( math.fmod(math.floor(c1/16384),2)==1 )then
    if( f==0 )then
      g = g.."たちうお"
      f = 1
    else
      g = g.."とたちうお"
    end
  end
  if( math.fmod(math.floor(c1/8192),2)==1 )then
    if( f==0 )then
      g = g.."海"
      f = 1
    else
      g = g.."と海"
    end
  end
  if( math.fmod(math.floor(c1/4096),2)==1 )then
    if( f==0 )then
      g = g.."川"
      f = 1
    else
      g = g.."と川"
    end
  end
  if( math.fmod(math.floor(c1/2048),2)==1 )then
    if( f==0 )then
      g = g.."山"
      f = 1
    else
      g = g.."と山"
    end
  end
  if( math.fmod(math.floor(c1/1024),2)==1 )then
    if( f==0 )then
      g = g.."鮎"
      f = 1
    else
      g = g.."と鮎"
    end
  end
  if( math.fmod(math.floor(c1/512),2)==1 )then
    if( f==0 )then
      g = g.."鵜飼"
      f = 1
    else
      g = g.."と鵜飼"
    end
  end
  if( math.fmod(math.floor(c1/256),2)==1 )then
    if( f==0 )then
      g = g.."山本商店"
      f = 1
    else
      g = g.."と山本商店"
    end
  end
  w,h = canvas.getviewSize()
  canvas.drawTextBox( g.."が好きですね。", 0, 0, 36, color(255,0,0), 480 )
  touch(3)
end
main()