Med hrc´s løsning skal du udskifte denne linie:
aList.Add(SearchRec.Name);
med denne:
aList.Add(ChangeFileExt(SearchRec.Name,''));
Med min løsning skal du benytte dette i stedet:
var
fname : string;
i : integer;
begin
fName:='c:\hk\test1\*.mp3';
SendMessage(ListBox1.Handle, LB_DIR, DDL_ARCHIVE,LongInt(fName));
for i:=0 to ListBox1.Count-1 do
ListBox1.Items[i]:=ChangeFileExt(ListBox1.Items[i],'');
end;
-----------------
ListBox er en windows control, dvs. at det ikke er en komponent som 100% er designet i Delphi, Delphi benytter blot nogle API kald for at få windows til at lave en ListBox. (tror jeg nok)
Windows har så mulighed for at man kan sende nogle kommandoer til Listboxen og til dette bruger man funktionen SendMessage.
Du kan se en beskrivelse af de enkelte parametre der skal benyttes til ListBox her:
http://msdn2.microsoft.com/en-us/library/bb775185(VS.85).aspx