Resumiendo, tengo un GUI con un ListView. Cada ListViewItem se rellena con cada fila de una base de datos, hasta ahi todo bien. Cuando uno le hace clic a un ListViewItem llama a esta funcion, q lo q hace es permitir cambiar los datos, mostrar algunas imagenes y tmb hay un RichEdit para poner datos extras...
Bueno aqui el problema. Resulta que para mostrar las imagenes yo hago un _FileListToArray del directorio que quiero. En este caso, cada vez que agrego un usuario a la db se crea una carpeta llamada "Registros" (por unica vez), dentro de esa se crea una carpeta con el ($Legajo & " - " & $Apellido & ", " & $Nombre), dentro de esa carpeta se crea otra que se llama "Imágenes", para meter todas las imagenes de ese usuario. Bueno, si el _FileListToArray no encuentra ninguna imagen "*.jpg" en este caso, me va a dar un error y se me va a salir del programa, por eso necesito ponerle una condicion que seria con un If" $Lista_Imagenes[0] <> "0" Then que haga el for y muetre todas las imagenes que alla encontrado (todavia lo estoy armando, solo puse que se vean 5 imágenes)
El problema es que el _FileListToArray pareciera q no anda o anda por la mitad, porque? Bueno si se fijan hay un _ArrayDisplay documentado, si yo lo activo, cuando llamo a la funcion se me tilda, aparece el _ArrayDisplay, pero se tilda el programa y tengo que cerrarlo.
Si lo documento como ahora, el programa anda perfecto, me deja recorrer el Array con el For y me muetra la imagenes, pero $Lista_Imagenes[0] no funciona, osea no me llena el lugar 0 del array con la cantidad de imagenes que encontro, por lo lo que no puedo usar el If que comente anteriormente, y si no hay imagenes, el prgrama me da error y se cierra.
Les pongo una imagen del error.
http://picturetogo.com/images/2010/12/2 ... dibujo.jpg
Foto para q vean que anda si saco _ArrayDisplay y demas
http://picturetogo.com/images/2010/12/2 ... ibujo2.jpg
No pongo el code completo porque tiene 1500 lineas
Código: Seleccionar todo
Func _Edit($ID, $Apellido, $Nombre, $Direccion, $Numero, $Piso, $Localidad, $CP, $DNI, $Legajo, $Telefono, $Prioridad, $Email, $Fecha)
;~ Local $Left = "0"
$Directorio = @ScriptDir & "\Registros\" & $Legajo & " - " & $Apellido & ", " & $Nombre & "\Imágenes\"
;~ MsgBox(0, "", $Directorio)
$Lista_Imagenes = _FileListToArray($Directorio, "*.png")
_ArrayDisplay($Lista_Imagenes)
$GUI_Datos = GUICreate("Editar - " & $ID & " - " & $Apellido & ", " & $Nombre, 800, 600, -1, -1)
;~ If $Lista_Imagenes[0] <> "0" Then
;~ For $s = 1 To $Lista_Imagenes[0]
;~ GUICtrlCreatePic($Directorio & $Lista_Imagenes[$s], 30 + $Left, 440, 140, 100)
;~ $Left += 150
;~ Next
;~ EndIf
GUICtrlCreateGroup("Datos personales ...", 10, 10, 230, 365)
$Apellido_Input_MD = GUICtrlCreateInput($Apellido, 80, 30, 150, 21)
$Apellido_Label_MD = GUICtrlCreateLabel("Apellido", 24, 30, 46, 20, $SS_CENTERIMAGE)
$Nombre_Input_MD = GUICtrlCreateInput($Nombre, 80, 55, 150, 21)
$Nombre_Label_MD = GUICtrlCreateLabel("Nombre", 24, 55, 54, 20, $SS_CENTERIMAGE)
$Direccion_Input_MD = GUICtrlCreateInput($Direccion, 80, 80, 150, 21)
$Direccion_Label_MD = GUICtrlCreateLabel("Dirección", 24, 80, 54, 20, $SS_CENTERIMAGE)
$Numero_Input_MD = GUICtrlCreateInput($Numero, 80, 105, 58, 21)
$Numero_Label_MD = GUICtrlCreateLabel("Número", 24, 105, 40, 20, $SS_CENTERIMAGE)
$Piso_Input_MD = GUICtrlCreateInput($Piso, 180, 105, 50, 21)
$Piso_Label = GUICtrlCreateLabel("Piso", 150, 105, 20, 20, $SS_CENTERIMAGE)
$Localidad_Input_MD = GUICtrlCreateInput($Localidad, 80, 130, 150, 21)
$Localidad_Label_MD = GUICtrlCreateLabel("Localidad", 24, 130, 54, 20, $SS_CENTERIMAGE)
$CP_Input_MD = GUICtrlCreateInput($CP, 80, 155, 150, 21)
$CP_Label_MD = GUICtrlCreateLabel("C.P", 24, 155, 22, 20, $SS_CENTERIMAGE)
$DNI_Input_MD = GUICtrlCreateInput($DNI, 80, 180, 150, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
$DNI_Label_MD = GUICtrlCreateLabel("DNI", 24, 180, 22, 20, $SS_CENTERIMAGE)
$Legajo_Input_MD = GUICtrlCreateInput($Legajo, 80, 205, 150, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
$Legajo_Label_MD = GUICtrlCreateLabel("Legajo", 24, 205, 38, 20, $SS_CENTERIMAGE)
$Telefono_Input_MD = GUICtrlCreateInput($Telefono, 80, 230, 150, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
$Telefono_Label_MD = GUICtrlCreateLabel("Teléfono", 24, 230, 54, 20, $SS_CENTERIMAGE)
$Prioridad_Input_MD = GUICtrlCreateCombo($Prioridad, 80, 255, 150, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "1 - Corto plazo|2 - Largo plazo|3 - Urgente|4 - Entregado")
$Prioridad_Label_MD = GUICtrlCreateLabel("Prioridad", 24, 255, 46, 20, $SS_CENTERIMAGE)
$eMail_Input_MD = GUICtrlCreateInput($Email, 80, 280, 150, 21)
$eMail_Label_MD = GUICtrlCreateLabel("E-mail", 24, 280, 38, 20, $SS_CENTERIMAGE)
$Fecha_Input_MD = GUICtrlCreateInput($Fecha, 80, 305, 150, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Fecha_Label_MD = GUICtrlCreateLabel("Fecha", 24, 305, 46, 20, $SS_CENTERIMAGE)
$ID_Input_MD = GUICtrlCreateInput($ID, 10, 10, 50)
GUICtrlSetState(-1, $GUI_DISABLE + $GUI_HIDE)
GUICtrlCreateGroup("Información extra ...", 250, 10, 540, 365)
$Tamanio_Letra = GUICtrlCreateCombo("", 260, 30, 40, 50)
GUICtrlSetData(-1, "8|9|10|11|12|14|16|18|20|22|24|26|28|36|48|72|", "10")
$Tipo_Letra = GUICtrlCreateCombo("", 305, 30, 125, 50)
GUICtrlSetData(-1, "Times New Roman|Arial", "Times New Roman")
$Rich_Edit = _GUICtrlRichEdit_Create($GUI_Datos, "", 260, 55, 520, 310, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
GUICtrlCreateGroup("Imágenes ...", 10, 380, $Ancho_GUI - 20, 205)
$Boton_Guardar_Cambios = GUICtrlCreateButton("Guardar cambios", 20, 340, -1, 25)
$Boton_Cancelar = GUICtrlCreateButton("Cancelar", 180, 340, 50, 25)
$Boton_Limpiar = GUICtrlCreateButton("Limpiar", 130, 340, 50, 25)
If FileExists(@ScriptDir & "\Registros\" & $Legajo & " - " & $Apellido & ", " & $Nombre & "\Información extra.rtf") Then
_GUICtrlRichEdit_StreamFromFile($Rich_Edit, @ScriptDir & "\Registros\" & $Legajo & " - " & $Apellido & ", " & $Nombre & "\Información extra.rtf")
EndIf
;~ MsgBox(0, "", @ScriptDir & "\Registros\" & $Legajo & " - " & $Apellido & ", " & $Nombre & "\Imágenes\")
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3, $Boton_Cancelar
GUIDelete($GUI_Datos)
ExitLoop
Case $Boton_Guardar_Cambios
;Aca va un code largo que comprueba si los imputs estan todos llenos, si es asi, llama a una funcion para rellenar una base de datos con esos datos. Y un par de cosas mas q no vienen al caso porque no es aca el errror
GUIDelete($GUI_Datos)
ExitLoop
Case $Boton_Limpiar
_Borrar_Inputs_MD()
Case $Tamanio_Letra, $Tipo_Letra
_GUICtrlRichEdit_SetFont($Rich_Edit, GUICtrlRead($Tamanio_Letra), GUICtrlRead($Tipo_Letra))
EndSwitch
Sleep(10)
WEnd
EndFunc ;==>_Edit