reneumg Posted October 10, 2014 Report Share Posted October 10, 2014 Boa tarde galera. Estou tentando posicionar o ponteiro em uma array em um listbox e não consigo, Deixa eu me explicar: Tenho um Listbox assim; REDEFINE LISTBOX oLbx ; FIELDS aItens[ oLbx:nAt, 1 ],; aItens[ oLbx:nAt, 2 ],; aItens[ oLbx:nAt, 3 ],; AllTrim(aItens[ oLbx:nAt, 4 ])+" - "+aItens[ oLbx:nAt, 5 ] ; ID 200 OF oDlg ; TITLE "CNPJ ou CPF", "Nome do Cliente", "Endereço", "Cidade" ; FIELDSIZES 120, 300, 280, 200 ; ON LEFT DBLCLICK (oReg:=oLbx:nAt, ICliente(oCursor, oCNPJCli, aItens, .f.), oLbx:SetArray( aItens ), oLbx:Refresh(),; oCNPJCli:=aItens[ oReg, 1 ] ) ; ON CHANGE ( oCNPJCli:=aItens[ oLbx:nAt, 1 ]) ; COLOR CLR_BLUE Quando eu Altero ou Incluo um cliente ou faço uma busca do cliente pelo cnpj não sei como posiciar o ponteiro no listbox. Ex: Tenho 1000 registo ai e tenho que ir no registro 500 como faço isso. Assim eu acho o Registro oReg:=AScan( aItens, { | a | oCNPJCli== a[ 1 ] } ) Mas como usar as funcões oLbx:SetArray( aItens ), oLbx:Refresh() Desde ja agradeço quem puder me ajudar Quote Link to comment Share on other sites More sharing options...
Eroni Posted October 10, 2014 Report Share Posted October 10, 2014 Veja o exemplo em ..\samples\combos.prg do fivewin: // Showing the use of different styles of ComboBoxes controls#include "FiveWin.ch"#include "Combos.ch"//----------------------------------------------------------------------------//function Main() local oDlg, oSay local oCbx1, oCbx2, oCbx3 local cItem1, cItem2 := "One", cItem3, cItem4 := "None" SET _3DLOOK ON // SkinButtons() DEFINE DIALOG oDlg RESOURCE "Combos" REDEFINE COMBOBOX oCbx1 VAR cItem1 ITEMS { "One", "Two", "Three" } ; ID ID_SIMPLE OF oDlg ; ON CHANGE ( cItem4 := cItem1, oSay:Refresh() ) ; VALID ( cItem4 := cItem1, oSay:Refresh(), .t. ) REDEFINE COMBOBOX oCbx2 VAR cItem2 ITEMS { "One", "Two", "Three" } ; ID ID_DROPDOWN OF oDlg ; STYLE CBS_DROPDOWN ; ON CHANGE ( cItem4 := cItem2, oSay:Refresh() ) ; VALID ( If( ! oCbx2:Find( oCbx2:oGet:GetText() ),; oCbx2:Add( oCbx2:oGet:GetText() ),), .t. ) oCbx2:oGet:bKeyDown = { | nKey | SearchItem( nKey, oCbx2 ) } REDEFINE COMBOBOX oCbx3 VAR cItem3 ITEMS { "One", "Two", "Three" } ; ID ID_DROPDOWNLIST OF oDlg ; ON CHANGE ( cItem4 := cItem3, oSay:Refresh() ) ; VALID ( cItem4 := cItem3, oSay:Refresh(), .t. ) REDEFINE SAY oSay PROMPT cItem4 ID ID_SELECTION OF oDlg COLOR "R+/W" ACTIVATE DIALOG oDlg CENTEREDreturn nil//----------------------------------------------------------------------------//function SearchItem( nKey, oCbx ) local nAt if Len( AllTrim( oCbx:oGet:GetText() ) ) == 1 if ( nAt := AScan( oCbx:aItems, { | c | Left( c, 1 ) == AllTrim( oCbx:oGet:GetText() ) } ) ) != 0 oCbx:oGet:SetText( oCbx:aItems[ nAt ] ) return 0 endif endif Quote Link to comment Share on other sites More sharing options...
reneumg Posted October 10, 2014 Author Report Share Posted October 10, 2014 Eroni, obrigado por responder mas não achei ai a minha resposta. Não sei se vc entendeu, por exemplo quando eu jogo um DBF no listbox e uso a função DBF->(DBGoTo(Reg)) e dou um :Refresh() em seguida fica lá o registro que eu quero e os que estão proximo, quero fazer isso em uma array será que isso é possivel? Quote Link to comment Share on other sites More sharing options...
Euclidao Posted October 11, 2014 Report Share Posted October 11, 2014 reneumg, Pode fazer algo assim: @ 1, 20 BUTTON "SetLbx" OF oDlg SIZE 35, 12 ACTION (oLbx:nAt:=3, oLbx:Refresh(), oLbx:SetFocus()) T+ Euclides Quote Link to comment Share on other sites More sharing options...
rochinha Posted October 11, 2014 Report Share Posted October 11, 2014 Amiguinhos, Pelo exemplo passado pelo amigo Euclides você ve oLbx:nAt que retorna o posicionamento de cada elemento dentro do listbox oi browse. oLbx:nAt é o Recno() do listbox, seja ele povoado por .DBF ou vetor. Quote Link to comment Share on other sites More sharing options...
reneumg Posted October 13, 2014 Author Report Share Posted October 13, 2014 Valeu Galera, Tai uma coisa simples que eu não sabia como fazer, procurei em todos os exemplos e não achei. Rochinha, como é que não pensei nisso antes, usava este :nAt pra saber o registro que estava mas não sabia como posicionar nele, apanhei pra kct rsrsrsrs. Valeu mesmo, Obrigado. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.