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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0925
kanamarulistboxとoncmdの同時使用4解決


kanamaru

リンク

2015/9/25(Fri) 18:36:57|NO.71950

listboxをクリックしたときにクリックした項目文字列を
取得する必要ができ、
以下のように考えました。

oncmd gosub *llist, $111 obj=-1 listbox obj,,"test\ntest2\ntest3" lid=objinfo(stat,2) stop *llist if(lparam=lid){ if (wparam >> 16 & $FFFF) = 1 { list_text="" sendmsg lid, $189, obj, varptr(list_text) dialog list_text return } } return
しかし実行してみると、
前に選択した項目文字列がダイアログに表示され、
選択した項目文字列とダイアログに表示した文字列が
等しくありません。
どのようにしたら、
正常に項目文字列を取得できるのでしょうか。
取得できる文字列の変更前に割り込んだのでしょうか?



この記事に返信する


暇人

リンク

2015/9/25(Fri) 19:11:52|NO.71954

変数が書き換わる前に割り込みする形になるので前回のが取得される
なので直接listboxから取得する

oncmd gosub *llist, $111 obj=-1 listbox obj,,"test\ntest2\ntest3" lid=objinfo(stat,2) stop *llist if(lparam=lid){ if (wparam >> 16 & $FFFF) = 1 { list_text="" sendmsg lid, $0188,0, 0 //LB_GETSEL sendmsg lid, $189, stat, varptr(list_text) dialog list_text return } } return



kanamaru

リンク

2015/9/26(Sat) 07:49:29|NO.71969

なるほど、パラメータに渡してあった変数を使わず、
自前で取得する必要があったのですね。
今後のために追加で質問させてください。
ほかにも自前で取得する必要がある場合は
どんな時がありますか?



暇人

リンク

2015/9/26(Sat) 15:55:55|NO.71974

ウィンドウオブジェクトの子にした場合とかかな



kanamaru

リンク

2015/9/27(Sun) 17:49:15|NO.71995

返事が大変おくれてしまい、すいませんでした。
暇人さん、ありがとうございました。



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