フォルダ切り換え時の非選択状態の処理No.06751
たまがわ さん 03/05/05 15:46
 
 連続投稿ですいません。

 フォルダ切り換え時に「メールを非選択状態にする」という設定がありますが、この
設定に関連して以下のような状況が見られます。

(1)設定で「メールを非選択状態にする」にチェックを入れる(「未読メール」「最
新のメール」にチェックは入れない)
(2)適当にいくつかフォルダを選択してみる(当然、メールは選択されない)
(3)設定で「メールを非選択状態にする」のチェックをはずす
(4)いくつかフォルダを選択してみると、(2)で選択したことのあるフォルダだけ
「非選択状態」が継続してしまう

 これは前歴を記憶しているためだと思いますが、可能であれば、(4)のときには、
内部的に記録している選択候補メール(メール一覧をアクティブにしたときに、点線で
囲まれるメール)が選択状態になるようにしてほしいというのが要望です。


 要望に至った背景ですが、たとえばマクロ中で、LockSelectionしてから、フォルダ
を移動して何か処理し、もとのフォルダに戻ってきたときに、「非選択状態にする」に
なっていると、メールが選択状態にならないため、処理を継続することができなくなり
ます(Lockしてるのに!)。
 メールを選択状態にするため、戻ってきてから
 if (dllfunc("MailType") == -1) #n = dllfunc("NextMail");
というような処理を挟めば、処理を継続することができるようになりますが、いちいち
面倒なのと、他にもフォルダを選択したときにメールが選択されないと困ることも多い
ので、マクロの最初でレジストリを操作して、EnvChangedで「非選択状態にする」のチ
ェックを外すようにし、マクロ終了時に元に戻すようにしようと考えました。
 しかし、冒頭述べたように、チェックを外しただけでは「非選択状態」を解除できな
いので困った、というわけです。

 通常使用している場合でも、「非選択状態にする」のチェックを外した場合は、すぐ
にそれが反映された方が自然かな、と思いますので、ご検討いただければ幸いです。

(WIN XP pro sp1、鶴亀2.74)

[ ]
RE:06751 フォルダ切り換え時の非選択状態No.06753
秀まるお さん 03/05/05 23:31
 
 そのように修正しました。ただし、少々手抜きしています。

 「非選択状態にする」のオプションがONからOFFに切り替わった場合には、鶴
亀メールが持っているメール一覧表示およびスレッド表示のウィンドウやキャッ
シュ関係を全部削除します。なので、切り替え時に少々重いです。他の
EnvChaned関係の処理もそうなっている(疑わしき物は全部作り直す)のでまぁ
いいと思いますけど。

[ ]
RE:06753 フォルダ切り換え時の非選択状態No.06754
たまがわ さん 03/05/05 23:52
 
 いろいろと面倒な話にご対応していただき、ありがとうございます。

> 「非選択状態にする」のオプションがONからOFFに切り替わった場合には、鶴
>亀メールが持っているメール一覧表示およびスレッド表示のウィンドウやキャッ
>シュ関係を全部削除します。

 この意味なんですが、たとえば、メールを選択してから、その選択メールに何か処
理をするためのマクロを起動するようなケースを想定した場合、マクロの冒頭に「非
選択状態にする」のチェックを外すような命令を入れると、マクロ起動時の選択状態
まで解除されてしまって困るということはないでしょうか?(あくまでキャッシュを
削除するだけで、現状は変化させないということだとありがたいですが)

[ ]
RE:06754 フォルダ切り換え時の非選択状態No.06756
秀まるお さん 03/05/06 09:30
 
>  この意味なんですが、たとえば、メールを選択してから、その選択メールに何か処
> 理をするためのマクロを起動するようなケースを想定した場合、マクロの冒頭に「非
> 選択状態にする」のチェックを外すような命令を入れると、マクロ起動時の選択状態
> まで解除されてしまって困るということはないでしょうか?

 「全般的な設定」でOKしたり、EnvChanged関数を呼んだりすると、たしかに
メールの選択状態が変わることはあります。例えば10個のメールを選択した状
態だったのに1個だけ選択した状態に戻ることはありえます。

 これはさすがに仕方がないです。仕様と言うしかありません。

[ ]
RE:06756 フォルダ切り換え時の非選択状態No.06757
たまがわ さん 03/05/06 09:56
 
>  「全般的な設定」でOKしたり、EnvChanged関数を呼んだりすると、たしかに
> メールの選択状態が変わることはあります。例えば10個のメールを選択した状
> 態だったのに1個だけ選択した状態に戻ることはありえます。
>
>  これはさすがに仕方がないです。仕様と言うしかありません。

 了解しました。仕様と分かれば、それに応じてマクロ内での対処方法も考えられま
す。どうもありがとうございました。

[ ]
RE:06757 フォルダ切り換え時の非選択状態No.06764
たまがわ さん 03/05/06 19:32
 
 鶴亀2.75で、「非選択状態にする」のチェック解除がすぐに反映されるようになっ
たことを確認しました。

 確かに複数のメールを選択した状態で、マクロの中で「非選択状態にする」の
チェックをはずすようなレジストリ変更・EnvChangedをすると、選択されているメー
ルが一つだけになるようです。ただ、EnvChanedする前にLockSelectionしておけば、
その複数の選択状態は内部的に保持してくれるようなので、私的には問題ないです。

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

[ ]
RE:06764 フォルダ切り換え時の非選択状態No.06770
秀まるお さん 03/05/07 11:25
 
> ただ、EnvChanedする前にLockSelectionしておけば、
> その複数の選択状態は内部的に保持してくれるようなので、私的には問題ないです。

 内部的に保持されたのは偶然だと思います。保証できません。下手すると保護
違反などで死ぬかもしれません。

[ ]
RE:06770 フォルダ切り換え時の非選択状態No.06772
たまがわ さん 03/05/07 13:12
 
秀まるおさん、こんにちは。

> > ただ、EnvChanedする前にLockSelectionしておけば、
> > その複数の選択状態は内部的に保持してくれるようなので、私的には問題ないで
>す。
>
>  内部的に保持されたのは偶然だと思います。保証できません。下手すると保護
> 違反などで死ぬかもしれません。

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

 昨日の夜から、選択状態を維持するためEnvChangedの前後にLockSelectionと
UnlockSelectionを配置したマクロを使っていました(^^;)(今のところ不具合はあり
ませんが、別の手を考えてみます)

 EnvChangedで破壊される可能性がある範囲ですが、一時的に内部に保持された情報
はダメとしても、変数(配列を含む)の内容は保証されると考えてもよろしいでしょ
うか?

[ ]
RE:06772 フォルダ切り換え時の非選択状態No.06773
秀まるお さん 03/05/07 14:20
 
>  EnvChangedで破壊される可能性がある範囲ですが、一時的に内部に保持された情報
> はダメとしても、変数(配列を含む)の内容は保証されると考えてもよろしいでしょ
> うか?

 秀丸エディタのマクロの中で持っている変数の内容は、もちろん保証されます。

[ ]
RE:06773 フォルダ切り換え時の非選択状態No.06774
たまがわ さん 03/05/07 17:54
 
> >  EnvChangedで破壊される可能性がある範囲ですが、一時的に内部に保持された
>情報
> > はダメとしても、変数(配列を含む)の内容は保証されると考えてもよろしいで
>しょ
> > うか?
>
>  秀丸エディタのマクロの中で持っている変数の内容は、もちろん保証されます。

 はっきり確認できたことで、漠然とした不安を払拭することができました。どうも
ありがとうございました。

[ ]