Ya que sabes trabajar con un TStringList, complica la cosa un poco más encadenándolos jejeje:
Código:
Archivos (TstringList)
|--------- *.txt ( Objeto asociado a este string: un TStringList)
| |------- Archivos encontrados
| |------- Archivos encontrados
| |------- Archivos encontrados
|
|--------- *.jpg ( Objeto asociado a este string: un TStringList)
|------- Archivos encontrados
|------- Archivos encontrados
Creas un TStringList que guarda la extensión que está buscando y el objeto asociado a ese elemento, es a su vez otro StringList.
Código Delphi
[-]
Archivos.AddObject('*.txt', TStringList.Create);
TStringList(Archivos.Objects[0]).Add('c:\archivo1.txt');
Saludos