Urgente... Preciso montar uma grade p/ meu programa.

Delphi

20/02/2003

Estou fazendo um sistema para Rádio e preciso montar uma grade de Breaks. Essa grade, irei usar o DBGrid.

Tenho um form com algumas opções com horários. O Cliente pode montar uma grade dentro de 24 horas com a seguinte configuração:
em 20 em 20 minutos, em 40 e 40, etc.

Ex.
Montar uma grade para amanhã num período de 12 horas, com a configuração de 40 em 40 minutos.

A grade, que seria o DBGRid ficará assim:

8:00
8:40
9:20
10:00
10:40
etc..


Shikota

Shikota

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

20/02/2003

Estou fazendo um sistema para Rádio e preciso montar uma grade de Breaks. Essa grade, irei usar o DBGrid. Tenho um form com algumas opções com horários. O Cliente pode montar uma grade dentro de 24 horas com a seguinte configuração: em 20 em 20 minutos, em 40 e 40, etc. Ex. Montar uma grade para amanhã num período de 12 horas, com a configuração de 40 em 40 minutos. A grade, que seria o DBGRid ficará assim: 8:00 8:40 9:20 10:00 10:40 etc..


Segue um exemplo com intervalos de 20 minutos...

function TForm1.IncMinuto(ATime: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncTime(ATime, 0, Delta, 0, 0);
end;

function TForm1.IncTime(ATime: TDateTime; Hours, Minutes, Seconds,
  MSecs: Integer): TDateTime;
begin
  Result := ATime + (Hours div 24) + (((Hours mod 24) * 3600000 +
    Minutes * 60000 + Seconds * 1000 + MSecs) / MSecsPerDay);
  if Result < 0 then Result := Result + 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Hours: TTime;
begin

Hours:= EncodeTime(8,0,0,0);// Inicio 08h
  Memo1.Lines.Clear;

  while Hours <= EncodeTime(20,0,0,0) do // Até 20h
  begin
  Memo1.Lines.Add(TimeToStr(Hours));
    Hours:= IncMinuto(Hours,20);
  end;

end;



GOSTEI 0
Shikota

Shikota

20/02/2003

[quote:64dc080c6a=´Aroldo Zanela´]
Estou fazendo um sistema para Rádio e preciso montar uma grade de Breaks. Essa grade, irei usar o DBGrid. Tenho um form com algumas opções com horários. O Cliente pode montar uma grade dentro de 24 horas com a seguinte configuração: em 20 em 20 minutos, em 40 e 40, etc. Ex. Montar uma grade para amanhã num período de 12 horas, com a configuração de 40 em 40 minutos. A grade, que seria o DBGRid ficará assim: 8:00 8:40 9:20 10:00 10:40 etc..


Segue um exemplo com intervalos de 20 minutos...

function TForm1.IncMinuto(ATime: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncTime(ATime, 0, Delta, 0, 0);
end;

function TForm1.IncTime(ATime: TDateTime; Hours, Minutes, Seconds,
  MSecs: Integer): TDateTime;
begin
  Result := ATime + (Hours div 24) + (((Hours mod 24) * 3600000 +
    Minutes * 60000 + Seconds * 1000 + MSecs) / MSecsPerDay);
  if Result < 0 then Result := Result + 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Hours: TTime;
begin

Hours:= EncodeTime(8,0,0,0);// Inicio 08h
  Memo1.Lines.Clear;

  while Hours <= EncodeTime(20,0,0,0) do // Até 20h
  begin
  Memo1.Lines.Add(TimeToStr(Hours));
    Hours:= IncMinuto(Hours,20);
  end;

end;
[/quote:64dc080c6a]


GOSTEI 0
POSTAR