Q&A

  • 마우스에 관한 질문입니당
타이머 말고



시간을 지연시킬수 있는 그런 명령어는 없나요?



delay는 안먹히던데요 도움말에도 없네요 ^^;



타이머 말고는 없는건가요?

1  COMMENTS
  • Profile
    최용일 2000.03.08 07:04
    예전의 도스 프로그램에서는 Delay를 사용하여 시간을 지연시켰지만

    윈도에서는 이런 방법을 허용하지 않습니다. 왜냐하면 윈도우즈는

    멀티태스킹 시스템이므로 여러 프로그램들이 시간을 쪼개어 공동으로

    사용해야 하기 때문이죠. 그래서 대기 루틴 동안 CPU가 아무 일도 하지

    못하도록하는 예전 도스 프로그램의 Delay와 같은 코드는 사용하실 수

    없으며 Timer를 사용하여 꼭 필요한만큼만 CPU를 사용하셔야 합니다.



    아래의 코드는 5초간의 시간지연후 프로그램을 종료하는 예제입니다.

    참고하세요...



    unit Unit1;



    interface



    uses

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

    ExtCtrls, StdCtrls;



    type

    TForm1 = class(TForm)

    Timer1: TTimer;

    procedure Timer1Timer(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    private

    TempCount: Integer;

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.Timer1Timer(Sender: TObject);

    begin

    Inc(TempCount);

    if TempCount > 5 then

    Close;

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    TempCount := 0;

    end;



    end.