Visual Basic - guardar configuracion...

Life is soft - evento anual de software empresarial
 
Vista:

guardar configuracion...

Publicado por SoRu (7 intervenciones) el 28/08/2006 09:16:33
hola, a mi programa le he echo un form con varias opciones para poder cambiar cosas del programa y tal, lo que yo quiero es que cuando lo vuelva a iniciar le carge la configuracion que puso, es decir, como una pequeña base de datos que guarde su configuracion

como podria hacer eso?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:guardar configuracion...

Publicado por The Emulator (96 intervenciones) el 28/08/2006 15:54:22
Hola

Una forma de hacer eso seria guarando la configuracion en un archivo e texto y una vez que el programa inicia cargarla.

Por ejemplo quieres guardar la posicion en la que se encuenntra el formulario Top y Left y que cuando se carge el programa aparece en la ultima posicion

Para probar esto crea un proyecto y coloca un formulario con el siguiente codigo

------------------------------------------------------------
Option Explicit

Dim PosicionX As Integer
Dim PosicionY As Integer

Private Sub Form_Load()
Dim Linea As String
Dim NumLinea As Byte

Open "C:\ConfiguracionPrograma.conf" For Append As 1
Close 1

'Leer los valores antes guarados
Open "C:\ConfiguracionPrograma.conf" For Input As 1
While Not EOF(1)
Line Input #1, Linea
NumLinea = NumLinea + 1
Select Case NumLinea
Case 1
PosicionX = CInt(Linea)
Case 2
PosicionY = CInt(Linea)
End Select
Wend
Close 1

'Asignar propiedades
Me.Left = PosicionX
Me.Top = PosicionY
End Sub

Private Sub Form_Unload(Cancel As Integer)
'Tomar posiciones actuales
PosicionX = Me.Left
PosicionY = Me.Top

'Borrar la configuracion guardada
Open "C:\ConfiguracionPrograma.conf" For Output As 1
Close 1

'Guardar la configuracion actual
Open "C:\ConfiguracionPrograma.conf" For Append As 1
Print #1, PosicionX
Print #1, PosicionY
Close 1

End Sub
----------------------------------------------------------------------

La primera vez el formulario aparecera en cualquier posicion ya que no existe configuracion anterior ejecuta el programa y mueve la ventana a cualquier posicion en la ventana, y luego cierra la .

Ejecuta el programa y veras que la ventana aparece en la ultima posicion en la que cerraste.

ESTA ES TAN SOLO UNA FORMA DE HACERLO


Saludos
http://www.theemulator.tk
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:guardar configuracion...

Publicado por SoRu (2 intervenciones) el 28/08/2006 16:51:08
bueno, es lo que busco, pero haber como lo hago, mira tengo 3 options y por ejemplo quiero que al pulsar 1 me lo guarde en el archivo y luego al cargarlo se quede ese marcado. como lo hago? esque me he echo un lio con eso de la posicion del form, si eso agregame a mi msn, [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:guardar configuracion...

Publicado por Mario (107 intervenciones) el 28/08/2006 20:18:15
Tambien pudieras crear un fichero INI, que sea leido cuando inicies el programa, ademas con la posibilidad de cambiar los valores en este, usando el API correspondiente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar Configuracion en Ini

Publicado por Jasall (27 intervenciones) el 29/08/2006 08:45:06
Buenas, te paso un ejemplo echo con Api, las funciones son de [Ex3] http://www.canalvisualbasic.net/forum/forum_posts.asp?TID=25329&PN=1

'un un form poner 3 Option, 1 combo. tendras que ejecutarlo 2 veces para que te cree el archivo ini. te guardara la posicion/tamaño del form, el option seleccionado y el iten del combo seleccionado

Private Declare Function GetPrivateProfileString Lib "kernel32" 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
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Dim NumSel As Integer, ItemSel As Integer
Dim Ruta As String

'Funcion de lectura:
Public Function INI_Read(ByVal Filename As String, ByVal Key_Value As String, ByVal Key_Name As String, Optional ByVal Default As String) As String
On Error GoTo ErrOut

Dim Size As Integer
Dim Value As String


'Se define el tamaño maximo de caracteres
'que podra tener la variable Value:
Value = Space(256)

'Se utiliza la función para obtener
'el valor de la clave:
Size = GetPrivateProfileString(Key_Value, Key_Name, Default, Value, Len(Value), Filename)

'Si el tamaño es mayor a 0 entonces
'se ha encontrado el valor de la clave:
If Size > 0 Then
Value = VBA.Left$(Value, Size)

'Devolvemos el valor de la clave:
If VBA.Right$(VBA.Trim$(Value), 1) = Chr(0) Then Value = VBA.Left$(VBA.Trim$(Value), Len(VBA.Trim$(Value)) - 1)

INI_Read = VBA.Trim$(Value)

Exit Function

End If

ErrOut:
INI_Read = Default

End Function

'Metodo de escritura. Si el archivo al que se refiere el parametro Filename
'no existe se crea automaticamente:
Public Sub INI_Write(ByVal Filename As String, ByVal Key_Value As String, ByVal Key_Name As String, ByVal Value As String)
On Error GoTo ErrOut

Dim Size As Integer

'Escribimos el valor de la clave:
Size = WritePrivateProfileString(Key_Value, Key_Name, Value, Filename)

ErrOut:

End Sub

Private Sub Combo1_Click()
ItemSel = Combo1.ListIndex
End Sub

Private Sub Form_Load()
Ruta = App.Path & "\config.ini"
For i = 1 To 10
Combo1.AddItem i
Next
If (Dir(Ruta) <> "") Then

NumSel = INI_Read(Ruta, "Opciones1", "NumSel")
ItemSel = INI_Read(Ruta, "Combo1", "ItemSel")
Form1.Top = INI_Read(Ruta, "Formulario", "Top")
Form1.Left = INI_Read(Ruta, "Formulario", "Left")
Form1.Width = INI_Read(Ruta, "Formulario", "Width")
Form1.Height = INI_Read(Ruta, "Formulario", "Height")
Select Case NumSel
Case 1
Option1 = True
Case 2
Option2 = True
Case 3
Option3 = True
End Select
Combo1.ListIndex = ItemSel
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
INI_Write Ruta, "Formulario", "Top", Form1.Top
INI_Write Ruta, "Formulario", "Left", Form1.Left
INI_Write Ruta, "Formulario", "Width", Form1.Width
INI_Write Ruta, "Formulario", "Height", Form1.Height
INI_Write Ruta, "Opciones1", "NumSel", NumSel
INI_Write Ruta, "Combo1", "ItemSel", ItemSel
End Sub

Private Sub Option1_Click()
NumSel = 1
End Sub

Private Sub Option2_Click()
NumSel = 2
End Sub

Private Sub Option3_Click()
NumSel = 3
End Sub
'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar