Hab's gerade mal mit Delphi 7 ausprobiert.
Der "Fehler" liegt nicht in der TFileListBox, sondern im in der
procedure TFileListBox.ReadFileNames
genutzten FindFirst. Kann man mit 'ner einfachen Routine testen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
sr : TSearchRec;
begin
if FindFirst('c:\temp\*.mmp',faAnyFile,sr) = 0 then begin
ShowMessage(sr.Name
+ #13#13
+ sr.FindData.cAlternateFileName
+ #13#13
+ sr.FindData.cFileName);
end;
end;
Es werden auch die Dateien mit der Endung mmpz gefunden.
Dies gilt analog auch für beliebige andere Dateiendungen, sofern sie länger als drei Zeichen sind, das ist dann wohl der alten Namenskonvention aus DOS-Zeiten von 8.3 geschuldet.
Oder anders formuliert: FindFirst sucht nach den kurzen Dateinamen (TSeachRec.FindData.cAlternateFileName), wie man sie in der Kommandozeile z. B. mit
dir /x
angezeigt bekommt. zu dem so gefundenen werden dann die langen Dateinamen in
TSearchRec.Name
bzw.
TSearchRech.FindData.cFileName
geliefert.
Die Arbeitsweise ist also "korrekt", wenn auch nicht mehr unbedingt zeitgemäß