|
비엠피 파일을 이미지 콤포넌트에 올렸거던여.....
근데 마우스로 라인을 그릴려고 하는데 마구 껌뻑거려여..
왜져?
그전 버전에서는 이런현상이 없었는데.
똑같이 해줬거던여...
버그인가여?
아시는분 계시면 답변좀 부탁드립니다.
아래 소스임다.
////////// 헤더부분임다.................
#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;
}
}
그럼 즐프하세여..
|