Jak zrobić by wyświetlał tyle ile wynosi czas

0

Prosze o pomoc :) oto co mi sie udało wypocić :

procedure TForm1.Button2Click(Sender: TObject);

var
h,m,s,ms : Word;
czas : TTime;
ed : array of TEdit;
i : integer;
begin
if eCzasDo.Checked = True or eCzasOd.Checked then
Begin
czas := eCzasDo.Time - eCzasOd.Time;
DecodeTime(czas,h,m,s,ms); // Czas !!!!!!!!!!!

  SetLength(ed, <b>5</b>);
    for i := 0 to 5 - 1 do
      begin
        ed[i] := TEdit.Create(self);
        ed[i].Parent := self;
        ed[i].Left := 277;
        ed[i].Top := 40 + i * 30;
      end;

 End;

end;

Chodzi o to ze on zlicza róznice czasu dekoduje go i ma mi wyświetlać tyle editów ile wynosi roznica czasu
W tym przypadko wyświetla mi 5 editow ale gdy zamiast 5 wstawie moją zmienną czas to wywala mi błąd :/ Ze złe typy ale jak to zamienić Jest TimeToStr ale string tez tam nie bedzie dobry :(((
Prosze niech mnie ktoś poratuje :)

0
To_mas napisał(a)

tyle editów ile wynosi roznica czasu

12:34:45 i 13:43:01 ile dla Ciebie wynosi ta różnica czasu? i ile w takim wypadku by miało być editów??

0

może coś takiego:

uses DateUtils;

procedure TForm1.Button2Click(Sender: TObject);
var
  czas : cardinal;
  ed : array of TEdit;
  i : integer;
begin
  if eCzasDo.Checked or eCzasOd.Checked then
    Begin
      czas := abs(DateTimeToUnix(eCzasDo.DateTime) - DateTimeToUnix(eCzasOd.DateTime));
      SetLength(ed, czas); // lub np (czas div 60) jeśli chodzi o minuty
        for i := low(ed) to high(ed) do
          begin
            ed[i] := TEdit.Create(self);
            ed[i].Parent := self;
            ed[i].Left := 277;
            ed[i].Top := 40 + i * 30;
          end;
     end;
end;
0

No roznica czasu to chodzi mi o same godziny !!!! zapomniałem o tym najwazniejszym przepraszam !!! Musze wyodrębnić same godziny !!

1 użytkowników online, w tym zalogowanych: 0, gości: 1