( ゚Д゚)ノ Delギコ猫のプログラミング相談室part2

このエントリーをはてなブックマークに追加
522505
事故レスだ。
ShellListView の AddFolder イベントは、
フォルダだけではなく、どんな種類のファイルでも
とにかくリストビューに追加する時には
いつでも発生するみたい。
故に、以下のようにすればよいと思われる。

procedure TForm1.ShellListView1AddFolder(Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
var
 Ext:string;
begin
 Ext := ExtractFileExt( AFolder.PathName );
 if AFolder.IsFolder then Exit; //フォルダは無条件でOK
 CanAdd := if AnsiMatchText( Ext, ['.jpg', '.jpeg', '.bmp' ] );
end;
>522
駄レスだが…
判定順序を変えては?
こうした方がフォルダがたくさんあるの時は動作が比較的軽くなるかと思われ。
あと CanAdd := if 〜 のif は不要と思われ。

procedure TForm1.ShellListView1AddFolder(Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
var
 Ext:string;
begin
 if AFolder.IsFolder then Exit; //フォルダは無条件でOK
 Ext := ExtractFileExt( AFolder.PathName );
 CanAdd := AnsiMatchText( Ext, ['.jpg', '.jpeg', '.bmp' ] );
end;

こんな感じ?