Ich habe mir den Ablauf mal mit dem Debugger mit dem Filter .mp3 angeschaut. Er sucht also nur nach MP3-Dateien. Dann läuft das Programm falsch ab. Er geht immer wieder in -1 rein. Dadurch entsteht dieser nette Systemfehler. Habt ihr eine Idee warum ? Ich sehe keinen Grund dafür:
Delphi-Quellcode:
var SR : TSearchRec;
TreeData : TTreeData;
Ext : String;
Idx : Integer;
Icon : HICON;
begin
// Hier lasse ich die Beachtung des Filters und die Dateisuche im allgemeinen weg um den Code für euch übersichtlicher zu gestalten --> Der Code funktioniert in dieser Form nicht, enthält allerdings die problematische Codestelle
Ext := ExtractFileExt(Directory+SR.Name);
GetExtIcon(Ext, Icon, False);
Idx := Icons.IndexOf(Pointer(Icon));
if Idx = -1 then
begin
Icons.Add(Pointer(Icon));
TreeData.fIcon := Pred(Icons.Count);
end else
TreeData.fIcon := Idx;
AddVSTStructure(VST, nil, TreeData);
end;