Irgendwie scheint dieses Stoffwechsel-Endprodukt-Wetter auf mein Programmiergemüt zu schlagen

Vielleicht kann mir ja der ein oder andere von Euch etwas auf die Sprüng helfen.
In meiner Video-Verwaltung habe ich bisher den Aufbau eines TreeGadget nach folgendem Schema hardcoded:
Code: Alles auswählen
createmaintree:
;#############################################
;{
;...Create the newly sized image list
newIL = ImageList_Create_(32, 32, #ILC_COLOR32|#ILC_MASK, 0, 700)
;...Icons für die Nodes laden
Define.l dummi = LoadImage( 0,"gfx/0_dummy.ico")
Define.l ico_all = LoadImage( 1,"gfx/all.ico")
Define.l ico_speicherort = LoadImage( 2,"gfx/speicherort.ico")
Define.l ico_hdd = LoadImage( 21,"gfx/hdds.ico")
Define.l ico_cd = LoadImage( 22,"gfx/cds.ico")
Define.l ico_dvd = LoadImage( 23,"gfx/dvds.ico")
Define.l ico_genre = LoadImage( 3,"gfx/genre.ico")
Define.l ico_lohntnich = LoadImage(301,"gfx/_lohntnich.ico")
Define.l ico_abenteuer = LoadImage(302,"gfx/abenteuer.ico")
Define.l ico_action = LoadImage(303,"gfx/action.ico")
Define.l ico_anime = LoadImage(304,"gfx/anime.ico")
Define.l ico_astro = LoadImage(305,"gfx/astro.ico")
Define.l ico_comedian = LoadImage(306,"gfx/comedian.ico")
Define.l ico_comic = LoadImage(307,"gfx/comic.ico")
Define.l ico_diy = LoadImage(308,"gfx/diy.ico")
Define.l ico_doku = LoadImage(309,"gfx/doku.ico")
;.....
Define.l ico_artist = LoadImage( 4,"gfx/artist.ico")
Define.l ico_owner = LoadImage( 5,"gfx/owner.ico")
Define.l ico_ugs = LoadImage( 51,"gfx/ugs.ico")
Define.l ico_todo = LoadImage( 6,"gfx/todo.ico")
;...Icons in die neue Liste
ImageList_ReplaceIcon_(newIL, -1, dummi)
ImageList_ReplaceIcon_(newIL, -1, ico_all)
ImageList_ReplaceIcon_(newIL, -1, ico_speicherort)
ImageList_ReplaceIcon_(newIL, -1, ico_hdd)
ImageList_ReplaceIcon_(newIL, -1, ico_cd)
ImageList_ReplaceIcon_(newIL, -1, ico_dvd)
ImageList_ReplaceIcon_(newIL, -1, ico_genre)
ImageList_ReplaceIcon_(newIL, -1, ico_lohntnich)
ImageList_ReplaceIcon_(newIL, -1, ico_abenteuer)
ImageList_ReplaceIcon_(newIL, -1, ico_action)
ImageList_ReplaceIcon_(newIL, -1, ico_anime)
ImageList_ReplaceIcon_(newIL, -1, ico_astro)
ImageList_ReplaceIcon_(newIL, -1, ico_comedian)
ImageList_ReplaceIcon_(newIL, -1, ico_comic)
ImageList_ReplaceIcon_(newIL, -1, ico_diy)
ImageList_ReplaceIcon_(newIL, -1, ico_doku)
;........
ImageList_ReplaceIcon_(newIL, -1, ico_artist)
ImageList_ReplaceIcon_(newIL, -1, ico_owner)
ImageList_ReplaceIcon_(newIL, -1, ico_ugs)
ImageList_ReplaceIcon_(newIL, -1, ico_todo)
;...Icons in das TreeGadget
AddGadgetItem(#main_tree, -1, "Alles", ico_all, 0)
AddGadgetItem(#main_tree, -1, "Speicherort", ico_speicherort, 0)
AddGadgetItem(#main_tree, -1, "HDDs", ico_hdd, 1)
AddGadgetItem(#main_tree, -1, "CDs", ico_cd, 1)
AddGadgetItem(#main_tree, -1, "DVDs", ico_dvd, 1)
AddGadgetItem(#main_tree, -1, "Genre", ico_genre, 0)
AddGadgetItem(#main_tree, -1, "_lohnt nich", ico_lohntnich, 1)
AddGadgetItem(#main_tree, -1, "Abenteuer", ico_abenteuer, 1)
AddGadgetItem(#main_tree, -1, "Action", ico_action, 1)
AddGadgetItem(#main_tree, -1, "Anime", ico_anime, 1)
AddGadgetItem(#main_tree, -1, "Astro", ico_astro, 1)
AddGadgetItem(#main_tree, -1, "Comedian", ico_comedian, 1)
AddGadgetItem(#main_tree, -1, "Comic", ico_comic, 1)
AddGadgetItem(#main_tree, -1, "DIY", ico_diy, 1)
AddGadgetItem(#main_tree, -1, "Doku", ico_doku, 1)
;......
AddGadgetItem(#main_tree, -1, "Artist", ico_artist, 0)
AddGadgetItem(#main_tree, -1, "Owner", ico_owner, 0)
AddGadgetItem(#main_tree, -1, "ugs", ico_ugs, 1)
AddGadgetItem(#main_tree, -1, "To Do", ico_todo, 0)
;...Get handle to current TreeGadget normal image list
oldIL = SendMessage_(GadgetID(#main_tree), #TVM_GETIMAGELIST, #TVSIL_NORMAL, 0)
;...Replace the old image list with our new one
SendMessage_(GadgetID(#main_tree), #TVM_SETIMAGELIST, #TVSIL_NORMAL, newIL)
;}
Return; createmaintree
Da bestimmt nicht jeder mit meinen Vorgaben übereinstimmt, sollen u.a. die ganzen Icons (bzw. deren Pfade) und die Genres über ein Prefs-Fenster erfaßt und mit in die SQLite-DB geschrieben werden.
Ich hab jetzt 2 Tage darüber gebrütet, wie ich das am geschicktesten in einen oder mehrere Tables verfrachte, aber es ist leider kein Konzept geschlüpft

Hat jemand eine zündende Idee ?
mDv... scholly