Página 1 de 1

Ttreeview - Dudas

Publicado: Mié Oct 15, 2008 11:51 pm
por Luis Cahisa
Hola a todos
Tengo una serie de selecciones que estoy haciendo con varios ttreeview (no
se me ocurre otro objeto), que trata de elegir uno de los item en algunos de
ellos y varios en el caso de los sabores. Los ttreeview cargan gaseosas que
tienen marcas, tamaños, sabores y empaquetado.
Quiero saber cual es un item chequeado para revisar si no hay otro en el
caso de marcas (solo puede ir una) y estuve mirando en el ejemplo el metodo
::otv:getselecteditem(), pero no me devuelve como pensaba el item elegido
sino el objeto ttreeview. Hay alguna manera de identificar cual es el ultimo
item chequeado (dentro de un ttreeview. Solo existe un nivel de eleccion),
para en consecuencia poder decidir que hacer.??
Alguien me puede desburrar un poco sobre el tema.
Desde ya muchas gracias
Luis Cahisa
lmcahisa@yahoo.com.ar

Ttreeview - Dudas

Publicado: Jue Oct 16, 2008 12:01 am
por notengo
Luis,
si entiendo bien el problema, lo que necesitas es el evento
OnCheckStateChanged de TTreeview.
Haz doble click en el evento en el inspector de objetos y añade este código
al método que ha generado el IDE:
//Quitamos las marcas a los otros
AEval( oSender:aItems, {|oChild| oChild:lChecked := .F. } )
//oItem:lChecked contiene el item que acabas de marcar
Si no es lo que necesitas, intenta describirlo un poco más o adjunta una
imagen para ver mejor lo que quieres hacer.
Saludos,
José Lalí­n

Ttreeview - Dudas

Publicado: Jue Oct 16, 2008 2:39 am
por Luis Cahisa
Jose, gracias por la respuesta a ver si puedo transmitir mejor. Es dificil
explicarse escribiendo no??
oItem:lchecked me muestra .T., que el elemento esta chequeado pero no me
dice el numero de item que es. Lo que quiero hacer seria como cuando tienes
dos o mas RadioButton en un ogroupbox, y marcas uno y se desmarca el que
esta seleccionado. Como cargo los valores desde una tabla, se me ocurrio
hacerlo con el ttreeview. Si tengo cinco elementos y hay uno seleccionado
necesito saber cual es el ultimo elemento elegido para borrar el que ya
estaba.
Te adjunto una imagen del formulario a ver si se puede entender lo que
quiero hacer.
Un saludo
Cahisa
"José Lalín" <notengo@correo.com> escribió en el mensaje
news:48f66892$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Luis,
>
> si entiendo bien el problema, lo que necesitas es el evento
> OnCheckStateChanged de TTreeview.
>
> Haz doble click en el evento en el inspector de objetos y añade este
> código
> al método que ha generado el IDE:
>
> //Quitamos las marcas a los otros
> AEval( oSender:aItems, {|oChild| oChild:lChecked := .F. } )
>
> //oItem:lChecked contiene el item que acabas de marcar
>
> Si no es lo que necesitas, intenta describirlo un poco más o adjunta una
> imagen para ver mejor lo que quieres hacer.
>
> Saludos,
> José Lalín


Attached files

Ttreeview - Dudas

Publicado: Jue Oct 16, 2008 3:28 pm
por lmcahisa
Hola Jose
He resuelto lo que queria lograr (por lo menos eso creo), no si la manera es
la mas optima pero hace lo que necesito. Te paso el pequeño codigo a ver si
estoy en lo cierto.
Me has ayudado mucho porque tu aporte me llevo a comprender un poco mas del
objeto que para mi aun es algo intrincado, pero con aportes del foro voy
mejorando.
Desde ya muchas gracias, a vos y todos lo que responden tanto a Ignacio,
Rene Flores, Xevi, Jose F. y tantos otros que dan consejos y soluciones a
los que estamos empezando.
Un abrazo
Luis Cahisa
METHOD TreeView2CheckStateChanged( oSender, oItem ) CLASS CbioPrecios
Local mitem
mitem := oitem:lparam
AEval( oSender:aItems, {|oChild| oChild:lChecked := .F. } )
oSender:aItems[mitem]:lchecked := .t.
RETURN Nil