Página 1 de 1

Probando TTreeViewMod

Publicado: Mar Feb 16, 2021 6:54 pm
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.

Re: Probando TTreeViewMod

Publicado: Mar Feb 16, 2021 8:31 pm
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

Re: Probando TTreeViewMod

Publicado: Vie Feb 19, 2021 9:48 pm
por xhermita
Compruebo que está documentado el método GetItemAtPos().
Efectivamente esta documentado y funciona muy bien, me habia liado con GetItemByID().