Q&A

  • 버튼을 눌른후 시간의 흐름을 보고싶을때
다른 프로그램을 실행시키는 버튼을 만들었습니다.

버튼을 누른후 1초단위로 경과시간을 보여줄려면 어떻게 해야합니까?

예) 0시간 0분 1초 : 1초후

0시간 0분 2초 : 2초후

1시간 0분 0초 : 1시간후



1  COMMENTS
  • Profile
    방기남 2000.09.26 12:43
    '시계 알고리즘이란 이런 것이다' 라는 정도만 학습할 수 있는 소스입니다.

    폼에 Timer Component 하나와 Label Component 하나만 사용하여 만든 것입니다.

    님은 버튼을 달아서 아래와 같은 식으로 사용하시면 될겁니다.



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, ExtCtrls;



    type

    TForm1 = class(TForm)

    Timer1: TTimer;

    Label1: TLabel;

    procedure Timer1Timer(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;

    S,M,H: Integer; { Sec, Min, Hour is Zero }



    implementation



    {$R *.DFM}



    procedure TForm1.Timer1Timer(Sender: TObject);

    begin

    Timer1.Interval := 1000;



    Inc(S);

    case S of

    0..59 : Label1.Caption := IntToStr(H)+':'+IntToStr(M)+':'+IntToStr(S);

    60 : begin

    Inc(M);

    if M = 60 then begin

    M := 0;

    Inc(H);

    end;

    S := 0;

    Label1.Caption := IntToStr(H)+':'+IntToStr(M)+':'+IntToStr(S);

    end;

    end;

    end;



    end.



    (결과)

    0:0:0 에서 1초마다 카운트되며, 60초, 60분마다 업데이트됩니다.



    ^^ S, M, H 는 전역변수니깐 초기화가 필요없겠죠?