|
Panel에는 TCanvas가 없습니다....그래서...Panel의 핸들로 DC핸들을 얻습니다...
TCanvas *PCanvas=new TCanvas();
PCanvas->Handle=GetDC(Panel1->Handle);
PCanvas->LineTo(100,100); //그릴때
ReleaseDC(Panel1->Handle,PCanvas->Handle);
delete PCanvas;
요렇게 해주면...선 그리는것이 되겠구요..
TCanvas에 보면 Pen속성에따라 선 색이나 기타 등등을 지정할수 있구요...
TImage의 이동은 TImage의 MouseDown, MouseMove, MouseUp이벤트를 사용해서 이동시키세요...
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
push=true;
posX=X;
posY=Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(push)
{
Image1->Left=Image1->Left+X-posX;
Image1->Top=Image1->Top+Y-posY;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
push=false;
}
Down일때 mouse눌린 위치 알고
다른 좋은 방법이 있을텐데...전 항상 이렇게만 해봐서....
색을 넣는다는건 그림을 조작한다는 건가요?
정기원 님이 쓰신 글 :
: 이곳에 방문하시는 모든분들 안녕하신지요?
: 몇일전에 소켓관련 질문 올렸는데 답변 주셔서 정말 감사하구요.
: 또 궁금하고 막히는것이 있어서요
: 질문의 요지는 3가지인데 다음과 같습니다.
: AForm에 Pannel Component를 Client속성으로 올리고
: Pannel위 A지점에 Image Component를 사용하여 A그림을 넣고,
: Pannel의 다른 지점에 B그림을 넣었는데 A지점의 그림과 B지점의 그림을
: 선으로 연결하여 이벤트에 따라 선의 색상을 달리 표현하고픈데
: 어떻게 해야 하나요? 즉 선을 그릴려면 무슨 Component를 사용해야 하며
: 선의 색상을 주려면 어떤 함수나 이벤트를 사용해야 하는지요?
: 그리고 A그림을 다른 지점 예를 들어 C지점으로 옮길려면 Image Component의
: 어떤 이벤트를 사용해야 하나요? 혹시 OnDragDrop을 사용해야 하는지요?
: 마지막으로 A 그림에도 어떤 이벤트에 따라 색깔을 넣고 싶은데 어떻게 해야 하는지요?
: 미리 답변에 감사 드리며, 부디 많은 조언 부탁드립니다.
: 그럼 이곳에 방문하시는 모든분들 행운이 있으시길.
:
|