C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[25930] Re:자답 하지만 문제는 남아 있군요.
강영준 [k700k] 825 읽음    2003-06-13 17:36
강영준 님이 쓰신 글 :
: 페인트박스에 그림을 쓰레드에서 그립니다.. 계속해서 그리는데요..
:
: 다른창을 박스위에 올렸다 내렸다 하면 그 부분이 지워 져 버리는데.
:
: repaint 할려면 어떻게 해야 하나요?...
:
: 음. 이래 저래 책도 찾아 보고 해봤는데..
:
: 해결책을 찾지를 못했네요..

일단 페인트박스에서 보여 주고자 하는것은 윈도우 부팅화면에 아래쪽에 바 지나가는거처럼

Gradiant기능을 구현 할려고 하는데요.. 쓰래드 Execute 부분에

void __fastcall FlowBarThread::Execute()
{
        //---- Place thread code here ----

  int i = 0;
  Form1->chk=true;
  float speed=0.0;

while(!Terminated) {
    if(Form1->chk == true) {
     Form1->PaintBox1->Canvas->Lock();
     Form1->PaintBox1->Canvas->MoveTo(i,0);
     Form1->PaintBox1->Canvas->Pen->Color = RGB(i,0,0);
     Form1->PaintBox1->Canvas->Pen->Width = 5;
     Form1->PaintBox1->Canvas->LineTo(i,10);
     Form1->PaintBox1->Canvas->Unlock();
     Sleep(10);
     i++;
     speed = i * 0.01;
     i += (int) speed;
     if(i >= 255) Form1->chk = false,i = 0;
   }

    if(Form1->chk == false){
     Form1->PaintBox1->Canvas->Lock();
     Form1->PaintBox1->Canvas->MoveTo(i,0);
     Form1->PaintBox1->Canvas->Pen->Color =RGB(255-i,0,0);
     Form1->PaintBox1->Canvas->Pen->Width = 5;
     Form1->PaintBox1->Canvas->LineTo(i,10);
     Form1->PaintBox1->Canvas->Unlock();
     Sleep(10);
     i++;
     speed = i * 0.01;
     i += (int) speed;
     if(i >= 255) Form1->chk = true, i = 0;
   }

  }
}

위와 같이 구현 했는데.. 쪼매 조잡 합니다.. 뭔가 흘러 가는 느낌은 나드군요.. 나중에 업해야 될 부분이구요..

그리고 PaintBox1의 OnPaint 에서 .. 가려졌다 다시 살아 나는넘을 표현해줘야 되는데.

여러가지 방법을 동원해봤지만.. 쓰래드에서 계속 움직이기 깨문에..

다른 창으로 PaintBox1 부분을 긁어 버리면 부자연스럽드라구요..

좋은 방법 있으면 .. 알려 주세요.. 부탁 드립니다..


+ -

관련 글 리스트
25921 [질문] TPaintBox의 그림들을 지워지지 않게 할려면 어떻게 해야 하나요? 강영준 697 2003/06/13
25931     [답변] TPaintBox 대신 TImage를 쓰세요.... 정성훈.해미 821 2003/06/13
32592         Re:[답변] TPaintBox 대신 TImage를 쓰세요.... 강영준 764 2003/06/16
25930     Re:자답 하지만 문제는 남아 있군요. 강영준 825 2003/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.