_GUICtrlListView varias dudas

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Spra
Mensajes: 27
Registrado: 04 May 2008, 20:32

Re: _GUICtrlListView varias dudas

Mensaje por Spra »

He estado haciendo pruebas, en cuanto a enmascarar el 4º y el 8º bit funciona perfecto, ya no se ve la selección, en la ayuda lo explica perfectamente los diferentes tipos de flags.
El tema de activar el checkbox haciendo click en el texto, como bien dices el código del foro inglés creo que se basa en las coordenadas del puntero cuando haces click, funciona perfecto.
El codigo que me has puesto también funciona pero solamente cuando clickeas en el texto, cuando clickeas en los checkbox no hace nada.

Gracias a Ximorro y Chefito por toda la atención, este fin de semana intentaré adaptar toda la información que me habeis puesto a mi script.

Saludos.
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: _GUICtrlListView varias dudas

Mensaje por Ximorro »

Efectivamente, yo también lo veo así más simple y más directo. Lo que te decimos es mirar qué item ha seleccionado el usuario, y entonces invertir el estado del check y volver a deseleccionar. Yo ni ocultaría la selección, como digo ese parpadeo da un afecto visual que creo es un feedback positivo para el usuario, no creo que haga daño verlo.

En lo del foro inglés lo hacen bastante más complicado, buscando qué item hay bajo las coordenadas (x,y) del ratón...
Y no es que usen DLL, lo que pasa es que hace falta una estructura para el mensaje de test de coordenadas LVM_HITTEST, y también las usa para extraer los parámetros, aunque eso se podría hacer de otra manera.
Lo de DLLStruct es porque esas funciones están pensadas para pasar estructuras de datos a las funciones DLL, pero como las estructuras se usan en otros sitios, como en los mensajes Windows, pues también se usan esas funciones para crearlas. Quizás el nombre tendría que haber sido más genérico.

Este control es complejísimo, por eso manejarlo es tan complicado. Es tan flexible que controlarlo bien requiere bastante esfuerzo. Claro, es una pasada poner checks, iconos, textos etc en cada item de la lista, y además tienes varios modos de vista, como rejilla, iconos grandes, pequeños, etc... Vaya, como en el visor de archivos del explorador de Windows.
Y claro, tanta potencia es complicada de controlar...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: _GUICtrlListView varias dudas

Mensaje por Chefito »

Spra escribió:El codigo que me has puesto también funciona pero solamente cuando clickeas en el texto, cuando clickeas en los checkbox no hace nada.
:smt017 :smt017 :smt017 A mi me funciona perfectamente. Funciona cliqueando en cualquier lugar de las celdas.....eso sí, las que tienen texto. Si hay vacias no van.

Que sepas que en windows7 no funciona como debiera. Cambian los índices de la estructura $tagNMITEMACTIVATE. Tienes que poner Local $Item = DllStructGetData($tInfo, 5) en vez de Local $Item = DllStructGetData($tInfo, "Index").
Para saber que versión de windows es y hacer una condición if...then.... para controlar esta variación, utiliza la macro @OSVersion.

Ya lo he advertido en otro post. Si los script van a ser de uso general, tened cuidado con los distintos windows. Debeis probar el script en varios.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: _GUICtrlListView varias dudas

Mensaje por BasicOs »

Según vi en el history es posible que esto se corrige en el nuevo Autoit 23 dic, era por un tema de x64 más que por la versión del Windows,
Salu22:)
Responder