Delphi - List Index out of bounds
Foxtrot
-
feunten777 -
feunten777 -
Bonjour,
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?)
Merci d'avance à tous et bonne journée !
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?)
Merci d'avance à tous et bonne journée !
A voir également:
- Delphi - List Index out of bounds
- Hdmi out - Forum Format et connectique vidéo
- Index téléphonique - Guide
- List disk - Guide
- Out of range écran - Forum Windows
- Av out - Forum Cinéma / Télé