Q&A

  • 시간관리에 대해 가르쳐 주세요(긴급)
고수님들 저는 초본데요.

시간을 몇시부터 몇시까지 정한 다음 그동안 규칙적으로 이벤트나 메세지를 띄우고 싶은데 잘 생각이 안 나네요.

예를 들어 밤 9시부터 다음날 새벽 5시까지 1 시간마다 메세지나 이벤트를 띄울려면 어떻게 해야 되죠....

제발 한 수 가르쳐 주십시오.......

3  COMMENTS
  • Profile
    윤종필 2000.10.21 18:20
    위의 분이 답변한대로 하시면 되고요

    한시간마다 이벤트를 발생시키는 문제는 타이머를 사용하지 않는게 좋습니다.

    시간을 계산하는데(더구나 큰시간을) 타이머는 믿을수 없거든요.



    var mytimer:word; //요건 전역 변수로 선언하세요. FormShow 이벤트에서 초기화

    beforetime :TDateTime;

    //다음 이벤트 루틴에서 윗부분이 설명중 남긴 부분입니다. 시간계산부분

    begin



    mytimer := myTimer+((Time-BoforeTime)*24*60); //변수에 이 이벤트가 돌아올때까지 흐른시간을 계산해 누적해준다.

    BeforeTiem := now;

    if MyTime >= 60 then

    begin

    //하고 싶은일을 여기서

    myTimer := 0; //다시 초기화

    end;

    end;



    위 루틴은 타이머의 이벤트에 넣어 일정시간마다 계산하여도 되고 쓰레드로 작성하여도 됩니다.



    Jonny wrote:

    > 고수님들 저는 초본데요.

    > 시간을 몇시부터 몇시까지 정한 다음 그동안 규칙적으로 이벤트나 메세지를 띄우고 싶은데 잘 생각이 안 나네요.

    > 예를 들어 밤 9시부터 다음날 새벽 5시까지 1 시간마다 메세지나 이벤트를 띄울려면 어떻게 해야 되죠....

    > 제발 한 수 가르쳐 주십시오.......

  • Profile
    남기석 2000.10.21 11:14
    안녕하세요

    청개구리 남기석입니다.



    델파이에서 직접 지원하는 기능은 저도 찾다가 못 찾았구요...

    타이머를 조금 변형해서 사용하면 가능합니다...

    제가 하고 있는 프로젝트에서 써먹던 방법을 알려 드리지요...



    일단....

    타이머의 인터벌을 60초 정도로 설정합니다.

    1000 이 1초니까... 60000 만 정도로 설정하시면 되겠네요...

    글구 이렇게 이벤트 처리를 하세요...



    procedure TfrmRServer.TimerCodeDownTimer(Sender: TObject);

    var

    sTime : string;

    sDownTime : string;

    sFrom, sTo : string;

    begin

    sFrom := '030000'; // 03 시 정각부터

    sTo := '030059'; // 03 시 59초까지



    sTime := FormatDateTime( 'HHNNSS', Time ); // 현재시간..



    if ( sTime >= sFrom ) and ( sTime <= sTo ) then // 00:00초에서 00:59초 사이면

    begin

    // 여기다가 이벤트 처리...

    end;

    end;



    이건 제가 매일 새벽 3시에 메인서버에 있는 코드들을 워크그룹서버로

    내리기 위해서 사용하고 있는 방법을 간단하게 요약한 겁니다.

    벌써 3개월째 돌아가고 있는데 아무 문제 없이 돌구 있습니다.



    저녁 9시부터 새벽 5시 일정 간격으로 이벤트를 발생시키려면...

    조금 더 변형해야 겠네요...



    아참 델파이 타이머의 Interval은 정확하지 않습니다.

    60000으로 설정해 놓면...

    어떤 PC에선 60초에..

    또 어떤 PC에선 50초에

    또 어떤 PC에선 70초에 ...등등 결과가 틀립니다....

    참고하세요...



    행복하세요.



    =============================================================================

    Jonny wrote:

    > 고수님들 저는 초본데요.

    > 시간을 몇시부터 몇시까지 정한 다음 그동안 규칙적으로 이벤트나 메세지를 띄우고 싶은데 잘 생각이 안 나네요.

    > 예를 들어 밤 9시부터 다음날 새벽 5시까지 1 시간마다 메세지나 이벤트를 띄울려면 어떻게 해야 되죠....

    > 제발 한 수 가르쳐 주십시오.......

  • Profile
    이광형 2000.10.21 09:34
    timer component 를 써 보세요

    타임딜레이는 1000 이 1초니까...

    시간 마다 이벤트를 발생 시킬려면... 100000 인가... 시도는 안해 봤지만...



    Jonny wrote:

    > 고수님들 저는 초본데요.

    > 시간을 몇시부터 몇시까지 정한 다음 그동안 규칙적으로 이벤트나 메세지를 띄우고 싶은데 잘 생각이 안 나네요.

    > 예를 들어 밤 9시부터 다음날 새벽 5시까지 1 시간마다 메세지나 이벤트를 띄울려면 어떻게 해야 되죠....

    > 제발 한 수 가르쳐 주십시오.......