( ゚Д゚)ノ Delギコ猫のプログラミング相談室part2
事故レスだ。
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;
こんな感じ?