SelectItemについてNo.08843
jun1 さん 20/09/29 05:07
 
お世話になっています。
ファイルだけを選択するかんたんなスクリプトを作ってみたところ、

<111> ←ここにフォーカスがある
<222>
10
11
12

<111>, 10, 11, 12が選択されてしまいました。

for (var i = 0; i < GetItemCount(); i++) {
// SelectItem)i, 0x21);
    if (isFolder(i) == 0)
        SelectItem(i, 0x01);
}

なにか間違いがあるのか、単純ゆえにわかりませんでした。
申し訳ありませんがご指導をいただけませんでしょうか?

[ ]
RE:08843 SelectItemについてNo.08845
秀丸担当 さん 20/09/29 09:27
 

最初の「<111>」にフォーカスがあるというのが、点線のフォーカスだけでなく選択
もされているとしたら、SelectItemは追加選択をしていくだけなので、そうなってし
まうと思います。

あらかじめ全て選択を解除するといいです。

Command("すべて選択");
Command("選択の切り替え");
for (var i = 0; i < GetItemCount(); i++) {
    if (isFolder(i) == 0)
        SelectItem(i, 0x01);
}

または、最初に見つかった場合だけ追加選択ではないようにするといいです。

var fFound = 0;
for (var i = 0; i < GetItemCount(); i++) {
    if (isFolder(i) == 0)
        if( fFound == 0 ) {
            fFound = 1;
            SelectItem(i, 0x00);
        } else {
            SelectItem(i, 0x01);
        }
}

[ ]
RE:08845 SelectItemについてNo.08847
jun1 さん 20/09/29 17:37
 
>最初の「<111>」にフォーカスがあるというのが、点線のフォーカスだけでなく選択
>もされているとしたら、

この状態でした。たしかに選択されているので、0x01で拾うのは
当然ですね。まったく考えてませんでした。

>または、最初に見つかった場合だけ追加選択ではないようにするといいです。

こちらを利用させていただきます。
細かなことに答えていただき、ありがとうございました。

[ ]