El listbox se pone transparente en foxpro

Quisiera saber porque el listbox se me pone transparente a medida que voy escribiendo, agradezco mucho su ayuda el código que uso de busque es este

LOCAL var, mcodigo
PUBLIC VAR1
mcodigo = this.value
var=LEN(ALLTRIM(mcodigo))
IF var => 2
VAR1 = MCODIGO
THISFORM.list1.Visible = .T.
ENDIF
IF var < 2
VAR1 = MCODIGO
THISFORM.list1.Visible = .F.
ENDIF
LOCAL var, mcodigo
nom=lower(alltrim(this.value)+"*")
thisform.list1.Refresh
thisform.list1.ColumnCount = 3
thisform.list1.columnwidths = "110,255,35"
thisform.list1.RowSourceType = 0
thisform.list1.RowSource = "select refpro, despro, exipro from items;
order by despro where ;
like(nom,lower(refpro))into cursor temporal"
thisform.list1.RowSourceType = 3
Thisform. List1. Refresh()

1 Respuesta

Respuesta
1

No hay motivo para que se haga transparente en esta parte del código, sin embargo, teniendo que <var> toma el valor ajustado de los datos ingresados;

Sí se oculta cuando el valor ingresado es de menos de 2 caracteres...

mcodigo = this.value
var=LEN(ALLTRIM(mcodigo))
IF var < 2
   VAR1 = MCODIGO
   THISFORM.list1.Visible = .F.
ENDIF

y reaparece cuando la cantidad de caracteres es mayor a 2...

IF var => 2
   VAR1 = MCODIGO
   THISFORM.list1.Visible = .T.
ENDIF

Sin engarbo cuando le doy clic al listbox se muestra normal y se ven todos los datos. Y cuando cierro el formulario y vuelvo y lo abro todo funciona bien solo pasa la primera vez que se ejecuta el listbox.

Pienso que es por que cuando lo haces por primera vez, el campo no tienes datos, pero una vez que ingresas datos ya no lo hará...

Si no quieres que desaparezca el listbox solo ponle un símbolo * delante del comando siguiente..

**THISFORM.list1.Visible = .F.

o quita totalmente el código siguiente:

LOCAL var, mcodigo
PUBLIC VAR1
mcodigo = this.value
var=LEN(ALLTRIM(mcodigo))
IF var => 2
   VAR1 = MCODIGO
   THISFORM.list1.Visible = .T.
ENDIF
IF var < 2
   VAR1 = MCODIGO
   THISFORM.list1.Visible = .F.
ENDIF

Y lo reemplazas por:

PUBLIC VAR1
mcodigo = this.value
Var1=LEN(ALLTRIM(mcodigo))

ya que esa variable <var1> debe cumplir otro rol ya que está definida como pública.

¡Gracias! Lo hice con grid y me funciona a la perfección muy agradecido por tu ayuda. 

Me alegro mucho Plácido. Éxitos!.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas