ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Ajuda em letreiro com labels [RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
eudiclei
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 23 de Março de 2005
Mensagens: 178

MensagemEnviada: Dom Set 02, 2018 9:11 pm    Assunto: Ajuda em letreiro com labels [RESOLVIDO] Responder com Citação

Olá galera!

Juntei dois códigos pego na net para fazer um letreiro com labels perfeito.
Só falta um pequena ajuda de vcs.

O código:
Código:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if label3.left>= -(label3.Width) then
  label3.left:=label3.left-1
else
  label3.left := Panel1.width;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
   I := I + 1;
   TrocaMensagem;
end;

procedure TForm1.TrocaMensagem;
begin
  case I of
    1: Form1.Label3.Caption := 'Mensagem 1';
    2: Form1.Label3.Caption := 'Mensagem 2';
    3: Form1.Label3.Caption := 'Mensagem 3';
    4: Form1.Label3.Caption := 'Mensagem 4';
    5: Form1.Label3.Caption := 'Mensagem 5';
    6: I := 0;
  end;
end;


A primeira procedure faz o label rolar na tela de ponta a ponta.
A segunda procedure faz mudar a mensagem.
Como estão em timer as frases estão mudando no meio da rolagem.

Como posso fazer para que a mudança de mensagem aconteça quando o label passar totalmente pela margem esquerda (rola da direita para a esquerda)?

Podem me ajudar?
Valeu!!


Editado pela última vez por eudiclei em Seg Set 03, 2018 7:59 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Set 03, 2018 9:33 am    Assunto: Responder com Citação

Bom dia,

Não cheguei a testar, mas acho que não é necessário utilizar 2 Timers. Experimente fazer uns testes dessa forma:

Código:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if label3.left >= -label3.Width then
    label3.left := label3.left - 1
else
  begin
    I := I + 1;
    TrocaMensagem;
    label3.left := Panel1.width;
  end;
end;


Espero que ajude


Editado pela última vez por imex em Dom Out 01, 2023 4:23 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
eudiclei
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 23 de Março de 2005
Mensagens: 178

MensagemEnviada: Seg Set 03, 2018 7:54 pm    Assunto: Responder com Citação

Era Justamente isto.

Obrigado Imex!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB