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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0826
774mesbox と objprm で変数が変化するタイミング8解決


774

リンク

2009/8/26(Wed) 00:15:39|NO.27307

複数の mesbox を持つアプリケーションを設計しています。
以下のコードを実行してもらうと分かると思いますが、
mesbox ch1,200,100,1
として mesbox を作成した場合、mesbox の内容は常に ch1 となるはずですが、
objprm mes_st, ch2
として ch2 の内容を mesbox にコピーしても
コピー直後は ch1 が変化せず、困っています。
mesbox をクリックして、少しでも mesbox の内容を編集すると
ch1 がやっと変化してくれます。
objprm 実行直後に ch1 を変更する方法は有りますでしょうか?


objsize 150,30 button gosub "ch2 を objprm する",*L1 button gosub "ch1 を objprm する",*L2 ch1 = "ch1" ch2 = "ch2" mesbox ch1,200,100,1 mes_st = stat repeat color 255,255,255 : boxf : color pos 300,0 mes "ch1 は" + ch1 + "です" mes "ch2 は" + ch2 + "です" wait 10 // 100 ms loop stop *L1 objprm mes_st, ch2 return *L2 objprm mes_st, ch1 return



この記事に返信する


ANTARES

リンク

2009/8/26(Wed) 00:27:34|NO.27310

 私の環境では、3.1, 3.2ともボタンを押すとすぐに変化します。



Kpan

リンク

2009/8/26(Wed) 00:31:33|NO.27311

WM_GETTEXTメッセージで取得しちゃってください。
(下のコードは取得サイズを64バイト想定)


sdim pszText sdim buf mesbox buf, 200, 100 hMesbox = objinfo(stat, 2) repeat sendmsg hMesbox, $D, 64, varptr(pszText) title ""+pszText wait 50 loop



774

リンク

2009/8/26(Wed) 00:33:12|NO.27312

ANTARES さん、早速の返信ありがとうございます。
環境を書き忘れましたが
HSP 3.1 で OS は Windows XP Home SP2 です。
環境によるんですかね??



774

リンク

2009/8/26(Wed) 00:48:13|NO.27315

Kpan さん、返信ありがとうございます。
バッチリ、希望通りの動作になりました。
ありがとうございました。



ANTARES

リンク

2009/8/26(Wed) 01:53:03|NO.27319

 質問の意味を勘違いしました(^_^;;
でも、変数の管理がおかしいだけでは?

objsize 150,30 button gosub "ch2 を objprm する",*L1 button gosub "ch1 を objprm する",*L2 ch1 = "ch1" ch2 = "ch2" ch=ch1 mesbox ch,200,100,1 mes_st = stat repeat color 255,255,255 : boxf : color pos 300,0 mes "ch は" + ch + "です" wait 10 // 100 ms loop stop *L1 objprm mes_st, ch2 ch=ch2 return *L2 objprm mes_st, ch1 ch=ch1 return



774

リンク

2009/8/26(Wed) 18:44:29|NO.27335

ANTARES さん、別の方法を教えていただいてありがとうございます。
できるだけ変数を使わない方向で考えていたのですが
教えて頂いたように、変数を増やして objprm 直後に
その変数も変更するような方法も楽で良いですね。
別のスレでもお世話になりました。ありがとうございました。



ANTARES

リンク

2009/8/26(Wed) 23:54:10|NO.27341

 別の変数を使ったのは、「ch1をobjprmする」
というボタンが意味不明だったからです。
 要は変わってくれないなら自分で変えればいいということで、
最小の修正は以下のように1行挿入するだけです。

*L1 objprm mes_st, ch2 ch1=ch2 return



woodfields

リンク

2009/8/27(Thu) 01:12:01|NO.27342

mesbox ch1,200,100,1 じゃなくて input ch1,200,20 ならいける気がする・・・・不思議です。



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