未読メールへのフォーカスNo.00012
マイケル さん 00/11/09 07:34
 
初めましてマイケルと申します。
受信が終わった場合、最初の未読にフォーカスが移動すると
有り難たいです。

[ ]
RE:00012 未読メールへのフォーカスNo.00013
"y.iida" さん 00/11/09 09:03
 
>受信が終わった場合、最初の未読にフォーカスが移動すると
>有り難たいです。

ボクもそれが欲しいです
(その際、そのフォルダが閉じていたら開くと分かりやすいが
 マルチアカウントで一つしかアカウントは開かないの設定の場合は
 結構、面倒ですね(^^;;;)

が、しか〜し、3ペインで読んでいる途中だったりすると
コラッ!となるので、あくまで自分が受信行為をした時と
いう限定が無いと、逆に困るような気もします

という事を考えると、
未読先頭にFocus移動する!という
キー割り当てとアイコンの方が良いような気もします。
(アカウント巡回は先頭アカウントが良いのか?どうかな?
 個人的には、アカウント移動は無しで、
 現アカウント内の方が、良いと思います)

受信後マクロに登録する方法も考えましたが
これだと、前述のように読んでいる途中だった時に
タイマー自動受信で・・・があるので、できないと思います。

[ ]
RE:00012 未読メールへのフォーカスNo.00109
秀まるお さん 00/11/15 16:55
 
> 初めましてマイケルと申します。
> 受信が終わった場合、最初の未読にフォーカスが移動すると
> 有り難たいです。

 マクロで出来るので、その方法でやってほしいです。

    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    #n = dllfunc("SelectFolder", $account, "受信");
    #n = dllfunc("SelectRecvMailInFolder");

 ってな具合で、一応受信したメールの先頭を選択すると思います。これを「受
信が一段落したら」のマクロに登録すればいいと思います。(実際にやってみた
訳ではないですが)

[ ]
RE:00109 未読メールへのフォーカスNo.00124
マイケル さん 00/11/15 17:29
 
マイケルです。

秀まるおさんの 本日 午後 4時55分の
“RE 00012 未読メールへのフォーカス”に関して:
====

>> 初めましてマイケルと申します。
>> 受信が終わった場合、最初の未読にフォーカスが移動すると
>> 有り難たいです。
>
> マクロで出来るので、その方法でやってほしいです。

了解しました。

November 15, 2000 17:28 +0900 (JST)

[ ]
RE:00109 未読メールへのフォーカスNo.00162
"y.iida" さん 00/11/16 22:32
 
>> 受信が終わった場合、最初の未読にフォーカスが移動すると
>> 有り難たいです。
>
> マクロで出来るので、その方法でやってほしいです。
>
>    loaddll "tkinfo.dll";
>    $account = dllfuncstr("CurrentAccount");
>    #n = dllfunc("SelectFolder", $account, "受信");
>    #n = dllfunc("SelectRecvMailInFolder");
>
> ってな具合で、一応受信したメールの先頭を選択すると思います。

周囲要望があるから先ほどから何か作ろうとヘルプと睨めっこしていますが
かなり難儀しているのでご教授下さい。

3ペインで見ているという事があるので勝手に移動するのはマズイ
=自分で受信行為をした時だけ移動したい(MS系と同じ仕様?)
=巡回受信では、未読があるAccountの先頭未読メールへ移動したい

何か良い手がありますでしょうか?

ついでに、「すべて送受信」があって
(俗に言う?巡回受信)「すべて受信」が無いのは何故?

[ ]
RE:00162 未読メールへのフォーカスNo.00179
ひろ さん 00/11/17 14:01
 
 y.iida さん今日は、ひろです。
> =自分で受信行為をした時だけ移動したい(MS系と同じ仕様?)
 これは多分できないです。自分で明示的に行ったかどうかを判定する関数
はなかったのではないでしょうか?
 ただ起動時だけや、最小化や task tray にある時だけ、window size を
戻して focus 移動ならできます。

[ ]
RE:00179 未読メールへのフォーカスNo.00181
"y.iida" さん 00/11/17 14:30
 
お世話様です。

>> =自分で受信行為をした時だけ移動したい(MS系と同じ仕様?)
> これは多分できないです。自分で明示的に行ったかどうかを判定する関数
>はなかったのではないでしょうか?

やっぱ無理ですよね(^^;;;
仕方ないのでこいつは諦めて
マクロ一発(キーから起動してもらう)で未読先頭メールへ行く事にします

 (中身)
 現アカウントの受信フォルダへ移動(要するに先頭)
 受信フォルダの先頭メールを選択
 ↓の未読へ移動
 閉じてるフォルダも開けちゃう

でもでも、未読が無かったら・・・判断できないぞ。どうする?で
詰まってます。
PrevUnread / NextUnread に戻り値が欲しいです >秀まるお様

まだ作ってませんけど、欲しい方が居ます?(苦笑)

[ ]
RE:00181 未読メールへのフォーカスNo.00183
"M.OBARA" さん 00/11/17 14:53
 
 こんにちは、小原です。

>  現アカウントの受信フォルダへ移動(要するに先頭)
>  受信フォルダの先頭メールを選択
>  ↓の未読へ移動
>  閉じてるフォルダも開けちゃう
>
> でもでも、未読が無かったら・・・判断できないぞ。どうする?で
> 詰まってます。

 私の場合は処理の前に今現在のアカウントとフォルダを保存してエラーの
場合は元に戻す処理を入れています。
 しかし "PrevUnread" などに戻り値が無いために処理は出来ていません。
"SelectRecvMail" の場合は大丈夫ですが...人によっては "SelectRecvMail"
の方がよいかもしれないですね。(常に未読がある場合)
 ちゃんと動作しているのかどうか確認していないのですが、私のマクロで

        ・
        ・
    // 色々処理
        ・
        ・
    #n = dllfunc( "NextUnread" );
    #n = dllfunc( "MailType" );
    if( #n == -1 ) {
        #ret = 0;
    }
    if( #ret ) {
        #n = dllfunc( "Sync" );
    }
    if( #ret == 0 && #CurrentAccountNo != 1 ) {
        $CurAccount = dllfuncstr( "Account", #CurrentAccountNo );
        #n = dllfunc( "SelectFolder", $CurAccount, $CurrentFolder );
    }
なんていうコードになっています。動いてなさそうですね。
 あ、「受信フォルダの先頭メールを選択」というコードは入っていません。

> PrevUnread / NextUnread に戻り値が欲しいです >秀まるお様

 これは私も随分前に要望させて頂いていますが、実装していただけると非
常に嬉しいです。

[ ]
RE:00183 未読メールへのフォーカスNo.00189
"y.iida" さん 00/11/17 15:33
 
お世話様です。

ゴミです。

> 私の場合は処理の前に今現在のアカウントとフォルダを保存してエラーの
>場合は元に戻す処理を入れています。

もちろんxxxxUnreadで戻りが得られればそうしますぅ
=ボクとしても移動したくないし(^_^)

>"SelectRecvMail" の場合は大丈夫ですが...

これだと「直前の受信動作」と書いてあるので
今作ろうとしているのでは、放置しても常に先頭にしたいので
ちょっと使えないですね。(試してません)

>        #n = dllfunc( "Sync" );

当然欲しいですが、↑こんなが出来ていたのですね(いつの間に)
素晴らしい、かゆい所に手が届きます!!V(^0^)

それにしてもマクロって凄いなぁ。と思う今日この頃です。
いちいち秀さんに頼まなくても、
動作がある程度自由に作れるなんて!凄い凄い!!

あっ、ToolBarをカスタマイズできるようにする時に
マクロ1〜8のアイコンもお願いします。 >秀まるお様

[ ]
RE:00189 未読メールへのフォーカスNo.00191
"M.OBARA" さん 00/11/17 15:56
 
 こんにちは、小原です。

> > 私の場合は処理の前に今現在のアカウントとフォルダを保存してエラーの
> >場合は元に戻す処理を入れています。
>
> もちろんxxxxUnreadで戻りが得られればそうしますぅ
> =ボクとしても移動したくないし(^_^)

 あ、つまり見ていただきたかったのは
    #n = dllfunc( "MailType" );
    if( #n == -1 ) {
        #ret = 0;
    }
なんです。
 メールを選択されていない状態にしてから"PrevUnread"などの処理を開始
し、実行後に"MailType"を見る方法はどうかな?という事でした。
 しかし完全対応は無理だと思いますが...。

[ ]
RE:00181 未読メールへのフォーカスNo.00198
ひろ さん 00/11/17 16:22
 
 y.iida さん今日は、ひろです。
> PrevUnread / NextUnread に戻り値が欲しいです >秀まるお様
 確かに欲しいですが、以下の対処方法が使えるのではないでしょうか?
 PrevUnread/NextUnread の実行前/後の CurrentAccount/CurrentFolder
/MailIndex が全て一致するかどうかを調べる。全て一致しているなら、
focus が移動していないと判断できる。

[ ]
RE:00198 未読メールへのフォーカスNo.00204
"y.iida" さん 00/11/18 00:06
 
お世話様です。

>> PrevUnread / NextUnread に戻り値が欲しいです >秀まるお様
> 確かに欲しいですが、以下の対処方法が使えるのではないでしょうか?
> PrevUnread/NextUnread の実行前/後のCurrentAccount/CurrentFolder
>/MailIndex が全て一致するかどうかを調べる。全て一致しているなら、
>focus が移動していないと判断できる。

すばらしい、これ頂きます(^_^;)
って、週末は仕事で手一杯なので、来週かな・・・。
ご指導ありがとうございました。

[ ]
RE:00181 未読メールへのフォーカスNo.00340
"y.iida" さん 00/11/22 22:12
 
お世話様です。とりあえず版?公開しました。

>マクロ一発(キーから起動してもらう)で未読先頭メールへ行く事にします

(仕様)
 現存するアカウント先頭の受信フォルダへ移動(要するに先頭)
 ↓の未読へ移動
 未読があればそこへ移動(閉じてるフォルダは、勝手に開く)
 未読が無ければ、そのまま

 (未読がある場合エディタで開く
  未読が無い場合Messageを出す この2点は安易に変更可です)

(制限)
 本体からの起動に限る(鶴亀の仕様都合)
 下の未読は、フォルダを越えて・・がオン(そういう用途だから)

これだけ・・(^^;;;

とりあえずβ版としました、フォルダがいっぱいある方
マルチなAccountな方は、かなり便利だと思うので
宜しければ適当なキーに割り当てて使ってみてください。

http://user1.allnet.ne.jp/~yatt/mac/Rcv_top.lzh

[ ]
RE:00340 未読メールへのフォーカスNo.00342
ひろ さん 00/11/23 18:39
 
 y.iida さん今日は、ひろです。
> (仕様)
>  現存するアカウント先頭の受信フォルダへ移動(要するに先頭)
>  ↓の未読へ移動
 公開するなら以下の点に注意する必要があります。
1)移動した「受信」folder で focus より上に未読は無いのか?
→いったん「受信」folder の先頭に移動すると良い?
2)現在 focus が合っている mail は未読でないのか?

 この処理を加える必要があるのではないでしょうか?
 因みに私は
                     :
                     :
  ##thread = dllfunc("IsThreadView");
  if(##thread)if(!dllfunc("SetThreadView",0))goto error;
  if(!dllfunc("SetMailIndex",0))goto error;
  if(##thread)if(!dllfunc("SetThreadView",1))goto error;
  if(!dllfunc("IsUnread"))#n = dllfunc("NextUnread");
                     :
                     :
  goto ENDING;

error:
  message "DLL 関数の処理に失敗しました。";

ENDING:
  freedll;
  endmacro:
という形で使っています。

 P.S こういった macro を公開するのは良いんだけど、document を書くの
が面倒臭いんだよなあ〜(^^)。

[ ]
RE:00342 未読メールへのフォーカスNo.00344
"y.iida" さん 00/11/23 19:02
 
> y.iida さん今日は、ひろです。

毎度です。

>> (仕様)
>>  現存するアカウント先頭の受信フォルダへ移動(要するに先頭)
>>  ↓の未読へ移動
> 公開するなら以下の点に注意する必要があります。
>1)移動した「受信」folder で focus より上に未読は無いのか?
>→いったん「受信」folder の先頭に移動すると良い?
>2)現在 focus が合っている mail は未読でないのか?
>
> この処理を加える必要があるのではないでしょうか?

あっ、受信フォルダじゃないや
先頭Accountへ移動でした。(テストした限りでは大丈夫でした)
スレッドの事も一応、考えたつもりッスよん♪

> P.S こういった macro を公開するのは良いんだけど、document を書くの
>が面倒臭いんだよなあ〜(^^)。

確かに(^^;;;

[ ]
RE:00342 未読メールへのフォーカスNo.00345
"y.iida" さん 00/11/23 19:14
 
ついでに、ゴミです(^^;;;

>                     :
>  ##thread = dllfunc("IsThreadView");
>  if(##thread)if(!dllfunc("SetThreadView",0))goto error;
>  if(!dllfunc("SetMailIndex",0))goto error;
>  if(##thread)if(!dllfunc("SetThreadView",1))goto error;

この辺は、不具合が出たら考えますって事ではダメなんでしょうか?
というか、フリーでもサポートはできる限りしますが
できるだけ簡素にしておきたいので
(これからマクロを始める人に参考になれば幸い)
不具合が起きてから考えるってパターンでお終いにしておきたいです^^;;;

[ ]
RE:00344 未読メールへのフォーカスNo.00346
"y.iida" さん 00/11/23 19:20
 
>スレッドの事も一応、考えたつもりッスよん♪

と言いつつ、処理漏れがあるようです(^^;;;
このフォーラムをお借りするのは恐縮なので
あとは、ウチでやる事にします。

重ね重ねゴミ失礼しましたm(_ _)m

[ ]
RE:00345 未読メールへのフォーカスNo.00348
ひろ さん 00/11/24 00:41
 
 y.iida さん今日は、ひろです。
> この辺は、不具合が出たら考えますって事ではダメなんでしょうか?
 確かにこの辺りの事は、人各々の stance ですね。失礼しました。

[ ]