|
Tr = (TRect *) all->Items[all->Count-1];
Tracker(*Tr); //tracker를 그린다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TRect tr = ((obj*)all->Items[all->Count-1])->r;
Tracker(tr); //tracker를 그린다.
위와같이 하시면 일단 될것 같구요...
Tracker 함수는 obj 의 멤버함수로 만들어 쓰시는게 좋을것 같습니다.
fighting ^^
최수정 님이 쓰신 글 :
: 태윤님 덕분에 개념이 정리 되서리.. 참 고맙습니다..^^
:
: 자꾸 이상한 값이 나와서염.. --> 트래커 그릴라고 하고 있거던여
:
: 도형을 선택하면..
:
: //-------- 좌표값을 저장함. ------------
: // all->Add(new box(TRect(100,100,200,300),"box1"));
:
: switch (ShapeNum)
: {
: case 0: //선택
:
: break;
: case 1: //사각형
: all->Add(new box(TRect(Point1.x, Point1.y,X,Y)));
: break;
: case 2: //둥근 사각형
: all->Add(new Round(TRect(Point1.x, Point1.y,X,Y)));
: break;
: case 3: //원
: all->Add(new cirlc(TRect(Point1.x, Point1.y,X,Y)));
: break;
: };
: //-----------------------------------------
:
: //--------- 도형을 선택함. ----------------
: 1. 도형을 선택함
: 2. 선택된 도형이 맨앞으로 옴
: all->Move(cur_index, all->Count-1); // 찾은 객체를 맨 마지막으로 옮긴다.
: draw_all(); //다시 그린다.
: Tr = (TRect *) all->Items[all->Count-1];
: Tracker(*Tr); //tracker를 그린다.
:
: //---------- 트래커를 그림 ---------------
: void __fastcall TForm1::Tracker(TRect r)
: r={left:4211976 top:233 right:93 buttom:371}
: --->> 들어가는 값이 넘 크게 들어가염(왜 이렇게 되는지)
: 제가 뭘 잘못 했나여..?
: {
: DrawShapePoint(r.left-3 ,r.top-3 ,r.left+3 ,r.top+3);
: DrawShapePoint(r.right-3 ,r.top-3 ,r.right+3 ,r.top+3);
: DrawShapePoint(r.left-3 ,r.bottom-3 ,r.left+3 ,r.bottom+3);
: DrawShapePoint(r.right-3 ,r.bottom-3 ,r.right+3 ,r.bottom+3);
:
: DrawShapePoint(r.left-3 ,r.top + ((r.bottom - r.top)/2)-3
: ,r.left+3 ,r.top + ((r.bottom - r.top)/2)+3);
:
: DrawShapePoint(r.right-3 ,r.top + ((r.bottom - r.top)/2)-3
: ,r.right+3 ,r.top + ((r.bottom - r.top)/2)+3);
:
: DrawShapePoint(r.left + ((r.right - r.left)/2)-3, r.top-3
: ,r.left + ((r.right - r.left)/2)+3, r.top +3);
:
: DrawShapePoint(r.left + ((r.right - r.left)/2)-3, r.bottom-3
: ,r.left + ((r.right - r.left)/2)+3, r.bottom +3);
: }
:
: void __fastcall TForm1::DrawShapePoint(int w, int x, int y, int z)
: {
: Form1->Canvas->Brush->Color = clBlack;
: Form1->Canvas->Brush->Style = bsSolid;
: Form1->Canvas->Pen->Mode = pmNotXor;
: Form1->Canvas->Pen->Style = psSolid;
: Form1->Canvas->FillRect(Rect(w,x,y,z));
: }
: //----------------------------------------------------------------------------
|