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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0118
らーんMesboxのカーソル位置に文字列挿入8解決


らーん

リンク

2019/1/18(Fri) 18:51:32|NO.86341

HSPでテキストエディタを制作中です。
mesboxの中のカーソルのある位置に文字列を挿入したいです。
例えば…

a="abcあいう" mesbox a,640,480,5
というコードがあり、mesbox内にカーソルがabcとあいうの間にあったとすると
abc<挿入する文字列>あいう
としたいです。
どうすればできますか 



この記事に返信する


ham

リンク

2019/1/18(Fri) 20:18:10|NO.86342

一番手っ取り早そうなのはaplstrを使う方法ですかね。
ただexeにした時、hspext.dllも同梱しなきゃいけなくなりますが。

#include "hspext.as"
a="abcあいう" mesbox a,640,480,5 wait 150 aplstr"てすと"



らーん

リンク

2019/1/19(Sat) 20:13:10|NO.86351

もし、一つのウィンドウ内にメッセージボックスが複数あって、挿入先を指定したい場合、
どうすればよいのでしょうか?



ham

リンク

2019/1/19(Sat) 21:29:06|NO.86353

複数あっても点滅中のカーソルがあるところに挿入されますが、そういう事ではなくて?

カーソルを別のボックスにプログラム側から移動させたいという事ならobjsel命令で出来ますが。



らーん

リンク

2019/1/19(Sat) 21:41:05|NO.86354

もし、テキストエディタの設定ウィンドウなどにメッセージボックスが配置されていたら本来挿入すべきではない
メッセージボックスに挿入されてしまうのでしょうか。挿入されてしまうのであれば挿入されないようにしたいです。
分かりにくくてすみません。            



ham

リンク

2019/1/19(Sat) 22:24:18|NO.86356

指定のボックス以外にフォーカスが当たっている場合は挿入しないように
条件をつけてやればいいと思います。

objsel -1を実行するとシステム変数statにフォーカスのあるオブジェクトのIDが代入されます。
挿入したいmesboxのオブジェクトIDが0な場合は
objsel -1
id=stat if id=0:aplstr"てすと"
みたいな感じで。


ただし、ボタンを押してobjsel -1を実行する形にすると押したボタンのIDになってしまうので
repeat〜loopにobjsel -1を入れて常に取得しておかないといけないかな..



らーん

リンク

2019/1/19(Sat) 22:37:24|NO.86357

メニューバーからobjsel -1を行った場合、ボタンIDなどの別の値になってしまいますかね?
メニューバーから呼び出して問題なく動けばそれでよいのですが。



ham

リンク

2019/1/19(Sat) 22:56:55|NO.86359

メニューの場合はちょっと分からないです^^;
もしフォーカスが外れないなら大丈夫かとは思うんですが。

自分が書いたaplstrの方法はあくまで手っ取り早い方法なもので最適ではないかもです。
(これくらいしか知らない)



らーん

リンク

2019/1/21(Mon) 21:06:49|NO.86368

貴重な情報をありがとうございました。この機能が無事完成になりそうです。



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