Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leox

Aplicação VCL não apresenta como deve

Recommended Posts

Boa noite programmers...

 

Depois de tanta peleja, tive que vir "consultar os universitários" para quem saiba, me dar uma "luz"... rs.

 

É o seguinte... Estou desenvolvendo uma pequena aplicação utilizando VCL no C++ Builder XE quem tem a SINTAXE bem similar.

 

E em uma parte dessa aplicação, eu gostaria de fazer um TPanel de "execuntado", com um TLabel e TProgressBar, porém ao executar, o TPanel não aparece conforme o planejado... imagem abaixo:

 

panelerrado.png

 

 

Olhem como deveria aparecer:

 

panelcerto.png

 

Porém, não sei nem por onde começar a pesquisar este tipo de comportamento da VCL.

 

Alguém tem noção disso???

 

Abraços.

 

Aguardo.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Você precisa utilizar o Método Application.Messages para que ele consiga printar a tempo o seu componente e assim exibí-lo.

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Eisenheim,

 

Você diz em apresentar uma menssagem para que o componente seja exibido corretamente? Se sim, não faz sentido, porque o componente 'trava' depois que a mensagem é fechada.

 

Deve haver alguma outra forma do componente trabalhar corretamente... já tentei com Thread, mas também não funfou... :(

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Na verdade houve uma falha de minha parte com relação ao nome do método utilizado.

 

No caso, seria o Application.ProcessMessages, desculpe o erro de digitação.

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu novamente Eisenheim,

 

Agora sim entendi... e pude chegar a um resultado similiar ao que eu queria... :)

 

Vou disponibilizar a lógica como ficou (lembrando que em Delphi é um pouquinho diferente...) :

 

			//Aprensentar painel LOADING
			pnlLoad -> Visible = true;

			//Capturando valor a somar na barra de progresso.
			int valorSomar = 100/qtd_linhas;

			//Laço para executar operações para a quantidade de linhas.
			for (i = 1; i < qtd_linhas; i++) {
				//Progress Bar
				ProgressBarLoading -> StepBy(valorSomar);

				//Caption de loading
				lblLoadingData -> Caption = IntToStr(i)+" de "+IntToStr(qtd_linhas);

				//Apresentar corretamente o TPanel de Load.
				Application -> ProcessMessages();

				//RESTO DO FOR...
			 }

 

No mais, obrigado pela "luz" Eisenheim... espero poder contar contigo numa próxima dúvida... rsrs... :yay:

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.