Como acumular o tempo num TLabel?
Olá pessoal, estou precisando de uma rotina para acumular horas, é para um joguinho que estou bolando em fazer.
Seguinte, tenho 4 produtos:
- Barro;
- Areia;
- Cimento;
- Pedra.
Haverá quatro variáveis para armazenar a quantidade de cada produto:
- QtdBarro : integer;
- QtdAreia : integer;
- QtdCimento : integer;
- QtdPedra : integer;
Quero colocar a rotina dentro de um TTimer e que fique atualizando constantemente, sem fim.
1.) Se o valor de algumas das variáveis for zero, o TLabel correspondente fique parado, não pode zerar;
2.) Se alguma ou todas ou algumas das variáveis acima tiverem um valor acima de zero, vá acumulando nos TLabel referentes de acordo com o tempo;
3.) Não pode haver frações, ou seja, em cada TLabel onde ficará os valores acumulados deve ser inteiros, não pode aumentar nem diminuir, se o valor der ´3,5´, espera até dar um valor inteiro.
Seria de acordo com o tempo, porisso escolhi um TTimer, se a quantidade de um produto for 1 por hora, a cada hora deve ser colocado ´1´ no TLabel, se houver 60 produtos por hora, a cada minuto deve colocar 1 produto no TLabel.
Não sei como armar essa rotina, alguém poderia me ajudar?
Seguinte, tenho 4 produtos:
- Barro;
- Areia;
- Cimento;
- Pedra.
Haverá quatro variáveis para armazenar a quantidade de cada produto:
- QtdBarro : integer;
- QtdAreia : integer;
- QtdCimento : integer;
- QtdPedra : integer;
Quero colocar a rotina dentro de um TTimer e que fique atualizando constantemente, sem fim.
1.) Se o valor de algumas das variáveis for zero, o TLabel correspondente fique parado, não pode zerar;
2.) Se alguma ou todas ou algumas das variáveis acima tiverem um valor acima de zero, vá acumulando nos TLabel referentes de acordo com o tempo;
3.) Não pode haver frações, ou seja, em cada TLabel onde ficará os valores acumulados deve ser inteiros, não pode aumentar nem diminuir, se o valor der ´3,5´, espera até dar um valor inteiro.
Seria de acordo com o tempo, porisso escolhi um TTimer, se a quantidade de um produto for 1 por hora, a cada hora deve ser colocado ´1´ no TLabel, se houver 60 produtos por hora, a cada minuto deve colocar 1 produto no TLabel.
Não sei como armar essa rotina, alguém poderia me ajudar?
Onjahyr
Curtidas 0
Respostas
Catunda
09/11/2008
Veja se o exemplo ajuda.
private
xtempo: TTime;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
{propriedade Interval do TTimer = 1000}
xtempo:=xtempo+StrToTime(´00:00:01´);
Label1.Caption:=FormatDateTime(´hh:mm:ss´,xtempo);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
xtempo:=StrToTime(´00:00:00´);
Timer1.Enabled:=true;
end;
private
xtempo: TTime;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
{propriedade Interval do TTimer = 1000}
xtempo:=xtempo+StrToTime(´00:00:01´);
Label1.Caption:=FormatDateTime(´hh:mm:ss´,xtempo);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
xtempo:=StrToTime(´00:00:00´);
Timer1.Enabled:=true;
end;
GOSTEI 0
Onjahyr
09/11/2008
Não Catunda, isso aí é um contador de tempo apenas, não baseia-se em cálculo de produtos, etc...
Agradeço de qualquer forma.
Alguém mais pode dar um palpite ?
Agradeço de qualquer forma.
Alguém mais pode dar um palpite ?
GOSTEI 0
Onjahyr
09/11/2008
Ninguém sabe?
GOSTEI 0