Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

gastao

progressbar marquee

Mensagens Recomendadas

gastao

tou a usar uma progressbar marcada como marquee assim que o programa arranca ele ja esta a andar de um lado pro outro assim que carrego no botao que tem o seguinte codigo e vai me fazer o restante codigo parece que o programa fica parado sem responder...

alguem consegue dar uma dica?

ProgressBar1.Style = ProgressBarStyle.Marquee
	ProgressBar1.MarqueeAnimationSpeed = 150
... restante codigo

Editado por gastao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
progressbar1.style = progressbarstyle.marquee
progressbar1.marqueeanimationspeed = 150

Dim strIniFile As String = My.Application.Info.DirectoryPath & "\config.ini"
	'Le qual o caminho das Facturas escrito no Ini
	Dim bdsql As String = GetIniSetting("CaminhoBaseDados", "InformaVendas", strIniFile)
	Dim bdnome As String = GetIniSetting("NomeBaseDados", "InformaVendas", strIniFile)
	Dim bduser As String = GetIniSetting("User", "InformaVendas", strIniFile)
	Dim bdpass As String = GetIniSetting("Password", "InformaVendas", strIniFile)
	Dim Caminho As String = GetIniSetting("Caminho", "InformaVendas", strIniFile)
	Dim TipoMovimento As String = GetIniSetting("TipoMovimento", "InformaVendas", strIniFile)
	Dim Narmazem As String = GetIniSetting("Narmazem", "InformaVendas", strIniFile)
	Dim localizaçao As String = GetIniSetting("localizaçao", "InformaVendas", strIniFile)
	Dim mailrecebe As String = GetIniSetting("mailrecebe", "InformaVendas", strIniFile)
	Dim datenow As String = DateTime.Now
	Dim sqlpass As String = bdpass
	sqlpass = AES_Decrypt(sqlpass, "somepassword")
	'conexao SQL
	connetionString = "Data Source='" & bdsql & "';Initial Catalog='" & bdnome & "'; Integrated Security=false; User Id='" & bduser & "';Password='" & sqlpass & "';"
	Dim myConnection As New SqlConnection(connetionString)
	Dim myCommand As New SqlCommand("SELECT '" & TipoMovimento & "' as TipoMovimento, SaleTransactionDetails.ItemID, SaleTransactionDetails.Quantity*1000 As Quantidade, SaleTransactionDetails.TaxIncludedPrice*1000 as PVP, '" & DateTime.Now.ToString("yyyyMMdd") & "' as Data, '" & Narmazem & "' As Armazem FROm SaleTransactionDetails INNER JOIN Item ON SaleTransactionDetails.ItemID = Item.ItemID WHERE SaleTransactionDetails.DtAlt = '" & DateTime.Now.ToString("yyyy-MM-dd") & "' and item.familyid='40' or item.familyid='41' or item.familyid='42' or item.familyid='43' or item.familyid='44' or item.familyid='45' or item.familyid='46' or item.familyid ='47' or item.familyid='48' or item.familyid='16' or item.familyid = '60' or item.familyid = '49' ", myConnection)
	myConnection.Open()
	Dim myReader As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
	'query	
	Dim sb As New StringBuilder
	While myReader.Read()
		''Let's read line by line and Append it to our StringBuilder
		sb.AppendLine(
			   String.Format("{0};{1};{2};{3};{4};{5}",
					   myReader.Item("TipoMovimento"), myReader.Item("ItemID"), myReader.Item("Quantidade"), myReader.Item("PVP"), myReader.Item("data"), myReader.Item("Armazem")))
	End While
	''Now that we have all data in our StringBuilder, lets put into our file
	File.WriteAllText("" & Caminho & "" & DateTime.Now.ToString("yyyyMMdd") & "Export_Sage_PHC.txt", sb.ToString)
	AutoCloseMsgBox("Foi Exportado o ficheiro com sucesso", "InformaVendas", 4)
	'Enviar email com attach das vendas
	Dim SmtpServer As New SmtpClient()
	Dim mail As New MailMessage()

o programa corre sem problema nenhum mas parece que fica bloqueado em vez de a barra andar ali de um lado pro outro, isto era apenas para ficar visualmente bonito e nao parecer que o programa tava parado ja q tava la a progressbar

Editado por gastao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

agora em portugues lol o que queres dizer com backgroundworker? nunca trab com isso.. consegues exempleficar me algo sff

e que sempre que faço uma progressbar parece que o programa tfica parado mas esta a correr em vez de a barrinha ficar ali a mastigar enquanto o programa corre apenas para ficar bonito ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Isso acontece porque o processo é contínuo e exige recursos. Um BackgroundWorker cria-te como que uma thread secundária onde o processo decorre, deixando a thread-mãe "em paz". Podes dar um report de evolução do processo de modo a que isso seja informado na thread-mãe com uma ProgressBar, por exemplo.

http://wiki.portugal-a-programar.pt/dev_net:vb.net:backgroundworkers


Knowledge is free! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.