Q&A

  • delay타임을 주는 방법에 대해서 알고싶습니다.
RS-232통신으로 바코드 프린터에 데이타를 보내는데 데이타가 너무 많을경우 출력이 제대로 되지 않습니다.

중간에 데이타가 짤리는것 같은데...

delay타임을 주면 데이타가 짤리는것을 막을수 있다는데

델파이에서 구현하는 방법을 알고싶습니다.

2  COMMENTS
  • Profile
    박성훈 1999.11.18 00:54
    양세진 wrote:

    > RS-232통신으로 바코드 프린터에 데이타를 보내는데 데이타가 너무 많을경우 출력이 제대로 되지 않습니다.

    > 중간에 데이타가 짤리는것 같은데...

    > delay타임을 주면 데이타가 짤리는것을 막을수 있다는데

    > 델파이에서 구현하는 방법을 알고싶습니다.



    delay함수입니다.vclutils.pas에 있습니다.



    procedure Delay(MSecs: Longint);

    var

    FirstTickCount, Now: Longint;

    begin

    FirstTickCount := GetTickCount;

    repeat

    Application.ProcessMessages;

    {루프 도중 사용자가 다른 일을 할 수 있게 해줌.}

    Now := GetTickCount;

    until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount);

    end;



    Sleep함수의 차이점은 for문으로 카운트를 증가시켜보면 알 수 있음.



    procedure Inccount;

    var

    i:integer;

    begin

    for i:=0 to 2000 do

    begin

    label1.Caption:= IntToStr(i);

    delay(50);

    end;

    end;

    같은 식으로 Sleep함수를 써보시죠. 차이점이 있을 겁니다.



  • Profile
    임형호 1999.11.17 23:14
    양세진 wrote:

    > RS-232통신으로 바코드 프린터에 데이타를 보내는데 데이타가 너무 많을경우 출력이 제대로 되지 않습니다.

    > 중간에 데이타가 짤리는것 같은데...

    > delay타임을 주면 데이타가 짤리는것을 막을수 있다는데

    > 델파이에서 구현하는 방법을 알고싶습니다.





    델파이에서 딜레이를 주는 함수는 sleep(딜레이할 시간); 참고로 1000 은 1초

    이것은 딜레이를 시키기는 하는데 통신상에서 사용할 수 있을지는 잘 모르겠습니다. 좀 주저되는군요.. 아무튼 제가 아는 딜레이시키는 함수입니다.

    그리고 전에 어떤 분께서 sleep함수말고 delay함수를 만들어서 올리신적이 있었던걸로 기억합니다. 이전에 Q&A를 찾으시면 있을겁니다.