Fórum Letreiro no delphi #559368

18/07/2016

0

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

Responder

Posts

18/07/2016

Mateus Ribeiro

Boa tarde! Pode postar seu code completo para melhor entendimento?
Responder

Gostei + 0

18/07/2016

Natanael Ferreira

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]
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar