EnableEdit後の「編集を許可する」状態No.31415
白雲斎 さん 07/05/22 12:08
 
こんにちは、白雲斎です。

Windows XP, 秀丸メール 4.73

エディタ・ウインドウで実行するマクロの話です。

「編集を許可する」が無効な状態で、末尾のマクロを実行します。
マクロ実行後も編集はできない状態となりますが、メニューの
「編集を許可する」にはチェックが付いています。
EnableEditで編集を許可したものを元の編集不可の状態に戻すには、
readonlyswitch以外の何かがありますか?


loaddll "TKInfo.dll";
if( !result ) endmacro;
if( !dllfunc("IsHidemaruMail") ) endmacro;
if( dllfunc("IsHidemaruMailMain") ) endmacro;

##r = readonly;
if( ##r ) ##n = dllfunc("EnableEdit");
if( ##r ) readonlyswitch;
endmacro;

[ ]
RE:31415 EnableEdit後の「編集を許可するNo.31420
秀まるお2 さん 07/05/22 14:33
 
 EnableEditしたのも元に戻す関数は残念ながら用意されてないです。なぜかと
いうと、そもそもこの「編集を許可する」というコマンドは、一度実行して許可
状態にしてしまうと元に戻せないという性格のコマンドだったからです。ある時
期から「戻せるようにして欲しい」って要望があって直したんですが、tkinfoの
関数としては前の仕様のままほったらかしでした。

 ということでとりあえず解決策としてどうするかですが、「編集を許可する」
のコマンドをシミュレートするのが適当かと思います。具体的には、

    #n = sendmessage(hidemaruhandle(0),0x0111,40083,0);

 って文を実行すればいいです。

 loaddll "TKInfo.dll";
 ##n = dllfunc("EnableEdit");
 ...
 ... 編集作業
 ...
 ##n = dllfunc("AlterSave");
 ##n = sendmessage(hidemaruhandle(0),0x0111,40083,0);
 endmacro;

 ってな具合になると思います。

[ ]
RE:31420 EnableEdit後の「編集を許可するNo.31423
白雲斎 さん 07/05/22 15:28
 
こんにちは“秀まるお2”さん、白雲斎です。

> EnableEditしたのも元に戻す関数は残念ながら用意されてないです。なぜかと
>いうと、そもそもこの「編集を許可する」というコマンドは、一度実行して許可
>状態にしてしまうと元に戻せないという性格のコマンドだったからです。ある時
>期から「戻せるようにして欲しい」って要望があって直したんですが、tkinfoの
>関数としては前の仕様のままほったらかしでした。
>
> ということでとりあえず解決策としてどうするかですが、「編集を許可する」
>のコマンドをシミュレートするのが適当かと思います。具体的には、
>
>    #n = sendmessage(hidemaruhandle(0),0x0111,40083,0);
>
> って文を実行すればいいです。

ありがとうございます。
「編集を許可する」チェック状態を管理できました。

[ ]