プログラミング工房 > HSP > サンプルスクリプト > 

警告音が出ないinputに見せかけたmesbox

 HSP 2.61のinputオブジェクトはフォーカスがある時にEnterキーやTabキーを押しても警告音が鳴らないように作られていましたが、HSP 3.0(a)ではまだ警告音が鳴ってしまう現象は修正されていません。

 下のスクリプトはmesboxを使って警告音が鳴らないinputもどきを作るスクリプトです。ポイントはonkey命令を使ってEnterキーの押し下げを検知して、mesboxに改行が追加される前に一度中身のテキストをコピーしておき、await命令の所で改行が追加されたあとでそのテキストをmesboxに戻すことです。

>> ダウンロード

/***********************************************************

	警告音(Beep)が出ないinputに見せかけたmesbox

		(inputが修正されたバージョンが出るまでのつなぎにどうぞ)

		【2005/11/16 更新】

***********************************************************/

#const VK_RETURN	0x0D	// [Enter]

	buf = ""
	mesbox buf,200,20

	onkey gosub *KeyPress
	stop

*KeyPress
	if iparam=VK_RETURN {
		text = buf
		mes "\""+text+"\""	// この時点ではmesboxに改行は入力されていない
		await 1			// ここでmesboxに改行が入力される
		buf = text		// mesboxの中身を[Enter]キーを押す前の状態に戻す
		objprm 0,buf		// 表示を更新
	}
	return