02. september 2003 - 10:12Der er
13 kommentarer og 1 løsning
Gem formularinstillinger
Jeg har en "opsætningsformular" hvor brugeren kan bestemme instillingerne for afviklingen af min app. På formularen er en række forskellige kontroller såsom CheckBox'e, Combobox'e, TextBox'e osv. Jeg vil gerne have gemt instillingerne for de enkelte kontroller i en txt-fil og så hente dem på Form_load.
Eks: Brugeren har valgt følgende: chkBox1 = 1 (afkrydset) txtBox1 = "C:\Temp\" cboBox1 = "Lørdag"
Næste gang formularen åbnes skal det være med de indstillinger.
eller du kan f.eks gemme det i en init file, den er nem at komme til. men nogle API kald ------------------- Private Declare Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
Dim lRet As Long Dim chkBoxvalue As String Dim InitFileName As String
InitFileName = App.Path + "\formopsætning.ini"
chkBoxvalue = "1"
lRet = WritePrivateProfileString("Allgemein", "chkBox1", chkBoxvalue InitFileName) --------------------------------- Private Declare Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Dim chkBoxvalue As String Dim InitFileName As String Dim lRet As Long
'øverest oppe i Form modulet sætter du API´en, de skal "Declares" som Private 'når det er i form mondulet "public" skal de være når de er i et modul. Private Declare Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
'I form load skal vi hente de gamle indstillinger 'dem henter vi med "GetPrivateProfileString" fra filen >formopsætning.ini< 'I samme dir som dit program -> App.Path (application.path)
Dim InitFileName As String InitFileName = App.Path + "\formopsætning.ini"
Dim lRet As Long
'---------------------------------------- 'chechkbox '---------------------------------------- Dim chkBox1value As String 'her sætter vi strengen til at være 100 spaces chkBox1value = Space(100)
' her fjerner vi de overskydene spaces så vi kun har hvad vi skal bruge chkBox1value = Left(chkBox1value, lRet)
If chkBox1value <> "" Then chkBox1.Value = chkBox1value End If '---------------------------------------- 'textbox '---------------------------------------- Dim txtBox1value As String 'her sætter vi strengen til at være 100 spaces txtBox1value = Space(100)
' her fjerner vi de overskydene spaces så vi kun har hvad vi skal bruge txtBox1value = Left(txtBox1value, lRet)
'skriver værdien til textboxen If txtBox1value <> "" Then txtBox1.Text = txtBox1value End If
'----------------------------------------- 'combobox '----------------------------------------- Dim cboBox1value As String 'her sætter vi strengen til at være 100 spaces cboBox1value = Space(100)
Private Sub Form_Unload(Cancel As Integer) 'I form unload skriver vi værdierne til init filen Dim InitFileName As String
InitFileName = App.Path + "\formopsætning.ini"
Dim lRet As Long
Dim chkBox1value As String Dim txtBox1value As String Dim cboBox1value As String
'værdien fra checkboxen og lægger den ned i chkBox1value chkBox1value = chkBox1.Value 'skriver værdien "chkBox1value" til init filen lRet = WritePrivateProfileString("Allgemein", "chkBox1", chkBox1value, InitFileName)
'værdien fra textboxen og lægger den ned i txtBox1value txtBox1value = txtBox1.Text 'skriver værdien "txtBox1value" til init filen lRet = WritePrivateProfileString("Allgemein", "txtBox1", txtBox1value, InitFileName)
'værdien fra comboboxen og lægger den ned i cboBox1value cboBox1value = cboBox1.Text 'skriver værdien "cboBox1value" til init filen lRet = WritePrivateProfileString("Allgemein", "cboBox1", cboBox1value, InitFileName)
Det kører perfekt! Tak for hjælpen. Der kommer sikkert mange spgs. i forbindelse med mit projekt men dem opretter jeg så hen ad vejen og håber så på ligeså god hjælp fremover :-)
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.