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
[6959] Re:[질문] TImage의 Canvas에서...
박지훈.임프 [cbuilder] 2257 읽음    2001-04-23 20:45
임펠리테리입니다.

이미지에 점찍는 동작이 너무 바빠서 그 동안에는 페인트 메시지를 처리해주지 못해서 그렇습니다.
루프 안에 Application->ProcessMessages();를 추가하시면 됩니다.
    for ( int x = 0; x < 640; x++ )
        for ( int y = 0; y < 480; y++ )
        {
            Image->Canvas->Pixels[x][y] = clRed;
            Application->ProcessMessages();
        }

그럼 참고하시길...


오상현 님이 쓰신 글 :
: TImage *Image; 
:
: void __fastcall TFormMain::Timer1Timer(TObject *Sender)
: {
: static int x = 0, y = 0;
:
:     Image->Canvas->Pixels[x][y] = clRed;   
:     x++;
:     if ( x > 640 )
:     {
:         x = 0;
:         y ++;
:     }
:
:     if ( y > 480 )
:     {
:         x = y = 0;
:         Timer1->Enabled = false;
:     }
: }
: 요런식으로 처리하면 640*480범위만큼 점이 하나씩 찍히는게 보입니다. 
: 근데 ....
: //---------------------------------------------------------------------------
: void __fastcall TFormMain::Button1Click(TObject *Sender)
: {
:     for ( int x = 0; x < 640; x++ )
:         for ( int y = 0; y < 480; y++ )
:             Image->Canvas->Pixels[x][y] = clRed;   
: }
:
: 요런 방식으로 처리하면 점이 찍히는 과정이 안보이구 찍힌 결과
: 가 한번에 나오거든여.  물론 중간에 Update나 Refresh()등을 사용해도
: 마찬가지였습니다.
:
: 제가 원하는것은
: Button1Click에 있는 구조로 코딩한뒤  
: Timer에서 했던 결과처럼 점이 하나씩 찍히는것을 보여주길
: 바라는 것입니다.
:
: c++ Builder의 고수님들의 조언 바랍니다~
: 그럼 즐거운 하루되세엽.
:

+ -

관련 글 리스트
6949 [질문] TImage의 Canvas에서... 오상현 2208 2001/04/23
6959     Re:[질문] TImage의 Canvas에서... 박지훈.임프 2257 2001/04/23
6961         답변 감사합니다~ 오상현 2114 2001/04/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.