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
[43357] Re:Image 움직이는 방법좀 알려주세요.
[] 1125 읽음    2006-01-18 14:06
서정택 님이 쓰신 글 :
: 안녕하세요 BCB 6 초보 서정택 입니다.
: 지금 하나의 Panel에 Image 하나를 띄어놓고 그 이미지를 초마다 하나씩 위로 올릴려고 하는데
: Image가 하나만 올라가고 그 뒤로는 안올라 가네요
: 어떻게하면 Image 하나로 여러번 사용해서 올릴수 있을까요?
: 올라가는 시간은 3초 입니다.
: 답변 부탁드립니다.

이미지 스크롤을 말씀하시는 것으로 보입니다.

아래 소스를 참고하세요.
깜박임 문제도 해결해주어야 합니다.

class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TTimer *Timer1;
        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
        void __fastcall FormPaint(TObject *Sender);
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
void __fastcall WMEraseBkgnd(TWMEraseBkgnd& msg);
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
        BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_ERASEBKGND,TWMEraseBkgnd,WMEraseBkgnd)
        END_MESSAGE_MAP(TForm);
};



TForm1 *Form1;

Graphics::TBitmap *Bitmap1;
int StartY=0;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}

//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Bitmap1 = new Graphics::TBitmap;
Bitmap1->LoadFromFile("testbitmap.bmp");
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete Bitmap1;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormPaint(TObject *Sender)
{
BitBlt(
  Canvas->Handle,
  0,0,
  Bitmap1->Width, Bitmap1->Height-StartY,
  Bitmap1->Canvas->Handle,
  0,StartY,
  SRCCOPY
);
Canvas->FillRect(Rect(0,Bitmap1->Height-StartY,Width,Height));
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  Invalidate();
  if(StartY+10<Bitmap1->Height) StartY += 10;
  else StartY = 0;
}

//---------------------------------------------------------------------------
void __fastcall TForm1::WMEraseBkgnd(TWMEraseBkgnd& msg)
{
  msg.Result = 1;
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
43344 Image 움직이는 방법좀 알려주세요. 서정택 813 2006/01/17
43357     Re:Image 움직이는 방법좀 알려주세요. 1125 2006/01/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.