Se você usou "Kingsoft PowerWord" ou "Orient Express", você definitivamente estará interessado nas legendas rolantes em sua janela "Sobre". Na verdade, esta função pode ser facilmente realizada usando o controle Timer no Delphi.
1. Ideias de design
Primeiro, coloque um controle Panel no formulário e coloque o texto que precisa ser exibido no controle Panel. Em seguida, através do controle Timer, altere continuamente a posição do controle Panel dentro de um determinado intervalo para obter o efeito de legendas rolantes. .
2. Método de implementação
1. Crie um novo formulário e defina suas propriedades da seguinte forma:
Nome:frmSobre1
Rolagem automática: falso
2. Coloque um controle Panel no formulário, seu nome padrão é Panel1 e defina suas propriedades da seguinte forma:
BevelOuter: bvNone
Legenda: (definida como vazia)
Ajuste a altura e largura do Panel1 para torná-lo uma faixa vertical. A altura depende do conteúdo a ser exibido (pode ser maior que a altura do formulário).
3. Coloque um controle Label no Panel1 para exibir texto. Claro, você também pode colocar um controle Image nele para exibir imagens, mas o tamanho da imagem não deve ser muito grande, caso contrário, afetará o efeito de exibição.
4. Coloque um controle Timer no formulário, seu nome padrão é Timer1, defina o valor da propriedade Interval como 50 e insira o seguinte código em seu evento OnTimer:
se Panel1.top>-Panel1.height então
Painel1.top:=Painel1.top-1
outro
Painel1.top:=frmAbout1.height-35;
{Determine se o Painel1 foi movido para o topo do formulário. Caso contrário, mova-o um pixel para cima; em caso afirmativo, mova o Painel1 para a parte inferior do formulário e exiba as legendas em um loop.
5. Coloque um controle Button no formulário, defina sua propriedade Caption como "OK" e insira o seguinte código no evento OnClick:
close;{Fechar o formulário}
3. Melhore a análise
O acima é um processo simples de implementação de legendas rolantes, mas ainda há uma área que precisa de melhorias adicionais: se o formulário usar uma imagem como plano de fundo, o controle Panel bloqueará parte do padrão de plano de fundo. Na verdade, para resolver esse problema, não podemos usar o controle Panel, mas colocar diretamente o controle Label no formulário, definir o valor da propriedade Transparent do controle Label como True e, em seguida, controlar diretamente esses controles Label através do Timer controle do movimento. Devido a limitações de espaço, o autor não irá descrevê-lo em detalhes aqui.