Q&A

  • delay에 관한 질문입니다..
딜레이가 실행되고 있는 중간에



delay를 해제시킬순 없나요?

2  COMMENTS
  • Profile
    김하늘 2000.08.24 00:55
    정연 wrote:

    > 딜레이가 실행되고 있는 중간에

    >

    > delay를 해제시킬순 없나요?



    딜레이가 아니라 Sleep아닌가여....

    SleepEx란 API가 있는데 그 함수로 될지

    안되면 프로시저하나 만드셔유~~

    호출은 이렇게 해보서유

    DelayX(7000, VK_ESCAPE);



    // 틱단위 아시죠 1/1000초라는 거요

    Procedure DelayX(Tick: DWORD; KeyValue: Integer);

    var

    iFirst: DWORD;

    Begin

    iFirst := getTickCount; // 시작시 틱 보관

    while((getTickCount-iFirst) <=Tick) do

    begin

    Application.ProcessMessages;

    if ((GetKeyState(KeyValue) and $8000) = $8000) Then Begin

    Break;

    End;

    end; //루프돌면서 현재틱-시작시틱 <= 딜레이틱할 조건동안 계속돔

    end;









  • Profile
    정연 2000.08.24 04:17
    김하늘 wrote:

    > 정연 wrote:

    > > 딜레이가 실행되고 있는 중간에

    > >

    > > delay를 해제시킬순 없나요?

    >

    > 딜레이가 아니라 Sleep아닌가여....

    > SleepEx란 API가 있는데 그 함수로 될지

    > 안되면 프로시저하나 만드셔유~~

    > 호출은 이렇게 해보서유

    > DelayX(7000, VK_ESCAPE);

    >

    > // 틱단위 아시죠 1/1000초라는 거요

    > Procedure DelayX(Tick: DWORD; KeyValue: Integer);

    > var

    > iFirst: DWORD;

    > Begin

    > iFirst := getTickCount; // 시작시 틱 보관

    > while((getTickCount-iFirst) <=Tick) do

    > begin

    > Application.ProcessMessages;

    > if ((GetKeyState(KeyValue) and $8000) = $8000) Then Begin

    > Break;

    > End;

    > end; //루프돌면서 현재틱-시작시틱 <= 딜레이틱할 조건동안 계속돔

    > end;

    >

    >

    >

    >



    김하늘님



    좀 자세히 설명해주실순 없나요?



    딜레이를 써본적이 없어서



    무슨뜻인지 잘 모르겠어요



    부탁합니다