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:
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!
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;
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
Curtir tópico
+ 0
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:
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]
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
Clique aqui para fazer login e interagir na Comunidade :)