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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
1229
T.Kazama●メッセージボックスに、改行記号を表示するには?9未解決


T.Kazama

リンク

2018/12/29(Sat) 14:57:28|NO.86189

メッセージボックスに改行コードを送ると改行はされますが、その記号(文字)は表示されません。しかし、Wordやや秀丸では特殊文字で表示されています。
\n、\r、\n、などのコードを表示させるにはどのようにしたらよいでしょうか。ご教示をお願いします。



この記事に返信する


ソラ(スペース)

リンク

2018/12/29(Sat) 22:56:42|NO.86190

ただ表示したいだけなら、改行コードを置換してはどうでしょうか?



T.Kazama

リンク

2018/12/29(Sat) 23:55:22|NO.86191

ソラ(スペース)さん、ご回答ありがとうございます。
キーボード上の文字を改行コードの前に入れてやれば確かに表示されますが、その文字を消したとき、同時に改行コードが削除されようにするには、キーボード上にない文字でメッセージボックスに表示される文字があれば簡単ですが、ない場合はかなり複雑なスクリプトになると思いますが、ご教示していただけますか。
改行コード等が表示されるメッセージボックスは、Windowsのシステムの中で用意されていないのでしょうか。



名無し

リンク

2018/12/30(Sun) 01:45:13|NO.86193

標準の mesbox では無理だと思います.
ただ,確かそれを可能とする footy2 というプラグインがあったような気がします.
(すみません.私もあまり詳しくないもので,自信がありません.)



名無し

リンク

2018/12/30(Sun) 01:53:16|NO.86194

念のためお聞きしますが,T.Kazama さんのおっしゃる「改行コード」というのは画像のようなものでよろしいでしょうか.
https://i.imgur.com/hGTWpvG.png



MillkeyStars

リンク

2018/12/30(Sun) 02:25:53|NO.86195

>>キーボード上の文字を改行コードの前に入れてやれば確かに表示されますが、その文字を消したとき、同時に改行コードが削除されようにするには、キーボード上にない文字でメッセージボックスに表示される文字があれば簡単ですが、ない場合はかなり複雑なスクリプトになると思いますが、ご教示していただけますか。
メッセージボックスに入力(削除)された場合、そのメッセージボックスの親となるウィンドウにウィンドウメッセージが送信されます。
その際に、メッセージの種類によって処理を変えればいいだけだと思うよ。

メッセージボックスの内容が変化した際に送られてくるメッセージは、WM_COMMAND でそこに、メッセージボックスから送られてくる EN_UPDATE という通知コードで判定できる。
その時に、実際の改行コードが削除されたらリターン記号も削除し、リターン記号が削除されたら改行コードも削除しちゃえばいいだけ。
改行されたら、リターン記号を追加とか。

キャレットの位置監視とかは、メッセージボックスをサブクラス化しないと無理です。



T.Kazama

リンク

2018/12/30(Sun) 11:28:21|NO.86196

MillkeyStars様ほか、皆様いろいろなアドバイスありがとうございます。
私がやりたいのは、メッセージボックスで作業をしていて「その文字を消すことは改行コード(0A0D)を消すことです」と、作業者に前もって了知させておくことです。
<dialog>等で知らせるのであれば、<partcount>と<peek>で実現できます。
以上、再度よろしくお願いいたします。



berya

リンク

2018/12/30(Sun) 11:38:18|NO.86197


a = "\\n" mesbox a

このような感じでしょうか?



berya

リンク

2018/12/30(Sun) 11:56:21|NO.86198

見当違いの返信でした...
お恥ずかしいです...



MillkeyStars

リンク

2018/12/30(Sun) 16:54:13|NO.86211

HSP 3.5 から標準で同梱されているコールバックモジュール(modclbk3.hsp) 使えばサブクラス化できるんじゃないか。
サブクラスしてキー入力を監視すれば比較的簡単だと思うよ。



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