;ボタンの名前を配列変数で連続表示
#define kosuu 5			;ボタンの数を指定
	sdim name,2,kosuu	;今回は一文字だけ入る変数を用意
	name="A","B","C","D","E"	;ボタンに表示する文字
	repeat kosuu
		button name.cnt,*aaa		;ボタンを表示します
	loop
	stop
*aaa
	dialog name.stat+"のボタンが押されました"
	stop
配列とシステム変数cntがわかればボタンの表示は簡単だと思います。
問題は、ボタンが押された後、同じラベルに全部飛んでしまいます。これを判断するのはシステム変数statです。
これに、作ったオブジェクトの番号(ID)がはいります。
今回の場合は、ボタンしか作っていないので、作った順番に0、1、2・・・となります。

;inputに連続入力
	a="" : input a
	button "入力",*in
	stop
*in
	mes a
	a="" : objprm 0,a
	stop
やることは単純で、入力の処理をした後に、inputにobjprmで空の文字列を 送るだけです。

;inputにEnterで入力
	a="" : input a
*main_loop
	repeat
		await
		stick key
		if key&32 : break	;Enterのチェック
	loop
	mes a
	a="" : objprm 0,a
	goto *main_loop
やることは単純で、無限ループでEnterの入力を待ちます。

;Tabでカーソル移動
#define ID_MAX 3		;オブジェクトの数
	input a : input b : input c
	now_ID=0		;今あるカーソル位置
	repeat
		await
		stick key
		if key&1024 {			;Tabのチェック
			getkey shift,16		;シフトのチェック
			if shift==1 { now_ID-- }
			else { now_ID++ }
		} else { 
			objsel -1
			now_ID=stat		;今のカーソルのある位置を確認
			continue
		}
		;now_IDの調整
		if now_ID==-1 : now_ID=ID_MAX-1
		if now_ID==ID_MAX : now_ID=0
		objsel now_ID			;カーソル移動
	loop
無限ループでTabとShiftの入力をチェックします。Tab等が押されていない場合には マウスでオブジェクトを移動している可能性があるので、それを確認します。
また、now_IDは0〜ID_MAX-1まで存在しているので、範囲以外の時は 調整を行います。
この方法だと「ポーン」という音が鳴ってしまいます。ご了承ください。 2.6からは標準命令で出来るようになるそうです。


■ 目次へ戻る ■

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル