Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Вопрос по времени


Автор: Des666 1.11.2006, 21:28
Скажите пожалуйста вот есть у меня в одном поле например время в секундах идущее назад, как сделать так чтобы в другом поле это же время показывалось  как 2:15мин 2:14 и т.д.

Автор: Romikgy 1.11.2006, 21:43
и в чем трабла?
TimeToStr

Автор: Des666 1.11.2006, 21:52
Вот так я сделал а время в Panel3 идёт а в Panel1 все 0
Код

var
  Form1: TForm1;
  vvodchas,vvodmin,milschas,milsmin,x:integer;
const
  mils=1000;
  chas=3200;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
vvodchas:=strtoint(Edit1.Text);//ââîä ÷àñîâ
vvodmin:=strtoint(Edit2.Text); //ââîä ìèíóò
milschas:=vvodchas*chas;//âûñ÷èòûâàåì ñêîëüêî ñåêóíä â ÷àñàõ
milsmin:=vvodmin*60;//Âûñ÷èòûâàåì ñêîëüêî ñåêóíä â ìèíóòàõ
x:=milschas+milsmin;//ïðèñâàåâàåì òàéìåðó íà÷àëüíîå çíà÷åíèå
Timer1.Enabled:=true;//çàïóñêàåì òàéìåð
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  begin
  dec(x);//âû÷èòàåì èç ïåðåìåííîé Õ åäèíèöó
  Panel3.Caption:= IntToStr(x);//ïðèñâàåâàåì ïîëþ òåêóùåå çíà÷åíèå Õ

  Panel1.Caption:=TimeToStr(strtoint(panel3.Caption));
      if x = 0 then //Êîãäà Õ áóäåò ðàâåò 0
        begin
          Timer1.Enabled:= False;// âûêëþ÷àåì òàéìåð
          Showmessage('Âðåìÿ âûøëî');//âûâîäèì ñîîáùåíèå
        end;

    end;

end;

end.

Автор: Des666 1.11.2006, 22:21
Всё сам додумался  smile  теперь нужно как-то отбросить 14 знаков после запятой... но
это уже другой вопрос и тругой топик...
А решил вот таким способом 
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Mask;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Timer1: TTimer;
    Button1: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  vvodchas,vvodmin,milschas,milsmin,x:integer;
const
  mils=1000;
  chas=3200;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
vvodchas:=strtoint(Edit1.Text);//ââîä ÷àñîâ
vvodmin:=strtoint(Edit2.Text); //ââîä ìèíóò
milschas:=vvodchas*chas;//âûñ÷èòûâàåì ñêîëüêî ñåêóíä â ÷àñàõ
milsmin:=vvodmin*60;//Âûñ÷èòûâàåì ñêîëüêî ñåêóíä â ìèíóòàõ
x:=milschas+milsmin;//ïðèñâàåâàåì òàéìåðó íà÷àëüíîå çíà÷åíèå
Timer1.Enabled:=true;//çàïóñêàåì òàéìåð
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var b,a,s:real;//integer;

    f:string;
begin
begin
 s:=6000;
 a:=strtofloat(inttostr(x));
 b:=a/s;
 f:=Floattostr(b);
 panel1.Caption:=f;
end;
  begin
  dec(x);//âû÷èòàåì èç ïåðåìåííîé Õ åäèíèöó
  Panel3.Caption:= IntToStr(x);//ïðèñâàåâàåì ïîëþ òåêóùåå çíà÷åíèå Õ

  //Panel1.Caption:=TimeToStr(strtoint(panel3.Caption));
      if x = 0 then //Êîãäà Õ áóäåò ðàâåí 0
        begin
          Timer1.Enabled:= False;// âûêëþ÷àåì òàéìåð
          Showmessage('Âðåìÿ âûøëî');//âûâîäèì ñîîáùåíèå
        end;

    end;

end;

end.


Автор: Romikgy 1.11.2006, 22:34
Des666, ты хоть бы хелп посмотрел на
Цитата(Des666 @  1.11.2006,  20:52 Найти цитируемый пост)
TimeToStr(strtoint(panel3.Caption));


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)