Re: Depuración de errores
Publicado: 01 Mar 2011, 23:38
Hasta el momento, utilizaba una versión portable (o al menos no instalada). De todos modos echaré un vistazo a la que indicas BasicOs. Por cierto, no sé si conocéis Scite Hopper http://www.autoitscript.com/forum/topic ... one-click/. Lo encontré hace poco y me resulta muy práctico.
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.
¡Un saludo!
Código actualizado de MiValenBisi
|
V
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