Q&A

  • text-->paradox시 게이지 progress 가 작동불능
작업은 이상없이 되는데

화면에 디스플레이시 게이지가 보이지가 않습니다..

어찌하면 될까요!!!

1  COMMENTS
  • Profile
    김영길 2000.12.20 04:40
    그 이유는 변환중에 다른 메시지를 처리할 수 없기 때문입니다.

    그러니까 for 루프에서



    for i:=1 to 10000 do

    progressbar1.position:=i;



    라고 한다면 이 루프가 돌아가는 동안에

    프로그레스바는 변하지 않을 겁니다..

    서로 같은 쓰레드 상에서 for 루프가 완전히 점유하기 때문이죠.



    그런데 아래처럼 하면 루프가 돌아가도 프로그레스바는 변합니다.

    for i:=1 to 10000 do

    begin

    progressbar1.position:=i;

    application.processMessages;

    end;



    메시지를 처리할 수 있기때문에 프로그레스바의 Draw 메시지도 처리하게

    되고 해서 프로그레스 바가 변합니다.



    텍스트를 파라독스로 변환할 때에도 위의 for 루프처럼 돌아가는데

    다른 메시지를 처리하지 못하기 때문에 아마 그렇게 안그려질 겁니다.

    그래서 한가지 방법이 있다면 새로운 TThread 를 하나 생성하고

    거기에서 파라독스로 변하게 하면서 어느 폼에 있는 프로그레스바의

    위치를 맞춰준다면 될것도 같습니다. 서로 다른 쓰레드면 그게 가능하죠.

    아니면 파라독스로 변환하는 것을 직접 했다면

    파라독스 필드로 하나씩 레코드를 추가할 때마다

    Application.ProcessMessages 를 호출해 주면 됩니다.





    paradox wrote:

    > 작업은 이상없이 되는데

    > 화면에 디스플레이시 게이지가 보이지가 않습니다..

    > 어찌하면 될까요!!!