HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0722
ららダイアログ4解決


らら

リンク

2007/7/22(Sun) 11:38:01|NO.9651

ダイアログで

dialog a,0
としたとき
(OK)を押したときと(×)を押したときのstat値が同値になるのですが これでは、どちらのボタンを押したのか見分けがつきません。  なんとかならないでしょうか? --------------------------------------------------
	gsel 0,-1
	
	dialog "OKを押してください",0
	if stat : dialog "stat="+stat,1,"結果"
	
	dialog "×を押してください",0
	if stat : dialog "stat="+stat,1,"結果"

	end




この記事に返信する


Drip

リンク

2007/7/22(Sun) 12:34:37|NO.9653

Dripです。

 ららさん、こんにちは。
確かにそれでは同じ結果が返りますが、OKダイアログはメッセージに対して
了解以外の結果を請うものではありません。
なぜOKダイアログで2つの異なる結果を得ようとしているのでしょうか。
ダイアログから2つの結果を得る場合はYES/NOダイアログを使用するようにして下さい。

dialog "肯定?否定?",2 if stat=6:dialog "肯定されました":else:dialog "否定されました" end



らら

リンク

2007/7/22(Sun) 12:46:19|NO.9654

やはり、そうですよね。

私がやりたかったのは、あるダイアログの結果に対して
相手が(OK)か(×)を押すことにより
その結果に対して相手は肯定的態度なのか否定的態度なのかを
調べたかったのですが、やはり無理みたいですね・・・

Dripさん、ご回答ありがとうございました



Drip

リンク

2007/7/22(Sun) 13:14:38|NO.9657

Dripです。

 もしもそのようなユーザーの心理的回答を得ようとする場合は、
screen命令とonexit命令を組み合わせて自前でダイアログを作成してみてください。
但し、以下のサンプルを試してみればわかりますが、あまり変な挙動をすると
確実にユーザーに嫌われますので注意してください。

#uselib "user32.dll" #cfunc GetWindowLong "GetWindowLongA" int, int #func SetWindowLong "SetWindowLongA" int, int, int screen 0,200,200:syscolor 15:boxf:objsize 100,20: pos 50,100:button "押して下さい。",*push stop *push mci "sound" //ポーン screen 2,256,80,6,(ginfo_dispx-ginfo_winx)/2,(ginfo_dispy-ginfo_winy)/2 SetWindowLong hwnd,-16,GetWindowLong(hwnd,-16)-$20000 //最小化ボタンを消す gsel 2,2:title "色々ためしてください":syscolor 15:boxf:syscolor 7 font "MS Pゴシック",12 pos 10,10:mes "OKボタンを押して下さい。" pos 100,50:button "OK",*ok onexit gosub *ex repeat if ginfo(2)!2:dialog "押す気あるんですか?":gsel 2,1 await 30 loop *ok end *ex if ginfo(2)=2:dialog "消そうとしましたね。\n消しちゃだめです。":return return



らら

リンク

2007/7/22(Sun) 13:35:43|NO.9659

Dripさん、ご回答ありがとうございます

mci "sound"
でダイアログの音が、出せるなんて知らなかったです
心理的回答を得るには 確かに、自分でそうゆうダイアログを作成するのが一番いいみたいですね 参考になりました。ありがとうございます。



ONION software Copyright 1997-2021(c) All rights reserved.