Alguem me explica esse codigo...por favor - Fórum DevMedia
Alguem me explica esse codigo...por favor
Me passaram assim....fiz e deu certhu, mas gostaria de enteder...
1) Coloque um componente TTimer no seu formulário, e modifique a propriedade Interval para 100.
2) Em seguida no EVENTO OnTimer do componente TTimer, insira o seguinte código:
var tempcap : string;
tempcap := ´´;
if FlagDir = true then x := x+1 else x := x-1;
for z := 1 to x do tempcap := tempcap + ´ ´;
tempcap := tempcap + trim(Form1.caption);
Form1.caption := tempcap;
if x = 10 then FlagDir := false;
if x = 1 then FlagDir := true;
3) No evento FormCreate do formulário, coloque:
FlagDir := true;
4) Não esqueça de declarar as variáveis x (integer) e FlagDir (boolean) na seção var (antes de implementation) do seu form.
Se você quiser que o caption ande mais devagar ou mais rápido, aumente ou diminua o calor da propriedade Interval do componente TTimer. Se você quiser que o espaço de movimentação do caption seja maior (no presente exemplo ele move-se 10 caracteres para cada lado), simplesmente aumente o valor do x na linha:
Reynaldo Giane
Esse código é bastante simples. Pelo que eu entendi, o que ele faz é simular que um label fique indo de um lado para o outro não é isso? Bem, supondo que você entende o que é um [i:0aec113093]Timer[/i:0aec113093] e o que ele faz, eu vou explicar apenas o que acontece dentro do timer, a cada décimo de segundo.
tempcap : string;
if FlagDir = true then
(** O que aconteceu aqui em cima foi o seguinte: Esta variável FlagDir é uma variável que vai controlar se o caption vai estar se movendo para a direita (ela será true) ou para a esquerda (ela será false). E o x será uma variável que vai guardar quantos espaços em branco devem ir antes do caption. Se ela estiver indo para a direita, você deve aumentar os espaços em branco, afastando o caption - já se ela estiver indo para a esquerda, você deve reduzir os espaços em branco, aproximando o caption. **)
for z := 1 to x do
tempcap := tempcap + ´ ´;
(** Nessa parte, ele vai criar uma string temporária apenas com os espaços em branco necessários, para depois fazer uma junção dos espaços em branco com a caption. **)
FlagDir := false;
(** Aqui, finalmente, o form recebe o caption com o espaçamento adequado. Se o caption já foi incrementado com 10 espaços, um de cada vez (x = 10), então é hora de atribuir ao FlagDir o valor False, ou seja, agora o movimento vai ser para a esquerda - e se o caption já foi reduzido em 9 espaços, um de cada vez (x = 1), é hora de deslocá-lo de novo para a direita, ou seja, FlagDir volta a ser True. **)
Espero que você tenha compreendido o código agora. :) O que acontece no [i:0aec113093]OnCreate[/i:0aec113093] do form é que o [i:0aec113093]x[/i:0aec113093] recebe 1, ou seja, você começa com 1 espaçamento, e o [i:0aec113093]FlagDir[/i:0aec113093] recebe true, ou seja, você estará deslocando o label inicialmente para a direita. Se você trocar onde tiver 10 para um número maior (30, por exemplo), o deslocamento será maior em ambos os sentidos. Da mesma forma, se você diminuir ou aumentar o tempo no TTimer, você verá que o deslocamento será ou mais rápido, ou mais lento. :) Deu pra entender?