|
if 코드는 쓰레드 생성직후에 한번 수행되고 땡이네요.
매번 스크롤 업데이트 시마다 수행할 방법을 생각해보세요.
랜덤값은...
randomize(); => srand(time(NULL));
random(300); => rand() % 300;
으로 바꿔보세요...
진상양군 님이 쓰신 글 :
: ---------쓰레드 부분입니다------------------
: void __fastcall TScrollThread1::Execute()
: {
: while(!Terminated){
: Synchronize(ScrollStart);
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TScrollThread1::ScrollStart(void)
: {
: randomize();
: //RandSeed = rand();
: Form1->ScrollBar1->Position = random(300);
: }
: ---------------cpp부분입니다--------------------
:
: ScrollThread1 = new TScrollThread1(false);
:
: if(ScrollBar1->Position >= 200)
: {
: ListBox1->Items->Add("SC1");
: ScrollThread1->Terminate();
: ScrollThread1->WaitFor();
: delete ScrollThread1;
: }
: ----------------------------------------------------
: 랜덤으로 스크롤을 이동시키면서 맥스값보다 커지거나 같아지면 멈추고 리스트박스에 출력을 하고 스레드를 소멸시키려고하는데요
:
: 스레드가 멈추지 않고 계속해서 작동을 하고 리스트박스에 출력도 되지가 않네요!!
:
: 무엇이 문제인지 알려주시면 감사하겠습니다
:
: 그리고 랜덤할수를 사용했는데 계속해서 똑같은 자리만 왜 멤돌까요??
: 그리고 스레드를 4개돌려서 스크롤바 4개를 똑같은 방식으로 돌리려하는데 스크롤바는 움직이는데 폼에는 접근할수가 없네요
|