Esta função é um acumulador de tempo. Nela você não usa TDateTime pois se usa-lo não conseguirá passar de "23:59:59". Com este acumulador você só pode ir até "infinito:59:59". É que produzi um player de midia com playlist e tudo e quiz saber
quanto tempo de música eu tinha no playlist. Daí então desenvolvi este
programa teste para poder entroduzir o acumulador no player.
Eis a saída do programinha e seu respectivo código.

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Funcoes;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function AcumulaTempo(Hora1,Hora2:String):String;
var
hora,min,seg:integer;
begin
hora:=strtoint(Copy(Hora1,1,2))+strtoint(Copy(Hora2,1,2));
min:=strtoint(Copy(Hora1,4,2))+strtoint(Copy(Hora2,4,2));
seg:=strtoint(Copy(Hora1,7,2))+strtoint(Copy(Hora2,7,2));
if seg>=60 then
begin
min:=min + seg div 60;
seg:=seg mod 60;
end;
if min>=60 then
begin
hora:=hora + min div 60;
min:=min mod 60;
end;
if hora > 99 then
Result:=Format('%.3d:%.2d:%.2d',[Hora,min,seg])
else
Result:=Format('%.2d:%.2d:%.2d',[Hora,min,seg]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Caption:=AcumulaTempo(Edit1.Text,Edit2.Text);
end;
end.
Observação: Por: David sapodiou2@bol.com.br
|