CARREGAR FORM ANTES DE PREENCHER GRID E FECHAR DEP

WEBIER 11/12/2009 13:56:59
#329535
possuo uma SQL que carrega meu grid com uma tabela... como sã muitos registro demora um pouco para concluir...

ai criei um form do tipo [Ô]aguarde[Ô] para o usuario saber q deve esperar completar a carga do grid.

ai fiz assim

aguarde.show 1

SQL

aguarde.hide


resultado:
-o form aguarde aparece e não carrega do grid.

ai fiz assim:
aguarde.show

SQL

aguarde.hide


Resultado:
-Aparece uma sombra do form aguarde... ou seja... somente a borda da janela do formulario e nada mais e ai carregado o grid

como devo fazer?
TECLA 11/12/2009 14:23:01
#329536
Resposta escolhida
Não há necessidade de utilizar um FORM, por sinal, é bem mais simples do que imagina.

Utilize um objeto PICTURE ([txt-color=#0000FF]Picture1.Visible = True[/txt-color]) com uma mensagem de espera (Aguarde o processamento...) e bloqueie os BOTÕES e demais controles para que o usuário não fique [Ô]clicando[Ô] ou [Ô]digitando[Ô] enquanto processa.

Após a conclusão, é só esconder o PICTURE ([txt-color=#0000FF]Picture1.Visible = False[/txt-color]) e pronto.
WEBIER 11/12/2009 19:20:01
#329563
é pq o estou usando o exemplo desse topico:

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=Abrir&varID=328606&varWorld=

ai tem q ser o form mesmo!
XXXANGELSXXX 11/12/2009 19:37:15
#329565
Amigo, nesse caso eu tambem utilizaria uma picture para fazer esse serviço, so utilizando o visible = true e false, ou senao um frame mesmo....
ROBIU 12/12/2009 11:30:40
#329582
Tente colocar um DoEvents em seu Loop que carrega a grid.

Do Until Rs.EOF
DoEvents
.Redraw = False

[ô]mudar a cor da coluna

For i = 1 To .Rows - 1
.Row = i
[ô].Col = 4: .CellBackColor = &HC0FFFF
[ô].Col = 10: .CellBackColor = &HC0C0FF
Next

.Redraw = True

If Not IsNull(Rs!var_CodEnt) Then .TextMatrix(.Rows - 1, 1) = Rs!var_CodEnt
If Not IsNull(Rs!var_desc) Then .TextMatrix(.Rows - 1, 2) = Rs!var_desc
[ô]If Not IsNull(Rs!var_Quant) Then .TextMatrix(.Rows - 1, 3) = Rs!var_Quant
[ô]If Not IsNull(Rs!var_CUSTO) Then .TextMatrix(.Rows - 1, 4) = Format(Rs!var_CUSTO, [Ô]##,##0.00[Ô])
[ô]If Not IsNull(Rs!var_FRETE) Then .TextMatrix(.Rows - 1, 5) = Format(Rs!var_FRETE, [Ô]##,##0.00[Ô])
[ô]If Not IsNull(Rs!var_impcompra) Then .TextMatrix(.Rows - 1, 6) = Format(Rs!var_impcompra, [Ô]##,##0.00[Ô])
[ô]If Not IsNull(Rs!var_vlrcompra) Then .TextMatrix(.Rows - 1, 7) = Format(Rs!var_vlrcompra, [Ô]##,##0.00[Ô])
[ô]If Not IsNull(Rs!Var_Lucro) Then .TextMatrix(.Rows - 1, 8) = Format(Rs!Var_Lucro, [Ô]##,##0.00[Ô])
[ô]If Not IsNull(Rs!var_ImpVenda) Then .TextMatrix(.Rows - 1, 9) = Format(Rs!var_ImpVenda, [Ô]##,##0.00[Ô])
If Not IsNull(Rs!VAR_VENDA) Then .TextMatrix(.Rows - 1, 10) = Format(Rs!VAR_VENDA, [Ô]##,##0.00[Ô])
Rs.MoveNext

.Rows = .Rows + 1

i = i + 1

Loop


Veja este exemplo
WEBIER 12/12/2009 16:13:54
#329591
fiz com o picture e aconteceu assim:

-coloquei o picture
-adicionei uma imagem ao picture
-fiz a programação:

Picture1.Visible = True
sql
Picture1.Visible = false

resultado.... a area do picture aparece, mas a imagem nao... somente 1 segundo antes dele sumir eh q a imagem aparece...
Tópico encerrado , respostas não são mais permitidas