Letreiro no delphi

Delphi

18/07/2016

Olá a todos, estou tentando fazer um label que mostre cada letra da frase de uma vez, de forma que a letra anterior se mova para a esquerda, o que faz que todas as letras saiam do mesmo lugar, semelhante a um letreiro.

No Timer, eu pus o seguinte código:

begin
if letreiro_count <> 1 then
lbl_letreiro.left := lbl_letreiro.Left - 48;
lbl_letreiro.Caption := lbl_letreiro.Caption + letreiro[letreiro_count];
letreiro_count := letreiro_count + 1;
if letreiro_count = length(letreiro)+1 then
begin
lbl_letreiro.Left := leftinicial;
letreiro_count := 1;
lbl_letreiro.caption := '';
end;


onde letreiro é uma string com o valor 'MEU TEXTO AQUI'.
48 é a largura de cada letra.

Até funciona, porém o que acontece é que toda vez que o timer é executado, o fundo do label fica branco por um curtinho periodo de tempo, o que é notável por causa da imagem de fundo, o que atrapalha a estética do programa. Queria saber se vocês podem me ajudar com outra forma de fazer esse letreiro ou alguma propriedade que evite o que está acontecendo, obrigado!
Vitor Ferreira

Vitor Ferreira

Curtidas 0

Respostas

Mateus Ribeiro

Mateus Ribeiro

18/07/2016

Boa tarde! Pode postar seu code completo para melhor entendimento?
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

18/07/2016

Experimente utilizar o comando [b]Application.ProcessMessages[/b] para evitar isso:

begin
  Application.ProcessMessages;

  if letreiro_count <> 1 then
    lbl_letreiro.left := lbl_letreiro.left - 48;

  lbl_letreiro.Caption := lbl_letreiro.Caption + letreiro[letreiro_count];
  letreiro_count := letreiro_count + 1;

  if letreiro_count = length(letreiro) + 1 then
  begin
    lbl_letreiro.left := leftinicial;
    letreiro_count := 1;
    lbl_letreiro.Caption := '';
  end;
end;

Uma outra opção de Letreiro você pode conferir neste link:
[url:descricao=http://www.planetadelphi.com.br/dica/7007/letreiro-digital-(da-direita-para-esquerda)]http://www.planetadelphi.com.br/dica/7007/letreiro-digital-(da-direita-para-esquerda)[/url]
GOSTEI 0
POSTAR