Amigos les cuento, tengo un problema, no logro hacer funcionar lo que quiero, es algo complejo de explicar, les cuento:
tengo un checkbox que:
1. cuando se marca cambia el nombre de una carpeta
2. cuando se desmarca cambia por el nombre anterior
(http://i55.servimg.com/u/f55/14/27/29/04/ddddd10.png)
El tema es que quiero que el programa detecte el nombre que tiene para marcar o no marcar el checkbox, trate de hacer lo siguiente. Cuando se inicie el programa haga una comprobación del nombre que tiene la carpeta y marque o desmarque el checkbox.
este es el código:
Private Sub Check1_Click()
If Check1.Value = 1 Then
Name "C:\activo" As "C:\inactivo"
Else
Name "C:\inactivo" As "C:\activo"
End If
End Sub
Private Sub Form_Load()
If Len("C:\activo") = 0 Then
Check1.Value = 0
Else
Check1.Value = 1
End If
End Sub
mas que nada quiero saber como hacer para que cuando se marque una opción al volver a iniciar el programa aparezca la opción marcada.
Difícil de explicar, espero alguien entienda.
dejo el proyecto por si alguien me da una mano por favor
https://mega.co.nz/#!2MZjGJRQ!aCjfA5BJFmhi1_qzh4eqVaWX8-xV198JfNNoFFccWH0
jejejejeje XD , recuerdo que una vez tube el mismo problema, no soy un profesional en vb6 , pero lo resolvi de esta forma , mira el error ante todo se produce, porque al cargar el formulario, envia la señal de volver a activar el checkbox , y al hacerlo , intenta repetir la misma orden , y como la orden ya ha sido echa, no encuentra el archivo . bueno en mi caso lo resolvi asi:
primero puse una variable global
Dim X As Integer
luego para detectar el archivo activo puse en el form_load :
X = 0
Set Carpeta = New FileSystemObject
If Not Carpeta.Folderexists("C:\activo") Then
Check1.Value = 0
Else
Check1.Value = 1
End If
y para que no ejecute una accion repetida creé una condicion if con " X " no con el checkbox , de tal forma que si x= 1 entonces se ejecute recien la condicion:
If X = 1 Then
If Check1.Value = 0 Then
Name "C:\activo" As "C:\inactivo"
Else
Name "C:\inactivo" As "C:\activo"
End If
End If
como abras visto en la carga del formulario se le da el valor 0 por lo tanto no hara nada cuando el formulario envie la orden al click del chekbox , y para que se active justo en el momento preciso en que vas a seleccionar el checkbox utilice:
Private Sub Check1_GotFocus()
X = 1
End Sub
esto esta basado en tu codigo, el mio era mas largo XD en total todo el codigo se veria asi :
Dim X As Integer
Private Sub Form_Load()
X = 0
Set Carpeta = New FileSystemObject
If Not Carpeta.Folderexists("C:\activo") Then
Check1.Value = 0
Else
Check1.Value = 1
End If
End Sub
Private Sub Check1_Click()
If X = 1 Then
If Check1.Value = 0 Then
Name "C:\activo" As "C:\inactivo"
Else
Name "C:\inactivo" As "C:\activo"
End If
End If
End Sub
Private Sub Check1_GotFocus()
X = 1
End Sub
espero que te sirba, como repito no soy experto , si hay cosas que s e puedan corregir , pake no sea mucho codigo, psss ya depende de ti, suerte..
hermoso, funciono genial
muchas gracias amigo :D
De nada amigo