Det er da en mulighed og det er nok det nemmeste at lave det i en .ini da man der kan gemme navnene og det gør at det ikke bliver afhængig af en rækkefølge på kolonner.
LoadFromFiles er ikke en god løsning. Det smarteste er at gemme kolonnebredderne i databasen ud for brugerens profil/skærmbillede.
Jeg løber columns igennem og gemmer de synlige kolonner i TObjectList som jeg, vha. TWriter streamer til en tabels blob-felt (har en tabel-relation mellem brugeren og skærmbilledet hvor det gemmes).
I øvrigt gemmer jeg ikke absolutte værdier, men den relative i forhold til skærmens opsætning. Så justerer det sig efter hvilken opsætning brugeren benytter.
Hvorfor ikke gemme det i databasen så det følger brugeren med rundt (hvis altså brugeren logger på systemet, for ellers bliver det jo svært at identificere brugeren).
Det er ret simpelt at beregne. Jeg gemmer forholdet Bredde/Skærmbredde (Screen.Width) og når jeg henter værdien ind igen, ganger jeg faktoren med skærmbredden. Afrundingsfejl ser jeg stort på.
Der er ingen der logger på dette program, så det eneste jeg kan identificere er Windows brugeren. Så databasen er ikke nødvendig i denne opstilling. Jeg kan også godt lide at SaveToFile gemmer rækkefølgen (kunne man sandsynligvis også gemme i db, men hvor mange linier kode vil det kræve?) Når man så tænker på at store systemer som f.eks. Navision også bruger diskfiler til at gemme brugerens indstillinger, så kan jeg også godt leve med at dette lille program her gør det :-)
Det ville nok kræve ca. 5 linjer kode... Det er ikke et problem for man løber bare Columns igennem og registrerer de kolonner der er synlige. Skal man senere lave en editeringsdialog, sammenholder man felter med de der er i datasættet. Jeg hacker det lidt idet jeg kun sammenholder med datasæt-felter hvor tag = 1. På den måde undgår jeg at brugerne kan vælge primærnøgler og andre "system"-felter.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.