12. juni 2002 - 11:41Der er
15 kommentarer og 2 løsninger
Husk indstillinger...
Hvis jeg laver et program med f.eks. nogle checkboxe på, er der så en _simpel_ måde at huske de indstillinger der blev sat ved sidste programkørsel ved næste programkørsel?
Altså - jeg har compileret mit program til en exe-fil. Når brugeren kører programmet sætter han/hun nogle værdier for nogle checkboxe - disse indstillinger skal vises næste gang progreammet kører.
Man kunne jo skrive indstillingerne til en fil og indlæse dem ved programstart - og jeg har en ide om at ProbBag også kan et eller andet - men jeg søger en simpel løsning, _hvis_ det er muligt.
Du kan som peter.erikse siger bruge registry eller som du selv skriver en fil. Der er ikke forskel på de 2 ting, begge dele er lige gode. Propbag bruges ikke i den sammenhæng du efterlyser.
Så må jeg jo være dum når jeg ikke kan få det til at virke. Jeg skal angive "appname", "Section", "Key" og "setting" - og det kan jeg ikke finde ud af. Hvad er f.eks. en "section"...
Så jeg må hellere være lidt mere konkret:
Hvis jeg har en form med f.eks. 2 option-buttons, en checkbox og et textfelt, hvordan gemmer og sætter jeg så værdierne for disse når mit program startes/lukkes?
Altså værdierne : Option1.Value, Option2.Value, Check1.Value og Text1.Text
Se det som en træstruktur De 3 første niveauer kan du ikke ændre: HKEY_CURRENT_USER\SOFTWARE\VB and Visual Basic program settings
...\appname (= Dit programnavn) ...\appname\sections (=brugerdef. underniveauer fx bruger1, bruger2 osv) ...\appname\sections\key (=navn der beskriver det der skan have værdi fx Option1Value) ...\appname\sections\key\Setting (= den værdi der skal angives fx true)
Nu har jeg godt nok lukket spørgsmålet, kjeld - men jeg forstår ikke din sidste sætning. Der skal jo netop ikke angives en værdi (setting), da den skal nappe den setting brugeren satte sidst programmet kørte.
Så hvis en bruger sætter en checkbox til false, synes jeg det er mærkeligt, at den rent faktisk indlæser False (for det virker jo som det skal) når programmet startes og følgende linie afvikles
Det sidste først. Ja. GetSetting henter den værdi der står i "key" (Option2). I Dit eksempel er "True" = Default og bruges kun hvis du ønsker at der skal returneres en bestemt værdi såfremt nøglen ikke findes. Derfor returneres "False" hvis brugeren på et tidspunkt har angivet det og det er gemt med SaveSetting.
Her er vi så ved dit første spørgsmål. SaveSetting angiver nøgle og værdi som sjh siger SaveSetting "Appname", "Setup", "Option2", CStr(Option2.Value)
Prøv at kikke i din reg.database Start\Kør\Regedit.exe og find dit program, så kan du se havd det laver. (Lad være med at ændre noget med Regedit med mindre du er helt sikker. Det kan være farligt. Derfor er det en meget let ting at bruge i VB da det så er under kontrol. :-)
Håber lige jeg kan få lidt "gratis" hjælp her. Jeg har nu gjort præcis som sjh har gjort, men der er problemer alligevel. Først lige koden som jeg har:
Ah, fandt balladen. Den godtager åbenbart ikke End som Unload. Jeg skal bare quitte programmet fra Unload Me.
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.