PROGRESSBAR

MACFILHO 09/09/2013 11:50:19
#428609
Colegas,

Estou tentando colocar um ProgressBar num formulário, mai a danada da barra só atualiza quanto a thread do formulário original acaba.

Preciso de ajuda.

Abraços.
MADMAX 09/09/2013 15:01:25
#428616
quando você atualizar a quantidade no progress embaixo inclui o comando [Ô]DoEvents[Ô]
FILMAN 09/09/2013 23:32:12
#428627
Se for vb6 dentro da estrutura de repetição faça o que o nosso amigo MADMAX disse coloque um [Ô]DoEvents[Ô], porém já obtive problemas com isso e para resolver além do [Ô]DoEvents[Ô] eu precisei colocar [Ô]ProgressBar.Refresh[Ô]

Espero ter ajudado
CLEBERBALMEIDA 10/09/2013 13:35:04
#428651
MACFILHO, veja se o exemplo que fiz e estou te enviando agora, serve pra você.

Qualquer coisa me avise!

Valew
MACFILHO 18/09/2013 10:54:34
#429009
Fala Amigos.

Realmente desculpe a demora, e desde já agradeço pela ajuda.

Bem, acho que eu não estou entendendo alguma coisa, e simplesmente não funciona direito.

No formulário onde se incia o processo, eu faço um dialog, e pergunto se realmente será carregado do BD as informações necessária para se efetuar um novo cadastro, Se a resposta for sim, dai eu preciso abrir um outro formulário que criei com a progress bar, e indicar o andamento do carregamento dos dados do BD. O código é pesado, faz várias querys no BD para montar as informações, e demora um pouco para finalizar, po isso que quero utilizar o progressbar, pois os usuário não entendem o sistema ficar parado e acham que ele parou de funcionar.

Abaixo o código que inicializa a operação de carregamento dos dados, e os pontos onde quero que a progressbar seja atualizada.

Private Sub BTN_Cadastro_Init_Click(sender As Object, e As EventArgs) Handles BTN_Cadastro_Init.Click
If FRM_Logar_0.TXT_Logar_Name.Text = [Ô]A[Ô] Or FRM_Logar_0.TXT_Logar_Name.Text = [Ô]B[Ô] Then
Dim SSQL As String
Dim conn As New OleDb.OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\BANCO DE DADOS\BD_01.mdb;Persist Security Info=True;Jet OLEDB:Database Password=16f877a[Ô])
Dim result As DialogResult = MessageBox.Show([Ô]Carregar dados do banco de dados e iniciar novo cadastro?[Ô], [Ô]Sistema de Cadastro!![Ô], MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = 6 Then
FRM_Wait.show() [ô] AQUI EU MOSTRO O FORMULÁRIO AUXILIAR COM A PROGRESSBAR.
Dim A As Integer
Dim B As String
CBX_Cad_Nome.Enabled = True
CBX_Cad_Nome.Items.Clear()
CBX_Cad_Material.Enabled = True
CBX_Cad_Material.Items.Clear()
CBX_Cad_Acab.Enabled = True
CBX_Cad_Acab.Items.Clear()
CBX_Cad_Var_1.Enabled = True
CBX_Cad_Var_1.Items.Clear()
CBX_Cad_Var_2.Enabled = True
CBX_Cad_Var_2.Items.Clear()
CBX_Cad_Var_3.Enabled = True
CBX_Cad_Var_3.Items.Clear()
CBX_Cad_Var_4.Enabled = True
CBX_Cad_Var_4.Items.Clear()
CBX_Cad_Var_5.Enabled = True
CBX_Cad_Var_5.Items.Clear()
CBX_Cad_Pre_1.Enabled = True
CBX_Cad_Pre_1.Items.Clear()
CBX_Cad_Pre_2.Enabled = True
CBX_Cad_Pre_2.Items.Clear()
CBX_Cad_Pre_3.Enabled = True
CBX_Cad_Pre_3.Items.Clear()
CBX_Cad_Sul_1.Enabled = True
CBX_Cad_Sul_1.Items.Clear()
CBX_Cad_Sul_2.Enabled = True
CBX_Cad_Sul_2.Items.Clear()
CBX_Cad_Sul_3.Enabled = True
CBX_Cad_Sul_3.Items.Clear()
CBX_Cad_Norma.Enabled = True
CBX_Cad_Norma.Items.Clear()
CBX_Cad_Class.Enabled = True
CBX_Cad_Class.Items.Clear()
CBX_Cad_Dur.Enabled = True
CBX_Cad_Dur.Items.Clear()
CBX_Cad_Uni.Enabled = True
CBX_Cad_Uni.Items.Clear()
TXT_Cad_Comp_1.Enabled = True
TXT_Cad_Comp_2.Enabled = True
TXT_Cad_Comp_3.Enabled = True
TXT_Cad_Drw.Enabled = True
TXT_Cad_Dt1.Enabled = True
TXT_Cad_Dt2.Enabled = True
TXT_Cad_Emin.Enabled = True
TXT_Cad_ICMS.Enabled = True
TXT_Cad_II.Enabled = True
TXT_Cad_IPI.Enabled = True
TXT_Cad_Loc.Enabled = True
TXT_Cad_NCM.Enabled = True
TXT_Cad_Pis.Enabled = True
TXT_Cad_Qtd.Enabled = True
TXT_Cad_Rev.Enabled = True
TXT_Cad_VL1.Enabled = True
TXT_Cad_VL2.Enabled = True
CHB_Cad_A.Enabled = True
CHB_Cad_B.Enabled = True
CHB_Cad_C.Enabled = True
CHB_Cad_Sim.Enabled = True
CHB_Cad_Nao.Enabled = True
CHB_Cad_Apr.Enabled = True
BTN_Cadastro_Limpar.Enabled = True
[ô]AQUI EU QUERO 10% DA PROGRESSBAR
A = Part_nameTableAdapter.Count()
SSQL = [Ô]SELECT * FROM Part_Name[Ô]
conn.Open()
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(SSQL, conn)
Dim reader As OleDb.OleDbDataReader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Nome.Items.Add(reader.GetString(1))
End While
[ô]AQUI EU QUERO 30% DA PROGRESSBAR
SSQL = [Ô]SELECT * FROM Part_Prima[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Material.Items.Add(reader.GetString(1))
End While
[ô]AQUI EU QUERO 40% DA PROGRESSBAR
SSQL = [Ô]SELECT * FROM Part_Acab[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Acab.Items.Add(reader.GetString(1))
End While
SSQL = [Ô]SELECT * FROM Part_Var[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Var_1.Items.Add(reader.GetString(1))
CBX_Cad_Var_2.Items.Add(reader.GetString(1))
CBX_Cad_Var_3.Items.Add(reader.GetString(1))
CBX_Cad_Var_4.Items.Add(reader.GetString(1))
CBX_Cad_Var_5.Items.Add(reader.GetString(1))
End While
[ô]AQUI EU QUERO 55% DA PROGRESSBAR
SSQL = [Ô]SELECT * FROM Part_Comp[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Pre_1.Items.Add(reader.GetString(1))
CBX_Cad_Pre_2.Items.Add(reader.GetString(1))
CBX_Cad_Pre_3.Items.Add(reader.GetString(1))
CBX_Cad_Sul_1.Items.Add(reader.GetString(1))
CBX_Cad_Sul_2.Items.Add(reader.GetString(1))
CBX_Cad_Sul_3.Items.Add(reader.GetString(1))
End While
[ô]AQUI EU QUERO 70% DA PROGRESSBAR
SSQL = [Ô]SELECT * FROM Part_Norm[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Norma.Items.Add(reader.GetString(1))
End While
SSQL = [Ô]SELECT * FROM Part_Class[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Class.Items.Add(reader.GetString(1))
End While
[ô]AQUI EU QUERO 70% DA PROGRESSBAR
SSQL = [Ô]SELECT * FROM Part_hardness[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Dur.Items.Add(reader.GetString(1))
End While
[ô]AQUI EU QUERO 80% DA PROGRESSBAR
SSQL = [Ô]SELECT * FROM Units[Ô]
cmd = New OleDb.OleDbCommand(SSQL, conn)
reader = cmd.ExecuteReader()
While reader.Read()
CBX_Cad_Uni.Items.Add(reader.GetString(1))
End While
reader.Close()
conn.Dispose()
[ô]AQUI EU QUERO 90% DA PROGRESSBAR
A = Part_ListTableAdapter.Max_Code()
TXT_Novo_Cod.Text = A + 1
CBX_Cad_Nome.SelectedIndex = 0
CBX_Cad_Nome.SelectedIndex = 0
CBX_Cad_Material.SelectedIndex = 0
CBX_Cad_Acab.SelectedIndex = 0
CBX_Cad_Var_1.SelectedIndex = 0
CBX_Cad_Var_2.SelectedIndex = 0
CBX_Cad_Var_3.SelectedIndex = 0
CBX_Cad_Var_4.SelectedIndex = 0
CBX_Cad_Var_5.SelectedIndex = 0
CBX_Cad_Pre_1.SelectedIndex = 0
CBX_Cad_Pre_2.SelectedIndex = 0
CBX_Cad_Pre_3.SelectedIndex = 0
CBX_Cad_Sul_1.SelectedIndex = 0
CBX_Cad_Sul_2.SelectedIndex = 0
CBX_Cad_Sul_3.SelectedIndex = 0
CBX_Cad_Norma.SelectedIndex = 0
CBX_Cad_Class.SelectedIndex = 0
CBX_Cad_Dur.SelectedIndex = 0
CBX_Cad_Uni.SelectedIndex = 0
[ô]AQUI EU QUERO 100% DA PROGRESSBAR
MessageBox.Show([Ô]Dados carregados, inicie o processo de cadastro agora!![Ô], [Ô]Sistema de Cadastro!![Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show([Ô]Dados não foram carregados!![Ô], [Ô]Sistema de Cadastro!![Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show([Ô]Este usuário não está habilitado a realizar cadastro!![Ô], [Ô]Informação do Sistema de Cadastro!![Ô], MessageBoxButtons.OK, MessageBoxIcon.Stop)
End If
BTN_Cadastro_Cad.Enabled = False
End Sub
   
   
[th][/th]
Cabecalho
OMAR2011 18/09/2013 12:22:07
#429018
MACFILHO você postou no lugar errado.
MACFILHO 18/09/2013 22:15:59
#429069
Amigo,

Não entendi, será que coloquei o código no local errado, me ajude.

Abraços.
OMAR2011 19/09/2013 08:38:17
#429072
Isto mesmo.
Este é do Vb5,6 e Vba.
Na parte de cima da página tem,olhe.
Quando vai posta a mensagem,escolhe
dentre vários aquilo que atende seu post.
MARCELO.TREZE 19/09/2013 11:30:36
#429077
colega seu código é ponto net mas pelo que entendi seu código é fácil de resolver, porém se o processamento do mesmo for rápido jamais verá a progressbar, pois a progressbar é pára eventos demorados

bom, onde vc colocou a indicação de porcentagem que deseja basta fazer o seguinte:

no inicio do código comolque o valor maximo e minimo

Progressbar1.Minimum = 0
Progressbar1.Maximum = 100

onde vc coloque aqui quero X%

coloque o valor

assim

[txt-color=#0000f0]Progressbar1.Value = 55[/txt-color][txt-color=#007100] [ô] que e 55%[/txt-color]

e assim vai

lembre-se se o processamento for rápido vc não verá o progresso da barra

MACFILHO 01/10/2013 15:53:50
#429462
Amigos,

Não tem jeito, estou tentando agora com BackgroundWorker mais a danada só atualiza depois que a tarefa está completa.

Será que tenho que importar alguma coisa?

Abraços.
MARCELO.TREZE 01/10/2013 16:12:32
#429463
filhão novamente qual 'o tempo de processamento do seu código, pois como eu disse anteriormente, se for rápido, vc só vai ver a barra cheia mesmo, pois as demais posições da barra serão muito rapidas, entendeu.

Página 1 de 2 [14 registro(s)]
Faça seu login para responder