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()