A Button1 OnClick eseményében beolvassuk a kiválasztott fájlt. Ha a DFM fájl első bájtjának értéke $FF, akkor ez azt jelenti, hogy bináris formában van tárolva. Ekkor az ObjectResourceToText függvénnyel átalakítjuk szöveggé. A DFM forrás a Memo1 komponensbe kerül.
A DFm forrásban hierarchikusan következnek egymás után az objektumok adatai. Ez azt jelenti, hogy az egyes objektumok egymásba vannak ágyazva. Minden objektum deklarációja az object kulcsszóval kezdődik, majd utána áll az objektum neve, és kettősponttal elválasztva a típusa. Ez utóbbi nem minden objektumnál található meg, de ezzel most nem foglalkozunk.
Az object kulcsszót tartalmazó sor után következnek a komponens property-jei és azok értékei. A hierarchikus elrendezés miatt előfordulhat olyan eset, hogy a property-k között egy újabb komponens következik, majd azután az előző komponens property-jei folytatódnak.
Az adatbázissal kapcsolatos komponenseket nem típus szerint azonosítjuk, hanem bizonyos property-k megléte szerint. A vizuális komponenseknek általában van egy Datasource és egy DataField nevű property-jük. A DFM állomány fájlsoronként dolgozzuk fel, így ha találunk egy ilyen nevű property-t, akkor az biztos, hogy valamelyik előző sorban lévő object után álló komponenshez tartozik. Éppen ezért, ha egy object kulcsszót találunk, akkor az utána álló nevet és típust „megjegyezzük”. A hierarchikus elrendezés miatt viszont nem elég az utolsó komponens adatait megjegyezni, hanem az előzőekét is el kell tárolni. Ez a következőképpen fog működni: létrehozunk egy listát, amelyben a komponensek neveit és típusát tároljuk. Amikor egy object sort találunk, akkor az az után álló nevet felvesszük a listába, az utolsó helyre. Ha a sorok beolvasása során egy megfelelő property-t találunk (pl. Datasource), akkor biztosak lehetünk benne, hogy az a lista végén található komponenshez tartozik. Ebben az esetben a komponenst felvesszük a ListView1-be. Egy komponensnél több property-t is keresünk, ezért előfordulhat, hogy már megtalálható a listában, ezért mielőtt felvennénk a ListView1-be ezt ellenőrizzük.
Folytatva az előző gondolatsort, amikor egy end-et tartalmazó sort találunk, az az aktuális objektum végét jelzi. Ebben az esetben a komponens lista végéről az utoljára felvett komponenst.
Összesen négyféle property-t keresünk, ezek a Datasource, DataField, TableName és DataSet.