Hola a todos....
Esta vez me encuentro con que necesito marcar o resaltar cada linea que toco de un listbox. La verdad es que no se como hacerlo. Imagino que cogiendo el recno() de la linea y luego no se como decirle que esa linea me la pinte de un color....
Alguien me puede indicar el camino...
Saludos y gracias
Elías Torres.
como marcar lineas en un LISTBOX
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Gracias Antonio por la ayuda. La verdad es que me falta poco para que me funcione lo que quiero. El problema que me encuentro es que no se como hacer que cuando se pulse en una linea se cambie de color y cuando se vuelva a pulsar en el mismo sitio vuelva a cambiar el color....
El codigo en el que quiero poner eso es este..
--------------------------------------
FUNCTION Listado_de_articulos()
--------------------------------------
LOCAL hBmp := ReadBitmap( CurDir() + "\go.bmp" )
LOCAL ocolor:=RGB(255,255,255),ocolor2:=RGB(123,123,123)
SELECT articulos
articulos->(DbGoTop())
DEFINE dialog odlg resource "Listado_articulos"
redefine LISTBOX oBrw;
FIELDS hBmp, articulos->cod_art, articulos->nom_art;
HEADERS "","Código", "Descripción" ID 500 OF oDlg
redefine button id 140 of odlg action;
( nRecno := articulos->( Recno() ),oDlg:End(),cesta_de_compra())
redefine button id 150 of odlg action odlg:end(),registros()
oBrw:nClrPane := { || If( articulos->lSelect, ocolor2, ocolor ) }
odlg:setcolor(RGB(1,1,1),RGB(230,184,94))
ACTIVATE dialog odlg
RETU nil
Saludos y gracias
Elías Torres.
El codigo en el que quiero poner eso es este..
--------------------------------------
FUNCTION Listado_de_articulos()
--------------------------------------
LOCAL hBmp := ReadBitmap( CurDir() + "\go.bmp" )
LOCAL ocolor:=RGB(255,255,255),ocolor2:=RGB(123,123,123)
SELECT articulos
articulos->(DbGoTop())
DEFINE dialog odlg resource "Listado_articulos"
redefine LISTBOX oBrw;
FIELDS hBmp, articulos->cod_art, articulos->nom_art;
HEADERS "","Código", "Descripción" ID 500 OF oDlg
redefine button id 140 of odlg action;
( nRecno := articulos->( Recno() ),oDlg:End(),cesta_de_compra())
redefine button id 150 of odlg action odlg:end(),registros()
oBrw:nClrPane := { || If( articulos->lSelect, ocolor2, ocolor ) }
odlg:setcolor(RGB(1,1,1),RGB(230,184,94))
ACTIVATE dialog odlg
RETU nil
Saludos y gracias
Elías Torres.
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Hola a todos....
Bueno he sacado la forma de marcar y desmarcar la linea, lo malo es que solo he podido hacerlo de la siguiente manera, marco con el botón izquierdo y desmarco con el derecho. Esto me funciona pero creo que no es la mejor forma (para lo que yo quiero). Entonces se me ha ocurrido que lo mejor seria poner un 'check' para cada linea con lo que si lo marco se marcaria la linea y si lo desmarco se desmarcaría esa linea...¿esto es posible?. ¿Existe alguna forma de integrar un check box en el brows?...
Un saludo y gracias por la respuesta Antonio, ha sido de gran ayuda como siempre...
Elías Torres.
Bueno he sacado la forma de marcar y desmarcar la linea, lo malo es que solo he podido hacerlo de la siguiente manera, marco con el botón izquierdo y desmarco con el derecho. Esto me funciona pero creo que no es la mejor forma (para lo que yo quiero). Entonces se me ha ocurrido que lo mejor seria poner un 'check' para cada linea con lo que si lo marco se marcaria la linea y si lo desmarco se desmarcaría esa linea...¿esto es posible?. ¿Existe alguna forma de integrar un check box en el brows?...
Un saludo y gracias por la respuesta Antonio, ha sido de gran ayuda como siempre...
Elías Torres.
- Biel EA6DD
- Posts: 680
- Joined: Tue Feb 14, 2006 9:48 am
- Location: Mallorca
- Contact:
Hola Elias, no se si he entendido bien lo que quieres hacer.
Prueba con el siguiente codigo.
Prueba con el siguiente codigo.
Code: Select all
oBrw:blClicked:={||Articulos->lSelect:=!Articulos->lSelect,oBrw:Refresh()}
-
- Posts: 233
- Joined: Wed Aug 09, 2006 3:07 pm
Hola Biel, gracias por la ayuda es lo que me hacia falta.
Una duda..cuando estoy en un dialogo y desde alli llamo a otro, cuando salgo de este ultimo me vuelve al anterior. Es como que no se cierra el dialogo antes de llamar al segundo. Yo lo que estoy haciendo antes de llamar al segundo es terminar el primero con action odlg:end(), pero parece que no hace lo que pretendo...
Un saludo y gracias por la ayuda, sin este foro las cosas se me complicarían mucho....
Elías Torres.
Una duda..cuando estoy en un dialogo y desde alli llamo a otro, cuando salgo de este ultimo me vuelve al anterior. Es como que no se cierra el dialogo antes de llamar al segundo. Yo lo que estoy haciendo antes de llamar al segundo es terminar el primero con action odlg:end(), pero parece que no hace lo que pretendo...
Un saludo y gracias por la ayuda, sin este foro las cosas se me complicarían mucho....
Elías Torres.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: