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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0324
てん複数のmesboxの同期2解決


てん

リンク

2017/3/24(Fri) 15:28:47|NO.78636

いつも大変お世話になります。

複数のウィンドウにあるmesboxの変更をリアルタイムに監視して、
mesboxの内容を常に同じにしたいです(同期?)。

以下のスクリプトを作成してみましたが、思った通りに動作しません。
(エラー&mesbox編集時のキャレット位置がおかしい。。)

修正案をご教示いただけますと幸いですm()m


;メインウィンドウ(作成ボタンとmesbox) sc_id=0 ;ウィンドウID txt(sc_id)="" ;初期化 screen sc_id,200,200 ;メインウィンドウ作成 button gosub "サブ作成",*サブ mesbox txt(sc_id),100,100 mes_id(sc_id)=stat ;オブジェクトID取得 hmesbox(sc_id) = objinfo(mes_id(sc_id), 2) ;ハンドル取得 oncmd gosub *割込み, $111 ;割込み stop *サブ;サブウィンドウ(mesbox) sc_id++ ;ウィンドウID txt(sc_id)=txt(0) ;初期化 screen sc_id,200,200 ;サブウィンドウ作成 mesbox txt(sc_id),ginfo(12),ginfo(13) ;mesbox配置 mes_id(sc_id)=stat ;オブジェクトID取得 hmesbox(sc_id) = objinfo(mes_id(sc_id), 2) ;ハンドル取得 oncmd 0 oncmd gosub *割込み, $111 ;割込み oncmd 1 return *割込み id=ginfo_intid ;割込みのウィンドウID if lparam = hmesbox(id) { if (wparam>> 16 & $FFFF) = $300 { ;wparamの上位EN_CHANG repeat sc_id ;テキストを共通化する txt(cnt)=txt(id) loop repeat sc_id objprm cnt,txt(cnt) ;オブジェクトに反映 エラーが出ます loop } } return



この記事に返信する


てん

リンク

2017/3/24(Fri) 15:30:10|NO.78637

すみません、スクリプトが切れてしまいました。


;メインウィンドウ(作成ボタンとmesbox) sc_id=0 ;ウィンドウID txt(sc_id)="" ;初期化 screen sc_id,200,200 ;メインウィンドウ作成 button gosub "サブ作成",*サブ mesbox txt(sc_id),100,100 mes_id(sc_id)=stat ;オブジェクトID取得 hmesbox(sc_id) = objinfo(mes_id(sc_id), 2) ;ハンドル取得 oncmd gosub *割込み, $111 ;割込み stop *サブ;サブウィンドウ(mesbox) sc_id++ ;ウィンドウID txt(sc_id)=txt(0) ;初期化 screen sc_id,200,200 ;サブウィンドウ作成 mesbox txt(sc_id),ginfo(12),ginfo(13) ;mesbox配置 mes_id(sc_id)=stat ;オブジェクトID取得 hmesbox(sc_id) = objinfo(mes_id(sc_id), 2) ;ハンドル取得 oncmd 0 oncmd gosub *割込み, $111 ;割込み oncmd 1 return *割込み id=ginfo_intid ;割込みのウィンドウID if lparam = hmesbox(id) { if (wparam>> 16 & $FFFF) = $300 { ;wparamの上位EN_CHANG repeat sc_id ;テキストを共通化する txt(cnt)=txt(id) loop repeat sc_id objprm cnt,txt(cnt) ;オブジェクトに反映 エラーが出ます loop } } return



てん

リンク

2017/3/25(Sat) 09:58:31|NO.78658

自己レスすみません、自己解決しました。

エラー原因は、
オブジェクトIDがスクリーン毎に0からはじまるのを理解していなかったことでした><
今までgsel ** ,0の存在意味が分かりませんでしたが、
初めて理解出来た気がします。

キャレット位置はEM_GETSELで何とか出来ました。

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



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