Mal funcionamiento listbox con vector

Post Reply
Jorge Jaurena
Posts: 145
Joined: Fri Oct 21, 2005 6:35 pm

Mal funcionamiento listbox con vector

Post by Jorge Jaurena »

Hola.
Tengo el siguiente problema:
Creo un listbox usando un vector con cuatro elementos, cuando lo inicializo para que quede parado en el ultimo elemento y quiero usar la flecha del teclado para subir y seleccionar otro elemento no responde, note que si presiono la tecla end me refresca la pantalla y me permite seleccionar otro, no pasa esto cuando arranca en el primer elemento.
De esta manera lo creo:

Local VecComp:={"TICKET","FACTURA","CREDITO","REMITO"}

nItem1:=4

REDEFINE LISTBOX oLbxT;
FIELDS VecComp[nItem1],"";
HEAD "Tipo de comprobante","";
SIZES 250,1;
ID 1000 OF oDlg1;
ON DBLCLICK ModComp(nItem1,oLbx,Btn1,oDlg1,@CodC,ImpFisc,TipFiscal,ObsFacSiNo);
FONT oFontP

oLbxT:nClrBackFocus:=Amarillo
oLbxT:nClrForeFocus:=Negro
oLbxT:bKeyDown :={|nkey,nFlag| IF(nKey=13, ModComp(nItem1,oLbx,Btn1,oDlg1,@CodC,ImpFisc,TipFiscal,ObsFacSiNo), )}
oLbxT:bGoTop :={ || nItem1 := 1 }
oLbxT:bGoBottom :={ || nItem1 := Eval( oLbxT:bLogicLen ) }
oLbxT:bSkip :={ | nWant, nOld | nOld := nItem1, nItem1 += nWant,;
nItem1 := Max( 1, Min( nItem1, Eval( oLbxT:bLogicLen ) ) ),;
nItem1 - nOld }
oLbxT:bLogicLen :={ || Len( VecComp ) }
oLbxT:aJustify :={.t.,.f.}

Gracias
Jorge Jaurena
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

Prueba con:

oLbxT:SetArray( VecComp )
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

Y le quitas:

oLbxT:bGoTop :={ || nItem1 := 1 }
oLbxT:bGoBottom :={ || nItem1 := Eval( oLbxT:bLogicLen ) }
oLbxT:bSkip :={ | nWant, nOld | nOld := nItem1, nItem1 += nWant,;
nItem1 := Max( 1, Min( nItem1, Eval( oLbxT:bLogicLen ) ) ),;
nItem1 - nOld }
oLbxT:bLogicLen :={ || Len( VecComp ) }
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Jorge Jaurena
Posts: 145
Joined: Fri Oct 21, 2005 6:35 pm

Post by Jorge Jaurena »

Hola Angel, probe el metodo que me sugeriste pero no funciona, solo se limita a repetir el texto del elemento con el cual lo inicializo, por ej. me pone REMITO en los cuatro elementos.
Lo raro es que esta misma clase (TWBrowse) funciona bien con las dbf, pero comete este error con los vectores.

Saludos
Jorge Jaurena
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

Esto me trabaja perfecto aquí:

Local VecComp:={"TICKET","FACTURA","CREDITO","REMITO"}

REDEFINE LISTBOX oLbxT;
FIELDS VecComp[oLbxT:nAt];
HEAD "Tipo de comprobante";
SIZES 250;
ID 1000 OF oDlg1

oLbxT:SetArray( VecComp )
Last edited by ADBLANCO on Thu Apr 03, 2008 12:47 pm, edited 1 time in total.
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

Claro! te repite el cuarto elemento porque es lo que le estás ordenando, debes utilizar:

VecComp[oLbxT:nAt]

y si quieres que comienze en el cuarto elemento debes hacer:

oLbxT:nAt:=4
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Post Reply