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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0727
アイルーonexit命令を使用した、ボタン押下時のウィンドウ非表示について。3解決


アイルー

リンク

2010/7/27(Tue) 09:50:36|NO.34023

別件でお世話になっております。

ttp://lhsp.s206.xrea.com/command/onexit.html
を参考にしながら、onexit命令処理を行っておりますが、動きが挙動不審で原因が分からず、
こちらで質問させていただきます。

まず、以下のような簡易ソースを作成致しました。
btmimgはそのまま使用させていただいております。
#include "llmod3.hsp"
#include "misc.hsp" *top onexit gosub *exit cls buffer 6 : picload "image.bmp" // ボタン画像 screen 0, 800, 600 mes "label = *top" mes "ウィンドウID = " + ginfo_act // *titlelist へ遷移 objsize 250, 50 pos 0, 50 button "", *titlelist btnimg cnt, 6, 0, 150, 250, 50 stop *titlelist onexit gosub *exit cls screen 0, 800, 600 mes "label = *titlelist" mes "ウィンドウID = " + ginfo_act // *title_click へ遷移 objsize 160, 50 button "", *title_click btnimg cnt, 6, 0, 350, 160, 50 // *top へ遷移 pos 500, 510 objsize 250, 50 button "", *top btnimg cnt, 6, 0, 300, 250, 50 stop *title_click onexit gosub *exit screen 3, 800, 600 mes "label = *titlelist" mes "windowID = " + ginfo_act // 閉じるボタン(ウィンドウID3(*title_click画面)を非表示にする) objsize 110, 50 button "", *exit btnimg cnt, 6, 0, 400, 110, 50 stop // 別ソースではウィンドウID4の処理もあるので、else:ifとしています *exit if ginfo_act = 0 { end } else : if ginfo_act = 3 { gsel wparam, -1 }

やりたいことですが、*title_click 画面(ウィンドウID3)内の「閉じる」ボタン押下時、
*title_click 画面を非表示にしたいと思います。

現状ですが、
[動作する状況]
1 *top 画面より、*title_click 画面に遷移する。 2 *title_click 画面のタイトルバーの右側にある×ボタンを押下。   → *title_click 画面(ウィンドウID3)が非表示になり、*titlelist 画面(ウィンドウID0)のみ表示されている。 3 *title_click 画面内の「閉じる」ボタンを押下する。   → *title_click 画面(ウィンドウID3)が非表示になり、*titlelist 画面(ウィンドウID0)のみ表示されている。     以後何度でも成功します。 [動作しない状況] 1 *top 画面より、*title_click 画面に遷移する。 2 *title_click 画面内の「閉じる」ボタンを押下する。   → *titlelist 画面(ウィンドウID0)が終了されてしまい、*title_click 画面(ウィンドウID3)が表示されたままになっている。

どうかご指摘の程、よろしくお願い致します。



この記事に返信する


アイルー

リンク

2010/7/27(Tue) 20:24:43|NO.34041

補足させていただきます。
現在ソース内のボタンを、全て btnimg ではなく、objimage 命令を用いて作成しました。

ボタンはうまく表示されましたが、やはり exit 処理は現状と変わりませんでした。



ANTARES

リンク

2010/7/27(Tue) 23:40:44|NO.34044

 *exitの下に「dialog "ginfo_act="+ginfo_act+" wparam="+wparam」とでも
書いて考えてみましょう。



アイルー

リンク

2010/7/28(Wed) 18:33:15|NO.34063

ANTARES 様

ご返信ありがとうございます。

> *exitの下に「dialog "ginfo_act="+ginfo_act+" wparam="+wparam」とでも
> 書いて考えてみましょう。

ginfo_act は確認しながらやっておりましたが、wparam は同じ結果が返ってくると思い込んでおりました。
dialog で確認しましたが、閉じるボタンを押下したとき、wparam には0が返ってきていたため、
gsel wparam, -1

とやっていても、実際はウィンドウID0を非表示にしていたのですね。
*exit
	if ginfo_act = 0 {
		end
	} else : if ginfo_act = 3 {
		gsel 3, -1
	}
とすることで、確実にウィンドウID3の画面を閉じることができました。

ありがとうございました。



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