Q&A

  • '응답없음'문제 좀 해결해 주세요..^^
델파이로 어플리케이션을 하나 만들엇는데...

연산하는 양이 괭장히 큽니다.. 어떤경우는 몇분에서 몇일이 걸릴수도 있는 작업을 하는 프로그램 입니다..

어떠한 데이타를 원하는 갯수만큼 얻어내야 하므로 양이 많으면 당연히 오래 걸리겠죠.

그런데..

이넘이 실행만 하면 "응답없음"이 나옵니다.

프로그램이 완전히 돌고 나면 데이타를 모두 생성하게 되면 정상으로 돌아옵니다.



여기 Q/A를 뒤져보니 해결책을 찾지 못하겟네요...



그냥 이넘이 완전히 돌아갈때 까지 기다리면 정상적으로 생성을 하니깐 문제는 안되는데. 생성하면서 현제 상태를 뿌리거나.. 어떤한상태를 변화되는것을 프로그램에 표시하려하니 안되더군요.... ProgressBar바를 하나 만들어 돌리는데.. 이넘은 그래도 진행이 됩니다.. 그런데.. Label, Edit등 다른 컴퍼넌트들은 응답이 없네요..ㅠㅠ



방법이 없을까요?

혹시 해결방법이 있으면 데이타를 생성하는데 속도를 저하시키는지요?



부탁드립니다.^^;

추석연휴는 잘보내셨는지요.. 다들...^^

저는 서울서 안동까지 가는데..13시간..
4  COMMENTS
  • Profile
    최용일 2001.10.04 19:47
    안녕하세요. 최용일입니다.



    연산하는 중간에 아래 코드를 추가해 보세요...



    Application.ProcessMessages;



    ^^ 항상 즐코하세요...



    이상헌 wrote:

    > 델파이로 어플리케이션을 하나 만들엇는데...

    > 연산하는 양이 괭장히 큽니다.. 어떤경우는 몇분에서 몇일이 걸릴수도 있는 작업을 하는 프로그램 입니다..

    > 어떠한 데이타를 원하는 갯수만큼 얻어내야 하므로 양이 많으면 당연히 오래 걸리겠죠.

    > 그런데..

    > 이넘이 실행만 하면 "응답없음"이 나옵니다.

    > 프로그램이 완전히 돌고 나면 데이타를 모두 생성하게 되면 정상으로 돌아옵니다.

    >

    > 여기 Q/A를 뒤져보니 해결책을 찾지 못하겟네요...

    >

    > 그냥 이넘이 완전히 돌아갈때 까지 기다리면 정상적으로 생성을 하니깐 문제는 안되는데. 생성하면서 현제 상태를 뿌리거나.. 어떤한상태를 변화되는것을 프로그램에 표시하려하니 안되더군요.... ProgressBar바를 하나 만들어 돌리는데.. 이넘은 그래도 진행이 됩니다.. 그런데.. Label, Edit등 다른 컴퍼넌트들은 응답이 없네요..ㅠㅠ

    >

    > 방법이 없을까요?

    > 혹시 해결방법이 있으면 데이타를 생성하는데 속도를 저하시키는지요?

    >

    > 부탁드립니다.^^;

    > 추석연휴는 잘보내셨는지요.. 다들...^^

    > 저는 서울서 안동까지 가는데..13시간..
  • Profile
    이상헌 2001.10.04 21:32
    답변 감사합니다..

    잘돌아 가네요.. 인터럽트를 걸어서 제어권을 넘겨주는거같던데.. 일단 인터럽트가 걸리면 생성은 중단되더군요.. 마우스를 누르고 있는다던지... 그후 놓아두면 다시 잘돌아가고.. ^^; 헤헤.. 정말 감솨합니다...

    HandleMessage라는 것도 있던데.. 이넘은 정확하게 어떻게 동작을 하나요..테스트를 해봤는데.. 마우스를 어플르케이션 위에서 마우스를 움직을때메만 생성을 하더군요.헤헤.



    상태바에 %나오게 할수있나요..^^;

    아~ 그리고... 생성중에 프로그램 종료가 안되네요..TBitBtn으로 Close시키는데..

    생성중에는 종료가 안되네요..^^; 좀 갈켜 주세요..



    에구.. 제가 책도 없이 Help File로만 만드느라 디기 힘드네요..

    책 사라고요.. ㅠㅠ에구.. 하나 있기는 한데.. 영진 Bible.. 에구.. 너무 무거워서...

    ㅋㅋㅋㅋ 어쨋든 문제를 해결 하니 기분이 좋네요...

    감솨 합니다...

    님두 즐코하세요..^^;





    최용일 wrote:

    > 안녕하세요. 최용일입니다.

    >

    > 연산하는 중간에 아래 코드를 추가해 보세요...

    >

    > Application.ProcessMessages;

    >

    > ^^ 항상 즐코하세요...

    >

    > 이상헌 wrote:

    > > 델파이로 어플리케이션을 하나 만들엇는데...

    > > 연산하는 양이 괭장히 큽니다.. 어떤경우는 몇분에서 몇일이 걸릴수도 있는 작업을 하는 프로그램 입니다..

    > > 어떠한 데이타를 원하는 갯수만큼 얻어내야 하므로 양이 많으면 당연히 오래 걸리겠죠.

    > > 그런데..

    > > 이넘이 실행만 하면 "응답없음"이 나옵니다.

    > > 프로그램이 완전히 돌고 나면 데이타를 모두 생성하게 되면 정상으로 돌아옵니다.

    > >

    > > 여기 Q/A를 뒤져보니 해결책을 찾지 못하겟네요...

    > >

    > > 그냥 이넘이 완전히 돌아갈때 까지 기다리면 정상적으로 생성을 하니깐 문제는 안되는데. 생성하면서 현제 상태를 뿌리거나.. 어떤한상태를 변화되는것을 프로그램에 표시하려하니 안되더군요.... ProgressBar바를 하나 만들어 돌리는데.. 이넘은 그래도 진행이 됩니다.. 그런데.. Label, Edit등 다른 컴퍼넌트들은 응답이 없네요..ㅠㅠ

    > >

    > > 방법이 없을까요?

    > > 혹시 해결방법이 있으면 데이타를 생성하는데 속도를 저하시키는지요?

    > >

    > > 부탁드립니다.^^;

    > > 추석연휴는 잘보내셨는지요.. 다들...^^

    > > 저는 서울서 안동까지 가는데..13시간..
  • Profile
    코스엑스 2001.10.04 22:30


    >

    > 상태바에 %나오게 할수있나요..^^;

    > 아~ 그리고... 생성중에 프로그램 종료가 안되네요..TBitBtn으로 Close시키는데..

    > 생성중에는 종료가 안되네요..^^; 좀 갈켜 주세요..

    >



    멀하시던간에 루프가 돌겠죠 ?

    어떤버튼을 눌렀을때 종료메세지를 띄우고 싶으면..

    TBitBtn Click 이벤트에다

    AbortAction := True (AbortAction 은 그냥 private 에다 Boolean 으로 정해주시구여)





    AbortAction := False;

    Loop Routine Begin

    Application.ProcessMessgaes;

    if AbortAction then

    if MessageDlg('취소 오케이 ?',mtWarning,[mbYes,mbNo],0) = mrYes then break

    else AbortAction := False;

    Loop Routine End.



  • Profile
    초보 2001.10.05 02:47




    멀하시던간에 루프가 돌겠죠 ?

    어떤버튼을 눌렀을때 종료메세지를 띄우고 싶으면..

    TBitBtn Click 이벤트에다

    AbortAction := True (AbortAction 은 그냥 private 에다 Boolean 으로 정해주시구여)





    AbortAction := False;

    Loop Routine Begin

    Application.ProcessMessgaes;

    if AbortAction then

    if MessageDlg('취소 오케이 ?',mtWarning,[mbYes,mbNo],0) = mrYes then break

    else AbortAction := False;

    Loop Routine End.

    ---------------------------------------

    오라클서버에서 디비를 읽어서 루프를 돌리는 거라면

    도는동안 커서가 SQL모래시계로 바귑니다. 그러면 그 모래시계커서로는 어떤 버튼도 누를 수가

    없던데... 그럴때는 어떻게 해야 하나요?

    부탁 드립니다. 감사합니다.