Je developpe une petite appli sous Delphi. Elle comporte entre autres un ShellListView et un FilterComboBox.
J'ai utilisé un code trouvé sur le net pour filtrer des extensions de fichiers grâce à ces 2 composants :
// Refresh the ShellListView when the filter changes
procedure TForm1.ShellListView1AddFolder(Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
var
XFilterExt, XExt: string;
begin
if FilterComboBox1.Mask <> '*.*' then
begin
XFilterExt := ExtractFileExt(FilterComboBox1.Mask);
XExt := ExtractFileExt(AFolder.PathName);
// Only accept filter and folders
if (CompareText(XExt, XFilterExt) = 0) or AFolder.IsFolder then
CanAdd := True
else
CanAdd := False;
end;
end;
// Refresh the ShellListView when the filter changes
procedure TForm1.FilterComboBox1Change(Sender: TObject);
begin
ShellListView1.Refresh;
end;
Ce code fonctionne mais le problème est que quand la ShellListView est vide (quand je supprime le seul fichier qu'elle contient par exemple), j'ai un message d'erreur List Index out of bounds(0).
Comment puis-je corriger cette erreur? (le bound doit-il commencer à 0 au lieu de -1 par exemple ou quelquechose comme ça?)