|
무슨 말씀인지 정확하게 모르겠지만
ScrollBar1Change 함수에서 작업중인데
또 event가 발생해서 ScrollBar1Change를 호출하게되는경우를 말씀하시는것 같은데...
다른 윈도우 메세지 처리하는 코드
Application->ProcessMessages();
가 꼭 들어가야 된다면
그냥 flag 하나 둬서 처리하시면 될것 같습니다.
bool bOnProc=false;
void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{
if(bOnProc)return ;
try
{
bOnProc=true;
for(int i=0; i<100; i++) {
Application->ProcessMessages();
Sleep(1);
}
__finally
{
bOnProc=false;
}
}
정확히 무슨내용인지는 잘모르겠지만
일단 이렇게 하면 될것 같습니다.
해리 님이 쓰신 글 :
: 안녕하세요?
:
: ScrollBar의 OnScroll event 나 OnChange event 에서
: 사정에 의해 루프를 돌게 되고 여기서 Application->ProcessMessages() 를 사용합니다.
: 그런데,
: 문제는 event 가 끝났는데도 이를 인식하지 못하고, 계속해서 event 가 발생합니다.
: 아마도 event 처리가 다 끝나기 전에 다시 발생해서 생기는 문제인 것 같은데,
: 이 기간동안에 다시 발생하는 event 는 무시해도 좋습니다.
: 좋은 해결 방법이 없을까요?
:
: 감사합니다....
:
:
: void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
: {
: ............................
:
: for(int i=0; i<100; i++) {
: Application->ProcessMessages();
: Sleep(1);
: }
: }
|