In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Probando TTreeViewMod

Foro de Xailer profesional en español
Responder
Avatar de Usuario
xhermita
Mensajes: 177
Registrado: Vie Feb 18, 2011 10:05 pm
Ubicación: Las Palmas de Gran Canaria
Contactar:

Probando TTreeViewMod

Mensaje por xhermita »

Estoy empezando a probar el nuevo control TTreeViewMod y me encuentro con un par de detalles.

Al hacer el primer AddItem me aparece este mensaje en la consola del debug
Due performance issues is highly recommended to encapsulate the creation of items on a BeginPaint() & EndPaint() structure
He visto en el Samples que antes de empezar a añadir items llamais al metodo :BeginPaint() del TTreeViewMod y al finalizar al metodo :EndPaint() que es justo lo que dice el mensaje, asi que las he puesto en mi proyecto de prueba y resuelto el mensaje.

Al hacer click en alguno de los elementos en el osender me devuelve el iTem que esta actualmente seleccionado, no en el que hago click.

Código: Seleccionar todo

LogDebug( oSender:cText )
He puesto en el Evento OnClick este código y me devuelve el cText del elemento que esta seleccionado, no del que he picado.

En el evento OnSelect si me devuelve correctamente el iTem que he seleccionado, lo que no veo muy claro es el nIndex que retorna, no se si me sirve para localizar el iTem dentro del TTreeViewMod, tengo que experiementar un poco más.

El Evento OnChange, pasa nOld y nNew, pero parece que los pasa invertidos. he puesto un logdebug en el evento para comprobarlo y eso es lo que me pasa. Tambien he visto que oSender hace referencia al iTem que estaba seleccionado antes.
Pedro Amaro
2PC Service

Xailer / Néfele / MySQL-MariaDB / SQLServer
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Probando TTreeViewMod

Mensaje por ignacio »

Al hacer click en alguno de los elementos en el osender me devuelve el iTem que esta actualmente seleccionado, no en el que hago click.
Realmente sólo devuelve el TreviewMod. No se ha contemplado mandar más información. Vamos a mejorarlo ...

Código: Seleccionar todo

   EVENT OnClick( oSender, nKeyFlags, oItem, nRow )
   EVENT OnDblClick( oSender, nKeyFlags, oItem, nRow )
En el evento OnSelect si me devuelve correctamente el iTem que he seleccionado, lo que no veo muy claro es el nIndex que retorna

Código: Seleccionar todo

LogDebug( "item selected: ", ::oTree:GetItemAtPos( nIndex ):cText )
Compruebo que está documentado el método GetItemAtPos().
El Evento OnChange, pasa nOld y nNew, pero parece que los pasa invertidos.
Corregido. Gracias por todo.

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
xhermita
Mensajes: 177
Registrado: Vie Feb 18, 2011 10:05 pm
Ubicación: Las Palmas de Gran Canaria
Contactar:

Re: Probando TTreeViewMod

Mensaje por xhermita »

Compruebo que está documentado el método GetItemAtPos().
Efectivamente esta documentado y funciona muy bien, me habia liado con GetItemByID().
Pedro Amaro
2PC Service

Xailer / Néfele / MySQL-MariaDB / SQLServer
Responder