En cuanto al programa MiValenBisi, ayer estuve peleando para poner color a los números de bicicletas libres, según si eran 0, menores o mayores que 5. El ListView lo rellenaba con _GUICtrlListView_AddItem, pero después de buscar maneras de poner color a una celda de la lista, encontrar programas y UDFs, pero no conseguir hacerlo funcionar en mi programa, decidí cambiarlo por GUICtrlCreateListViewItem y así poder dar color (aunque en este caso a toda la línea) con GUICtrlSetBkColor.
He limpiado, ordenado y comentado un poco el código. Os dejo la última versión hasta la fecha, incluyendo las cosillas que me habéis comentado, antes de crear un nuevo tema en el sub-foro de "esScripts".
Aprovecho para preguntar (por no abrir otro tema) ¿qué es y para qué sirve AutoIt3Wrapper? Lo veo en muchos códigos, como, por ejemplo, en alguno de los que ha publicado BasicOS en el tema sobre Autoit Portable.
Código: Seleccionar todo
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=App\Icons\autoitEspanol.ico
#AutoIt3Wrapper_outfile=AutoItPortableES.exe
#AutoIt3Wrapper_UseX64=N
#AutoIt3Wrapper_Res_Description=AutoIt3 Portable
#AutoIt3Wrapper_Res_Fileversion=3.3.6.1
#AutoIt3Wrapper_Res_Field=Website|
#AutoIt3Wrapper_Res_Field=E-Mail|comment at the website
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#AutoIt3Wrapper_Run_Obfuscator=Y
#Obfuscator_Parameters=/SF /SV /OM /CS=0 /CN=0
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
¡Un saludo!
Código actualizado de MiValenBisi
|
V
Código: Seleccionar todo
;-------------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------------
; Lee datos de estación de Valenbisi según explicación en la página: http://boozox.net/boozox/api-de-valenbisi-servicio-de-jcdeacaux/
;-------------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------------
;
;
; http://www.valenbisi.es/service/stationdetails/num_estacion -> Contiene los datos de la estación "num_estacion" relativos al número de bornetas totales, libres y número de bicicletas libres
;
; http://www.valenbisi.es/service/carto -> Contiene listado de estaciones con su información (nombre, número, dirección, latitud, longitud,...)
; ---------- Versiones ----------
; 20110213: Guarda posición y dimensiones de ventana, y anchos de columna en archivo .ini para utilizarlo en la siguiente sesión
; 20110225: Corregidos errores con ayuda del foro Autoit en Español: http://www.emesn.com/autoitforum/viewtopic.php?f=12&t=2545
; 20110228: Comprueba si existe conexión a internet
; Añadidos colores según haya 0, 1 a 4, 5 o más bicicletas
;
#include ".\includes\_XMLDomWrapper.au3" ; Comillas para que busque en relación al directorio del programa. Punto para indicar la carpeta raíz del programa.
;#include ".\includes\LV_Format_include.au3" ; http://www.autoitscript.com/forum/topic/89654-listview-for-every-subitem-set-color-backcol-and-font/
#include <File.au3>
#include <Array.au3>
#include <String.au3> ; Para _StringExplode
#include <Constants.au3>
#include <EditConstants.au3>; Para variables de controles edit
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
Global $s_GIF_Report_Activity_Running = @ScriptDir & "\smf_progress_running.gif"
#include "_misfunc.au3"
; ============================ Opciones ============================ ;
Opt("MustDeclareVars", 1) ;Después de los includes porque sino, también se obliga a declarar las variables en éstos, y no siempre están declaradas.
;Opt("GUIResizeMode", 802) ; 802=(2+32+256+512) el control no se moverá durante el cambio de tamaño
Opt("GUIOnEventMode", 1) ; Para tener un evento en cada control
#Region Variables
; ============================ Definición de variables ============================ ;
Global $oXML = ObjCreate("Microsoft.XMLHTTP")
;--- Datos para ventana GUI, posición, tamaño y anchos de columna de ListView ---
Global $TituloGUI = "MiValenBisi (jamaro 2011)"
Global $Ventana_X = -1, $Ventana_Y = -1
Global $Ventana_Ancho = 450, $Ventana_Alto = 325
Global $columnaLV[5] = [50, 175, 65, 65, 65]
Global $columnaLVleida[5]
;--- Colores ---
Global $C_Blanco=0xFFFFFF, $C_Verde=0x00FF00, $C_Amarillo=0xFFFF00, $C_AmarilloClaro=0xF3F781, $C_Rojo=0xFF0000, $C_RojoClaro=0xF78181 ,$C_VerdeClaro=$CLR_MONEYGREEN
Global $defBkColLV = 0xFFFFFF
;--- Para manejo de archivo y lectura de datos de estación ---
Global $sFile, $sFile1, $file1, $fileXML, $sXPath, $direccion_estacion ; Para LeeDatosEstacion()
;--- Mensajes de ayuda ---
Global $MensajeEstaciones = "Los números de estación puede obtenerlos del plano de estaciones de Valenbisi de:" & @CR & "- mapa en papel" & @CR & "- página oficial www.valenbisi.es (pulsando sobre el icono de la estación)" & @CR & "- Página no oficial www.bicivalencia.com (pulsando sobre el icono de la estación)"
Global $MensajeAutor = "Para cualquier sugerencia puede contactar con el autor en: [email protected]"
;--- Utilizadas primero en LeeDatosIni()
Global $archivoini = @ScriptDir & "\" & StringLeft(@ScriptName, StringLen(@ScriptName) - 4) & "_estaciones.ini"
Global $num_estacion[1][1] ;Estación, Dirección, BicisLibres, BornetasLibres, BornetasTotales (Después se ReDimensiona en la función correspondiente)
Global $texto_estaciones, $estaciones
;--- Utilizadas primero en Principal()
Global $datoslibres, $datosestacion
LeeDatosIni() ; Lectura de datos de archivo .ini (dimensiones de ventana, anchos de columna de listview, número de estación a
;_ArrayDisplay($num_estacion)
; Crea Interfaz Gráfica de Usuario (GUI)
Global $gui_main = GUICreate($TituloGUI, $Ventana_Ancho, $Ventana_Alto, $Ventana_X, $Ventana_Y, $WS_SIZEBOX)
GUISetOnEvent($GUI_EVENT_CLOSE, "GUI_Principal_Cierra")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
Global $hListView = GUICtrlCreateListView("", 2, 2, $Ventana_Ancho - 10, $Ventana_Alto - 100)
_GUICtrlListView_SetUnicodeFormat($hListView, False)
GUICtrlSetResizing($hListView, $GUI_DOCKAUTO)
Global $CajaTextoMensaje = GUICtrlCreateEdit("Utilice el menú contextual (botón derecho del ratón) para opciones", 2, $Ventana_Alto - 80, $Ventana_Ancho - 10, 20, $ES_CENTER + $ES_READONLY)
GUICtrlSetResizing($CajaTextoMensaje, $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT + $GUI_DOCKHCENTER)
Global $BActualizar = GUICtrlCreateButton("Actualizar", 2, $Ventana_Alto - 50, $Ventana_Ancho - 10, 20)
GUICtrlSetResizing($BActualizar, $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT + $GUI_DOCKHCENTER)
GUICtrlSetOnEvent($BActualizar, "BActualizar")
GUISetState()
; Añade columnas al ListView
_GUICtrlListView_AddColumn($hListView, "Estación", $columnaLVleida[0])
_GUICtrlListView_AddColumn($hListView, "Dirección", $columnaLVleida[1])
_GUICtrlListView_AddColumn($hListView, "Bicis Libres", $columnaLVleida[2])
_GUICtrlListView_AddColumn($hListView, "Bornetas Libres", $columnaLVleida[3])
_GUICtrlListView_AddColumn($hListView, "Bornetas Totales", $columnaLVleida[4])
; Crea menú contextual
Global $contextmenu = GUICtrlCreateContextMenu($hListView)
Global $ItemEditarEstaciones = GUICtrlCreateMenuItem("Editar estaciones", $contextmenu)
GUICtrlSetOnEvent(-1, "EditaEstaciones") ; define el evento
GUICtrlCreateMenuItem("", $contextmenu) ; separator
Global $infoitem = GUICtrlCreateMenuItem("Info", $contextmenu)
GUICtrlSetOnEvent(-1, "MuestraInfo") ; define el evento
principal() ; ejecuta la función principal
While 1
;
WEnd
; ============= FUNCIONES =============
;-------------------------------------------------------------------------------------------
; Lectura de datos del archivo .ini (dimensiones y posición de ventana, anchos de columnas de listview y números de estaciones)
;-------------------------------------------------------------------------------------------
Func LeeDatosIni()
If FileExists($archivoini) Then ; Si existe el archivo .ini
;MsgBox(0,"Aviso","Existe el archivo .ini")
$Ventana_X = IniRead($archivoini, "Configuracion", "Ventana_X", 400)
$Ventana_Y = IniRead($archivoini, "Configuracion", "Ventana_Y", 325)
$Ventana_Ancho = IniRead($archivoini, "Configuracion", "Ventana_Ancho", -1)
$Ventana_Alto = IniRead($archivoini, "Configuracion", "Ventana_Alto", -1)
cw("Datos de ventana: " & $Ventana_X & "," & $Ventana_Y & "," & $Ventana_Ancho & "," & $Ventana_Alto)
Else
MsgBox(0, "Aviso", "No existe el archivo .ini necesario." & @CR & @CR & "A continuación se le pedirá que introduzca los números de estación deseados, separados por comas." & @CR & @CR & $MensajeEstaciones)
CreaIni()
EndIf
Local $TextoCWcolumnas = ""
$texto_estaciones = IniRead($archivoini, "Estaciones", "num", "NO_HAY")
If $texto_estaciones = "NO_HAY" Then
MsgBox(0, "Aviso", "No existe ninguna estación en el archivo .ini" & @CR & @CR & "A continuación se le pedirá que introduzca los números de estación deseados, separados por comas." & @CR & @CR & $MensajeEstaciones)
CreaIni()
$texto_estaciones = IniRead($archivoini, "Estaciones", "num", "NO_HAY")
EndIf
cw("Estaciones leidas: " & $texto_estaciones)
$estaciones = _StringExplode($texto_estaciones, ",", 0)
For $i = 0 To 4
$columnaLVleida[$i] = IniRead($archivoini, "Configuracion", "Columna" & $i, $columnaLV[$i])
$TextoCWcolumnas = $TextoCWcolumnas & " " & $columnaLVleida[$i]
Next
cw("Ancho Columnas: " & $TextoCWcolumnas)
ReDim $num_estacion[UBound($estaciones)][5] ;Estación, Dirección, BicisLibres, BornetasLibres, BornetasTotales
For $i = 0 To UBound($estaciones) - 1
$num_estacion[$i][0] = $estaciones[$i] ; Estación
$num_estacion[$i][1] = 0 ; Dirección
$num_estacion[$i][2] = 0 ; BicisLibres
$num_estacion[$i][3] = 0 ; BornetasLibres
$num_estacion[$i][4] = 0 ; BornetasTotales
Next
EndFunc ;==>LeeDatosIni
;-------------------------------------------------------------------------------------------
; Crea archivo .ini con los números de estaciones que introduce el usuario
;-------------------------------------------------------------------------------------------
Func CreaIni($texto_estaciones = "")
While 1
Local $estaciones_usuario = InputBox("Nuevas estaciones", "Introduzca las estaciones que desea mostrar, separadas por coma. (ej: 173,172,143)" & @CR & @CR & $MensajeEstaciones & @CR & @CR, $texto_estaciones, " M", 500, 250) ; M para que necesariamente se introduzca algún valor
If StringRegExp($estaciones_usuario, "[^0-9|,]", 0) = 1 Then ; si no se introducen sólo digitos y comas
mb("Se ha introducido caracteres no válidos." & @CR & "Sólo puede introducir números y comas." & @CRLF)
$texto_estaciones = $estaciones_usuario ; Pone en $texto_estaciones el texto introducido para que pueda ser modificado
Else
cw("Los datos introducidos en el INPUTBOX son correctos: " & $estaciones_usuario & @CRLF)
If $estaciones_usuario = "" Then
cw("Se ha cancelado la operación de modificar estaciones. Se saldrá de la operación.")
ExitLoop
Else
; Elimina posibles comas al inicio y/o final del texto introducido
While StringInStr($estaciones_usuario, ",,") ;mientras encuentre comas repetidas
$estaciones_usuario = stringreplace($estaciones_usuario, ",,", ",") ;reemplaza ,, por , en caso de que se haya introducido repetida
WEnd
If StringLeft($estaciones_usuario, 1) = "," Then $estaciones_usuario = StringRight($estaciones_usuario, StringLen($estaciones_usuario) - 1)
If StringRight($estaciones_usuario, 1) = "," Then $estaciones_usuario = StringLeft($estaciones_usuario, StringLen($estaciones_usuario) - 1)
IniWrite(@ScriptDir & "\" & StringLeft(@ScriptName, StringLen(@ScriptName) - 4) & "_estaciones.ini", "Estaciones", "Num", $estaciones_usuario)
ExitLoop
EndIf
EndIf
WEnd
EndFunc ;==>CreaIni
Func principal()
Local $ColorListViewActual
$ColorListViewActual = $C_Blanco ; Define el blanco como color de fondo del ListView
GUICtrlSetBkColor($hListView, $C_VerdeClaro) ; Cambia el color de fondo a verde
GUICtrlSetData($BActualizar, "... Actualizando datos de estaciones ...") ; Cambia el texto del botón
For $a = 0 To UBound($estaciones) - 1 ; Número de estaciones
$datoslibres = leelibres($num_estacion[$a][0])
cw("Leido datoslibres de " & $num_estacion[$a][0])
$datoslibres = StringSplit($datoslibres, ",")
;_ArrayDisplay($datoslibres)
$datosestacion = leedatosestacion($num_estacion[$a][0])
cw("Leido 'datosestacion' de " & $num_estacion[$a][0])
$num_estacion[$a][1] = $datosestacion ; Dirección de estación
$num_estacion[$a][2] = $datoslibres[1] ; Bicis libres
$num_estacion[$a][3] = $datoslibres[2] ; Bornetas libres
$num_estacion[$a][4] = $datoslibres[3] ; Bornetas totales
cw("Estación: " & $num_estacion[$a][0] & " - " & "Dirección: " & $num_estacion[$a][1] & " - Bicis libres / Bornetas libres / Bornetas totales: " & $num_estacion[$a][2] & " / " & $num_estacion[$a][3] & " / " & $num_estacion[$a][4])
;_GUICtrlListView_AddItem($hListView, $num_estacion[$a][0], 0) ; Número de estación en la primera (0+1) columna
GUICtrlCreateListViewItem($num_estacion[$a][0],$hListView) ; Con función propia de Autoit para que se pueda cambiar el color facilmente
_GUICtrlListView_AddSubItem($hListView, $a, $num_estacion[$a][1], 1) ; Dirección de estación en la segunda (1+1) columna
_GUICtrlListView_AddSubItem($hListView, $a, $num_estacion[$a][2], 2) ; Bicis libres en la tercera (2+1) columna
_GUICtrlListView_AddSubItem($hListView, $a, $num_estacion[$a][3], 3) ; Bornetas libres en la cuarta (3+1) columna
_GUICtrlListView_AddSubItem($hListView, $a, $num_estacion[$a][4], 4) ; Bornetas totales en la quinta (4+1) columna
;#cs
Select
Case $num_estacion[$a][2]=0
cw("No quedan bicicletas en la estación " & $num_estacion[$a][0] & " - " & $direccion_estacion)
GUICtrlSetBkColor(-1, $C_RojoClaro)
Case $num_estacion[$a][2]>=1 and $num_estacion[$a][2]<5
cw("Quedan menos de 5 bicicletas en la estación " & $num_estacion[$a][0] & " - " & $direccion_estacion)
GUICtrlSetBkColor(-1, $C_AmarilloClaro)
Case $num_estacion[$a][2]>=5
cw("Hay 5 o más bicicletas en la estación " & $num_estacion[$a][0] & " - " & $direccion_estacion)
GUICtrlSetBkColor(-1, $C_VerdeClaro)
EndSelect
;#ce
Next
GUICtrlSetBkColor($hListView, $ColorListViewActual) ; Vuelve a poner el color de fondo original
GUICtrlSetData($BActualizar, "Actualizar") ; Vuelve a poner el texto del botón
WinSetTitle($gui_main, "", $TituloGUI & " - Última actualización de datos (" & @HOUR & ":" & @MIN & ":" & @SEC & ")") ; Muestra en la barra de título de la ventana la hora de la última lectura/actualización de datos
;_ArrayDisplay($num_estacion,"Estaciones del entorno")
;_GUICtrlListView_AddArray($hListView, $num_estacion)
EndFunc ;==>principal
;-------------------------------------------------------------------------------------------
; Lectura de datos (bicicletas libres, bornetas libres, bornetas totales) de una estación num_estacion
;-------------------------------------------------------------------------------------------
Func leelibres($num_estacion)
SiHayInternet() ; Comprueba si hay conexión a internet
$oXML.Open("GET", "http://www.valenbisi.es/service/stationdetails/" & $num_estacion, 0)
$oXML.Send
$sFile = _TempFile(@TempDir, '~', '.xml')
FileWrite($sFile, $oXML.responseText)
Local $file = FileRead($sFile)
$file = StringReplace($file, @LF, '')
$file = StringSplit($file, @CR, 1)
Local $Valenbisi_disponibles = XMLget($file, 'station\available')
Local $Valenbisi_libres = XMLget($file, 'station\free')
Local $Valenbisi_totales = XMLget($file, 'station\total')
Local $DisponibilidadEstacion = "Estación / Bicis / Bornetas libres / Bornetas totales: " & $num_estacion & " / " & $Valenbisi_disponibles & " / " & $Valenbisi_libres & " / " & $Valenbisi_totales
cw($DisponibilidadEstacion&@CRLF)
FileDelete($sFile)
return ($Valenbisi_disponibles & "," & $Valenbisi_libres & "," & $Valenbisi_totales)
EndFunc ;==>leelibres
;-------------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------------
; Lectura de datos (dirección) una estación num_estacion
;-------------------------------------------------------------------------------------------
Func LeeDatosEstacion($num_estacion)
SiHayInternet() ; Comprueba si hay conexión a internet
$oXML.Open("GET", "http://www.valenbisi.es/service/carto", 0)
$oXML.Send
$sFile1 = _TempFile(@TempDir, '~', '.xml')
FileWrite($sFile1, $oXML.responseText)
$file1 = FileRead($sFile1)
$fileXML = _XMLLoadXML($file1)
$sXPath = '//carto/markers/marker[@number="' & $num_estacion & '"]'
$direccion_estacion = _XMLGetAttrib($sXPath, 'address')
cw("Valor obtenido con _XMLGetAttrib: " & $direccion_estacion & @CRLF & " Error: " & @error)
FileDelete($sFile1)
Return $direccion_estacion
EndFunc ;==>LeeDatosEstacion
;-------------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------------
; Comprobación de conexión a internet
;-------------------------------------------------------------------------------------------
Func SiHayInternet()
Local $ping, $MsgBoxConexionInternet
While 1
$ping = Ping("www.valenbisi.es")
If $ping > 0 Then ; Si hay respuesta del PING
ExitLoop
Else ; Si no hay respuesta del PING
$MsgBoxConexionInternet = MsgBox(53, "Error de Conexión a Internet", "Para que el programa funcione es necesario tener conexión a internet." & @CRLF & @CRLF & "Pulse REINTENTAR cuando tenga la conexión a internet activada, o CANCELAR para salir del programa.")
Select
Case $MsgBoxConexionInternet = 4 ;Reintentar
ContinueLoop ; Continúa intentándolo
Case $MsgBoxConexionInternet = 2 ;Cancelar
Exit ; Sale del programa
EndSelect
EndIf
WEnd
EndFunc ;==>SiHayInternet
;-------------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------------
; http://www.autoitscript.com/forum/topic/97466-xml-read/
Func XMLget($file, $Path); XMLget($file,'adc_database\currentconditions\realfeel')
Local $lastline, $hstart, $hstarta, $end, $ends, $return
$Path = StringSplit($Path, '/\|', 0)
$lastline = 0
For $lvl = 1 To $Path[0] Step 1
For $line = $lastline To $file[0] Step 1
$lastline = $line
$hstart = StringInStr($file[$line], '<' & $Path[$lvl] & '>', 0)
$hstarta = StringInStr($file[$line], '<' & $Path[$lvl] & ' ', 0)
If $hstart Or $hstarta Then
If $lvl == $Path[0] Then
If $hstart Then
$end = StringInStr($file[$line], '</' & $Path[$lvl] & '>', 0)
If $end Then
$hstart = $hstart + StringLen('<' & $Path[$lvl] & '>')
Return StringMid($file[$line], $hstart, $end - $hstart)
EndIf
EndIf
If $hstarta Then
$end = StringInStr($file[$line], '/>', 0)
If $end Then
$hstarta = $hstarta + StringLen('<' & $Path[$lvl] & ' ')
$return = StringMid($file[$line], $hstarta, $end - $hstarta)
Return $return
EndIf
$ends = StringInStr($file[$line], '>', 0)
If $ends Then
$hstart = $ends + 1
$end = StringInStr($file[$line], '</' & $Path[$lvl] & '>', 0)
If $end Then
$return = StringMid($file[$line], $hstart, $end - $hstart)
Return $return
EndIf
EndIf
EndIf
EndIf
ContinueLoop 2
EndIf
Next
If $line == $file[0] Then ExitLoop
Next
Return 'not found'
EndFunc ;==>XMLget
Func EditaEstaciones()
;$texto_estaciones=IniRead(@scriptdir&"\valenbisi_estaciones.ini","Estaciones","num","NO_HAY")
CreaIni($texto_estaciones)
BActualizar()
EndFunc ;==>EditaEstaciones
Func MuestraInfo()
MsgBox(0, "Información", "Esta utilidad permite mostrar la situación actual de las estaciones cuyos números se encuentren almacenados en el archivo .ini" & @CR & @CR & "Puede introducir nuevas estaciones o modificar la existentes con 'Editar estaciones' del menú contextual."& @CR & @CR & "Mediante colores se muestran las estaciones que no tienen bicicletas libres (rojo), estaciones con menos de 5 bicicletas libres (amarillo) y estaciones con 5 o más bicicletas libres (verde)." & @CR & @CR & $MensajeEstaciones & @CR & @CR & $MensajeAutor)
EndFunc ;==>MuestraInfo
Func BActualizar()
LeeDatosIni() ; Lectura de datos de archivo .ini
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView))
principal()
EndFunc ;==>BActualizar
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
;MsgBox(0, "Close Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
GUISetState(@SW_HIDE, @GUI_WinHandle) ; Esconde la ventana
Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
;MsgBox(0, "Window Minimized", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
Case @GUI_CtrlId = $GUI_EVENT_RESTORE
;MsgBox(0, "Window Restored", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
EndSelect
EndFunc ;==>SpecialEvents
Func GUI_Principal_Cierra()
Local $size = WinGetPos($gui_main) ; Obtiene las coordenadas de la ventana
;MsgBox(0, "Coordenadas de ventana $gui_main (x,y,width,height):", $size[0] & " " & $size[1] & " " & $size[2] & " " & $size[3])
IniWrite($archivoini, "Configuracion", "Ventana_X", $size[0])
IniWrite($archivoini, "Configuracion", "Ventana_Y", $size[1])
IniWrite($archivoini, "Configuracion", "Ventana_Ancho", $size[2])
IniWrite($archivoini, "Configuracion", "Ventana_Alto", $size[3])
For $i = 0 To 4
$columnaLV[$i] = _GUICtrlListView_GetColumnWidth($hListView, $i)
IniWrite($archivoini, "Configuracion", "Columna" & $i, $columnaLV[$i])
cw("Columna " & $i & " ancho: " & $columnaLV[$i])
Next
cw("Borrando: " & $sFile)
FileDelete($sFile)
Exit
EndFunc ;==>GUI_Principal_Cierra