MODO DE EXIBICAO
faça o seguinte.....coloque um redraw no seu código.....
Tabela.MoveFirst
Grid.Redraw = false
Do While Tabela.EOF = False
If Tabela.EOF = False Then
Grid.AddItem [Ô][Ô] & VbTab & Tabela([Ô]Campo1[Ô]) & VbTab & Tabela([Ô]Campo2[Ô])
End If
Tabela.MoveNext
Loop
Grid.Redraw = true
Tabela.MoveFirst
Grid.Redraw = false
Do While Tabela.EOF = False
If Tabela.EOF = False Then
Grid.AddItem [Ô][Ô] & VbTab & Tabela([Ô]Campo1[Ô]) & VbTab & Tabela([Ô]Campo2[Ô])
End If
Tabela.MoveNext
Loop
Grid.Redraw = true
oque o redraw faz? qual sentido em usar o mesmo?
eu só não entendi o seguinte, vc diz que o form demora pra aparecer, e não o grid?
se for o form veja o seguinte:
se vc está fazendo uma conexão no load do from e esta conexão for remota vai demorar um pouco mesmo
se for o form veja o seguinte:
se vc está fazendo uma conexão no load do from e esta conexão for remota vai demorar um pouco mesmo
sim Marcelo, eu faço no load, eu fiz o teste com o listview foi rapido, com o listbox é quase instantaneo, agora nao sei, rs, tem outra sugestão?, valeu.
tente o seguinte
a lógica do visible é a seguinte, quando vc carregar o grid ele ficará se atualizando o que torna o processo mais lento então apagamos o mesmo e mostramos no final o que dará uma pequena melhora
teste se ainda assim não melhorar mudaremos a forma de se preencher o grid, ok
Tabela.MoveFirst
Grid.Visible = false
Do While Tabela.EOF = False
If Tabela.EOF = False Then
Grid.AddItem [Ô][Ô] & VbTab & Tabela([Ô]Campo1[Ô]) & VbTab & Tabela([Ô]Campo2[Ô])
End If
Tabela.MoveNext
Loop
Grid.Visible = true
a lógica do visible é a seguinte, quando vc carregar o grid ele ficará se atualizando o que torna o processo mais lento então apagamos o mesmo e mostramos no final o que dará uma pequena melhora
teste se ainda assim não melhorar mudaremos a forma de se preencher o grid, ok
O que o MARCELO-TREZE postou agora é a tentativa de fazer a mesma coisa ativando e desativando o Redraw. é só mudar.
Agora ... pra que tantos registros na tela? Quem vai consumir isso tudo?
Tabela.MoveFirst
Grid.Redraw = false
Do While Tabela.EOF = False
If Tabela.EOF = False Then
Grid.AddItem [Ô][Ô] & VbTab & Tabela([Ô]Campo1[Ô]) & VbTab & Tabela([Ô]Campo2[Ô])
End If
Tabela.MoveNext
Loop
Grid.Redraw= true
Agora ... pra que tantos registros na tela? Quem vai consumir isso tudo?
Fala Leandro BLZ?, então , não é que vai consumir tudo isso de dados, e sim que são os registros lancados, agora eu tava pensando tipo exibir somente os ultimos 1000 registros eu acho que está de bom tamanho.
afinal melhorou o desempenho ou não?
Marcelo, assim que chegar em casa vou fazer os testes e ver com qual eu fico, obrigado pela ajuda de todos.
Valeu Leandro, o desempenho é indiscutÃvel, ajudou muito., Marcelo do jeito que você me passou ele fica oculto mas demora do mesmo jeito, mesmo assim valeu.
Tópico encerrado , respostas não são mais permitidas