Mal funcionamiento listbox con vector

Mal funcionamiento listbox con vector

Postby Jorge Jaurena » Wed Apr 02, 2008 2:26 pm

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
Jorge Jaurena
 
Posts: 155
Joined: Fri Oct 21, 2005 6:35 pm

Postby ADBLANCO » Wed Apr 02, 2008 6:20 pm

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

Postby ADBLANCO » Wed Apr 02, 2008 6:25 pm

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
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Postby Jorge Jaurena » Thu Apr 03, 2008 11:45 am

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
Jorge Jaurena
 
Posts: 155
Joined: Fri Oct 21, 2005 6:35 pm

Postby ADBLANCO » Thu Apr 03, 2008 12:42 pm

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

Postby ADBLANCO » Thu Apr 03, 2008 12:54 pm

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
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 49 guests