Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img546.imageshack.us/img546/396/panelerrado.png&key=7e00c6266e0fcee72cd5cb63dc4c582155964108f8d800889cac498fb1b7ab8e" alt="panelerrado.png" />
Olhem como deveria aparecer:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img836.imageshack.us/img836/5416/panelcerto.png&key=b88b0772fe7170d92455ff88db9d6558170f25784df6ab5dd40bde53ab67dec5" alt="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.
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.
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:
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.
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: