[要望]メモ印1.52No.00117
kiwikazuya さん 07/06/07 00:08
 
白雲斎さま、こんばんわ。
中国在住のkiwikazuyaです。

メモ印1.52大変便利に使用させていただいております。
要望なのですが、タグ付けを選択して、タグ付けの選択画面が
ありますが、ここに、タグ・キーワードの新規登録を設置して、
新しいタグ・キーワードがあるときには、ここで新規登録後、
即座にメモを記入できるように変更していただけないでしょうか?

現在の仕様では、新しいタグ・キーワードがある場合、
いったんタグ・キーワードの新規登録をして、再度、
マクロを起動してから、タグを付けるようなので、
ちょっと手間です。

もう一つは、タグ・キーワードを登録するまでもなく、
一時的に使用したい任意のメモも入力できるように
できないでしょうか?
たとえば、新規登録画面で新しいタグ・キーワードを入力して、
登録するかしないかの選択ができるとか。

ご検討いただけると幸いです。
よろしくお願いいたします。

[ ]
RE:00117 [要望]メモ印1.52No.00118
白雲斎 さん 07/06/07 12:23
 
こんにちは“kiwikazuya”さん、白雲斎です。

>要望なのですが、タグ付けを選択して、タグ付けの選択画面が
>ありますが、ここに、タグ・キーワードの新規登録を設置して、
>新しいタグ・キーワードがあるときには、ここで新規登録後、
>即座にメモを記入できるように変更していただけないでしょうか?

タグ・キーワードは、頻繁に変更されたり追加されたりするものではなく、使用
する方の環境に合った、ある程度決まったキーワードを利用すると想定していた
のですが、そういう使い方ではないんですかね!?

マクロの製作段階(いや、Ver1.40以前?)では、タグ選択メニューに新規登録
項目も実装していたのですが、 タグ・キーワードは厳選した物を登録して、闇
雲に追加や編集をして欲しくないと言う思いがあり、その意図を前面に出すには
現在の仕様が良いのではないかと結論付けました。
キーワードの新規登録は、毎日使うものでもないと思うし…。
さて、どうしたものでしょう。

>もう一つは、タグ・キーワードを登録するまでもなく、
>一時的に使用したい任意のメモも入力できるように
>できないでしょうか?
>たとえば、新規登録画面で新しいタグ・キーワードを入力して、
>登録するかしないかの選択ができるとか。

Alt+Enterキーを押せば「メールのプロパティ」ダイアログが表示され、初期状
態ではメモ欄がアクティブになっています。これではダメですか?

※一覧枠で複数選択した場合も、Alt+Enterキーで「メールのプロパティ」ダイ
  アログを表示でき、複数のメールに対してプロパティを操作できます。
  ただし、既存のメモは新しいメモに置き換わるけど…。

タグ以外のメモを操作する機能は、『実装したくない』と言うのが本音です。
マクロの焦点がぼやけるし、インターフェースの面からも、手数が増えるかメニ
ュー項目が増えて、その機能を必要としない人にとっては目障りになるのではと
言う心配もあります。
また、任意メモが入力できるのなら、次は検索機能、次は削除機能、次は…と要
望があがりそうで…。

タグでないメモを操作するなら、それ専用のマクロを用意した方が便利かもしれ
ません。

[ ]
RE:00118 [要望]メモ印1.52No.00119
kiwikazuya さん 07/06/07 14:21
 
白雲斎さん、こんにちわ。中国在住のkiwikazuyaです。

>タグ・キーワードは、頻繁に変更されたり追加されたりするものではなく、使用
>する方の環境に合った、ある程度決まったキーワードを利用すると想定していた
>のですが、そういう使い方ではないんですかね!?
そのキーワードを厳選する以前のことです。
タグもつけていくことで、最後に到達するものが厳選されて
残るということだと考えていました。
それでも、白雲斎さんのおっしゃる通りだと思います。
いろいろタグをつけすぎるとあとで、そのタグをつけた意味さえ、
わからなくなり、結局整理する羽目になります。
目的からブレてはいけないこと、納得です。

>マクロの製作段階(いや、Ver1.40以前?)では、タグ選択メニューに新規登録
>項目も実装していたのですが、 タグ・キーワードは厳選した物を登録して、闇
>雲に追加や編集をして欲しくないと言う思いがあり、その意図を前面に出すには
>現在の仕様が良いのではないかと結論付けました。
>キーワードの新規登録は、毎日使うものでもないと思うし…。
>さて、どうしたものでしょう。

>タグでないメモを操作するなら、それ専用のマクロを用意した方が便利かもしれ
>ません。
そこでお願いがあります。
このタグでないメモを操作する専用のマクロとして、Ver1.40当時の
仕様でこのメモ印1.52と別に使うにはどうすればよいでしょうか?
教えていただけるとたいへん助かります。

よろしくお願いいたします。

[ ]
RE:00119 [要望]メモ印1.52No.00120
白雲斎 さん 07/06/07 17:39
 
こんにちは“kiwikazuya”さん、白雲斎です。

>そこでお願いがあります。
>このタグでないメモを操作する専用のマクロとして、Ver1.40当時の
>仕様でこのメモ印1.52と別に使うにはどうすればよいでしょうか?
>教えていただけるとたいへん助かります。

う〜ん、『こういう使い方です』と一言では言い表せないです。

見本となるマクロを作ればという話になるのでしょうが、私自身はタグ以外でメ
モ機能を利用することはあまりなく、自身が必要としないマクロを作ろうとする
意欲がわかないです。
それに、メモを入力するだけの簡単なマクロを作ったとしても、そこから「表示
範囲」を操作するには? 「検索して一覧」を操作するには? タグと連係する
には? などと話が広がっていきそうで、手を出しにくいです。
(Alt+Enterキーではダメなのかな〜)

メモ印にも、任意の文字列をメモできるようにしようかと考えたことはあったの
ですが、要望があがるであろうタグと連係した検索などの実装が乱雑になり、大
変見通しの悪い(操作し難い)マクロになると懸念し、現在の仕様となりました。
(現在のマクロも、検索関連は操作し難いと思っている)

と、こんな返事しかできませんが、いかがでしょうか?

[ ]
RE:00120 [要望]メモ印1.52No.00121
kiwikazuya さん 07/06/07 17:58
 
白雲斎さん、こんにちわ。中国在住のkiwikazuyaです。

お願いばかりしてすみませんです。
>意欲がわかないです。
>それに、メモを入力するだけの簡単なマクロを作ったとしても、そこから「表示
>範囲」を操作するには? 「検索して一覧」を操作するには? タグと連係する
>には? などと話が広がっていきそうで、手を出しにくいです。
>(Alt+Enterキーではダメなのかな〜)
Alt+Enterキーではダメです。あの画面個人的に合わないんですよね。
メモ入力項目以外の方がメインの感じがして、使いづらいです。
マクロで、ポンっと入力できるのが好みです。
また、任意のメモについては、「表示範囲」も「検索して一覧」も
必要ないと考えていますので、この機能は必要ではありません。

ということで、結局Ver1.30を別のフォルダに入れて、
任意のメモ記入用に使用しています。マクロの項目が増えてしまい
ましたが、とりあえず機能実現です。

[ ]
RE:00121 [要望]メモ印1.52No.00122
白雲斎 さん 07/06/07 18:35
 
こんにちは“kiwikazuya”さん、白雲斎です。

>また、任意のメモについては、「表示範囲」も「検索して一覧」も
>必要ないと考えていますので、この機能は必要ではありません。

では、下記のマクロをどうぞ。



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

if( dllfunc("IsHidemaruMailMain") )
{
    $s = dllfuncstr("CurrentFolder");
    #n = dllfunc("CurrentPane");
    if( #n == 0 &&
        ($s == "" || $s == "受信ログ" || $s == "送信ログ") ) endmacro;

    if( #n == 1 )
    {
        #n = dllfunc("SelectedMailCount");
        if( #n == 1 ) call WriteMemoView;
        else if( #n > 1 )
        {
            if( hidemarucount == 1 ) call WriteMemoList;
            else message "複数選択しての実行は、\n" +
                    "開かれたメールがない状態で実行してください!";
        }
    }
    else if( #n == 2 )
    {
        call WriteMemoView;
    }
    else
    {
        message "メール一覧枠か内容枠で実行してください!";
    }
}
else
{
    call WriteMemoEditor;
}
endmacro;

// 受信、送信済みメールでは 1 (書込み可)
// それ以外は 0 (書込み不可)を返す
ChkMailType:
    ##n = dllfunc("MailType");
    if( ##n < 3 || ##n > 4 ) return 0;
return 1;

SetMemoEditor:
    if( updated ) ##update = true;
    else ##update = false;
    ##r = readonly;
    if( ##r ) ##n = dllfunc("EnableEdit");
    $$s = dllfuncstr("SetHeader", "X-Memo", $$1);
    if( !##update )
    {
        ##n = dllfunc("AlterSave");
        ##n = dllfunc("SetMailFlag", "altered", 0);
    }
    //if( ##r ) readonlyswitch;
    if( ##r ) ##n = sendmessage(hidemaruhandle(0),0x0111,40083,0);
return;

SetMemoList:
    ##n = dllfunc("BeginEditMail");
    $$s = dllfuncstr("SetHeader", "X-Memo", $$1);
    ##n = dllfunc("SaveEditMail", 0, 0);
return;

GetNewMemo:
    if( dllfunc("GetMailFlag", "memo") )
        $$memo = dllfuncstr("CurrentHeader", "X-Memo");
    else
        $$memo = "";

    $$memo = input("メモの入力", $$memo);
    if( $$memo == "" ) endmacro;
return $$memo;

// エディタ・ウインドウ
WriteMemoEditor:
    call ChkMailType;
    if( ##return == 0 ) return;
    call GetNewMemo;
    call SetMemoEditor $$return;
return;

// メール内容枠
WriteMemoView:
    call ChkMailType;
    if( ##return == 0 ) return;
    call GetNewMemo;
    $$memo = $$return;
    ##wnd = dllfunc("OpenedEditorWnd");
    if( ##wnd )
    {
        setactivehidemaru ##wnd;
        call SetMemoEditor $$memo;
    }
    else
    {
        call SetMemoList $$memo;
    }
return;

// メール一覧枠
WriteMemoList:
    $$kword = input("メモの入力");
    if( $$kword == "" ) endmacro;

    question "既存のメモがある場合、追記しますか?\n\n" +
            "「いいえ」で上書き";
    ##isAdd = result;

    ##n = dllfunc("DisableDraw", 0);
    ##n = dllfunc("LockSelection");
    while(1)
    {
        if( dllfunc("EnumSelection", 1) <= 0 ) break;
        call ChkMailType;
        if( ##return == 0 ) continue;

        if( dllfunc("GetMailFlag", "memo") == 1 && ##isAdd == true )
        {
            $$memo = dllfuncstr("CurrentHeader", "X-Memo");
            if( strstr($$memo, $$kword) != -1 ) continue;
        }
        else
        {
            $$memo = "";
        }

        call SetMemoList $$kword + $$memo;
    }
    ##n = dllfunc("UnlockSelection", 1);
    ##n = dllfunc("EnableDraw");
return;

[ ]
RE:00122 [要望]メモ印1.52No.00123
白雲斎 さん 07/06/07 18:51
 
白雲斎です。

失礼、訂正版をアップします。



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

if( dllfunc("IsHidemaruMailMain") )
{
    #n = dllfunc("CurrentPane");
    if( #n == 1 )
    {
        #n = dllfunc("SelectedMailCount");
        if( #n == 1 ) call WriteMemoView;
        else if( #n > 1 )
        {
            if( hidemarucount == 1 ) call WriteMemoList;
            else message "複数選択しての実行は、\n" +
                    "開かれたメールがない状態で実行してください!";
        }
    }
    else if( #n == 2 )
    {
        call WriteMemoView;
    }
    else
    {
        message "メール一覧枠か内容枠で実行してください!";
    }
}
else
{
    call WriteMemoEditor;
}
endmacro;

// 受信、送信済みメールでは 1 (書込み可)
// それ以外は 0 (書込み不可)を返す
ChkMailType:
    ##n = dllfunc("MailType");
    if( ##n < 3 || ##n > 4 ) return 0;
return 1;

SetMemoEditor:
    if( updated ) ##update = true;
    else ##update = false;
    ##r = readonly;
    if( ##r ) ##n = dllfunc("EnableEdit");
    $$s = dllfuncstr("SetHeader", "X-Memo", $$1);
    if( !##update )
    {
        ##n = dllfunc("AlterSave");
        ##n = dllfunc("SetMailFlag", "altered", 0);
    }
    //if( ##r ) readonlyswitch;
    if( ##r ) ##n = sendmessage(hidemaruhandle(0),0x0111,40083,0);
return;

SetMemoList:
    ##n = dllfunc("BeginEditMail");
    $$s = dllfuncstr("SetHeader", "X-Memo", $$1);
    ##n = dllfunc("SaveEditMail", 0, 0);
return;

GetNewMemo:
    if( dllfunc("GetMailFlag", "memo") )
        $$memo = dllfuncstr("CurrentHeader", "X-Memo");
    else
        $$memo = "";

    $$memo = input("メモの入力", $$memo);
    if( $$memo == "" ) endmacro;
return $$memo;

// エディタ・ウインドウ
WriteMemoEditor:
    call ChkMailType;
    if( ##return == 0 ) return;
    call GetNewMemo;
    call SetMemoEditor $$return;
return;

// メール内容枠
WriteMemoView:
    call ChkMailType;
    if( ##return == 0 ) return;
    call GetNewMemo;
    $$memo = $$return;
    ##wnd = dllfunc("OpenedEditorWnd");
    if( ##wnd )
    {
        setactivehidemaru ##wnd;
        call SetMemoEditor $$memo;
    }
    else
    {
        call SetMemoList $$memo;
    }
return;

// メール一覧枠
WriteMemoList:
    $$kword = input("メモの入力");
    if( $$kword == "" ) endmacro;

    question "既存のメモがある場合、追記しますか?\n\n" +
            "「いいえ」で上書き";
    ##isAdd = result;

    ##n = dllfunc("DisableDraw", 0);
    ##n = dllfunc("LockSelection");
    while(1)
    {
        if( dllfunc("EnumSelection", 1) <= 0 ) break;
        call ChkMailType;
        if( ##return == 0 ) continue;

        if( dllfunc("GetMailFlag", "memo") == 1 && ##isAdd == true )
        {
            $$memo = dllfuncstr("CurrentHeader", "X-Memo");
            if( strstr($$memo, $$kword) != -1 ) continue;
        }
        else
        {
            $$memo = "";
        }

        call SetMemoList $$kword + $$memo;
    }
    ##n = dllfunc("UnlockSelection", 1);
    ##n = dllfunc("EnableDraw");
return;

[ ]
RE:00123 [要望]メモ印1.52No.00124
kiwikazuya さん 07/06/07 20:53
 
白雲斎さま、こんばんわ。
中国在住のkiwikazuyaです。

任意メモ記入のマクロありがとうございました。


[ ]