LISTVIEW
Olá pessoal, existe alguma forma melhor (mais rápido) para preencher o ListView.
Eu faço assim:
Do while TB.EOF= False
Aqui eu preencho o ListView
Loop
Quando existem muitos dados, demora para carrega-lo. Existe alguma forma de tornar isso mais rápido?
Eu faço assim:
Do while TB.EOF= False
Aqui eu preencho o ListView
Loop
Quando existem muitos dados, demora para carrega-lo. Existe alguma forma de tornar isso mais rápido?
CARA O LISTVIEW é ISSO MESMO VIA CODIGO OQ TU PODE FAZER PRA DISTRAIR O USUARIO é
COLOCAR UM PROGRESSBAR
Do while TB.EOF= False
dovents '<<< ccoloca o doevents pra q o sistema mostre passo a passo a pogressao e o preenchimento do list ao usuario
carrega o valor do progress '<< carregue o valor da barra do progress
assim tu nao deixa o teu usuario pensando q o sistema travou etc...
Aqui eu preencho o ListView
Loop
outra dica é sempre q tu tiver algum procedimento q possa vir a demorar mude a icone do ponteiro do mouse pra a ampulheta, e sempre q puder nesses casos coloque o doevents ele evita q o sistema de aquela "travada" pro usuario
COLOCAR UM PROGRESSBAR
Do while TB.EOF= False
dovents '<<< ccoloca o doevents pra q o sistema mostre passo a passo a pogressao e o preenchimento do list ao usuario
carrega o valor do progress '<< carregue o valor da barra do progress
assim tu nao deixa o teu usuario pensando q o sistema travou etc...
Aqui eu preencho o ListView
Loop
outra dica é sempre q tu tiver algum procedimento q possa vir a demorar mude a icone do ponteiro do mouse pra a ampulheta, e sempre q puder nesses casos coloque o doevents ele evita q o sistema de aquela "travada" pro usuario
uma solução para não ficar piscando a tela seria vc colocar tb a api
desta maneira você so ira mostrar o resultado quando terminar de carregar fica mais profissional
Private Declare Function LockWindowUpdate Lib "user32.dll" _
(ByVal hWndLock As Long) As Long
LockWindowUpdate ListView1.hwnd
Screen.MousePointer = 11
Do while TB.EOF= False
Doevents
'sua função pode ser com progressbar
Loop
LockWindowUpdate 0
Screen.MousePointer = 0
desta maneira você so ira mostrar o resultado quando terminar de carregar fica mais profissional
Tópico encerrado , respostas não são mais permitidas