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
[21268] 이미지 위에 마우스로 드래그할 때 깜빡거리는데.... 왜죠? - 소스 포함했슴다.
열심이 [] 848 읽음    2002-09-06 11:08
비엠피 파일을 이미지 콤포넌트에 올렸거던여.....
근데 마우스로 라인을 그릴려고 하는데 마구 껌뻑거려여..
왜져?
그전 버전에서는 이런현상이 없었는데.
똑같이 해줬거던여...
버그인가여?
아시는분 계시면 답변좀 부탁드립니다.


아래 소스임다.

////////// 헤더부분임다.................

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <jpeg.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
  TPanel *Panel1;
  TImage *Image1;
  void __fastcall FormShow(TObject *Sender);
  void __fastcall Image1MouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Image1MouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
private:    // User declarations
TPoint FirstPoint;   // 최초 위치 백업
TPoint LastPoint;    // 현재 위치 백업
bool Dragging;         // 드래그 중 판별


public:        // User declarations
  __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

/////////////// 요기 까지 헤더임다.

////// 아래부분은 소스임다.

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)
{
     Image1->Canvas->Pen->Color = clRed;
     Image1->Canvas->Pen->Width = 2;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
     if (Shift.Contains(ssLeft))  {
         FirstPoint.x = X;
         FirstPoint.y = Y;
         LastPoint.x = X;
         LastPoint.y = Y;
         Image1->Canvas->MoveTo(X, Y);
         Dragging = true;
     }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
     if (Dragging)
     {
           Image1->Canvas->Pen->Mode = pmCopy;
           Image1->Canvas->Rectangle(FirstPoint.x,FirstPoint.y,X,Y);
     }
     Dragging = false;


}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
    // 드래그 중이면 마우스 가는데로 그림을 그린다.
     if (Dragging && Shift.Contains(ssLeft)) {
         Image1->Canvas->Pen->Mode = pmNotXor;
         Image1->Canvas->Brush->Style = bsClear;
         Image1->Canvas->Rectangle(FirstPoint.x,FirstPoint.y,LastPoint.x,LastPoint.y);

         Image1->Canvas->Rectangle(FirstPoint.x,FirstPoint.y,X,Y);

         LastPoint.x = X;
         LastPoint.y = Y;
     }
}


그럼 즐프하세여..

+ -

관련 글 리스트
21268 이미지 위에 마우스로 드래그할 때 깜빡거리는데.... 왜죠? - 소스 포함했슴다. 열심이 848 2002/09/06
30532     Re:이미지 위에 마우스로 드래그할 때 깜빡거리는데.... 왜죠? - 소스 포함했슴다. Foreversolo 920 2002/09/06
21270     Re:이미지 위에 마우스가 움직일때 깜빡거리는데.... 왜죠? 초짜 809 2002/09/06
21272         Re:Re:이미지 위에 마우스가 움직일때 깜빡거리는데.... 왜죠? 열심이 883 2002/09/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.