PROGRESSBAR
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.
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.
quando você atualizar a quantidade no progress embaixo inclui o comando [Ô]DoEvents[Ô]
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
Espero ter ajudado
MACFILHO, veja se o exemplo que fiz e estou te enviando agora, serve pra você.
Qualquer coisa me avise!
Valew
Qualquer coisa me avise!
Valew
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]
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
Cabecalho | [/th]
MACFILHO você postou no lugar errado.
Amigo,
Não entendi, será que coloquei o código no local errado, me ajude.
Abraços.
Não entendi, será que coloquei o código no local errado, me ajude.
Abraços.
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.
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.
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
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
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.
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.
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.
Faça seu login para responder