Nun ja ... das ist ja auch ganz logisch ...

Jedes Verzeichnis enthaellt die Unterverzeichnisse . und ..
Allerdings fragst du nur 2 Verzeichnisse ab, eines mit FindFirst und eines mit FindNext, das du durch das IF nur ein mal ausfuehrst.

Probiere es also mal mit

Code:
While FindNext(SearchRec) = 0 do
   ddm_mod.Items.Add(SearchRec.name);
FindClose(SearchRec);