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
[64550] Re:Re:답변감사합니다 ~~~!!
김현우 [gutgusdn] 1311 읽음    2011-06-09 14:17
어떤 뜻인지 알겠습니다~
엉뚱한곳에서 해결책을 찾으려 했군요 ㅠㅠ;;
화면은 하나니 수치상의 데이터값으로 해당 도형을 없애거나 생성하는 것이군요.
답변 감사합니다~~^^

송신영 님이 쓰신 글 :
: 그리거나 지우거나 할 경우 최종적으로 출력되는 부분은 화면 하나라는 사실입니다.
: 그래서 이미 화면에 출력된 여러개의 그림은 하나의 그림이라고 볼수 있습니다.
: 이것을 각각 분리하는 것은 불가능하죠
: 그래서 그림판이나 그런 그리기 툴에서는 그리는 부분은 한곳에서 처리하고
: 그리고자하는 내용을 수치상의 데이터로만 관리해야합니다.
: 내가 사각형을 그린다고 치면 그려지는 사각형의 데이터(좌표값, 색상, 굵기등..)만 설정하고 유지한상태로
: 그려지는 부분에 데이터가 준비되었으니 그리라는 명령만해주면 그리는 쪽에서는
: 데이터를 기준으로 그리기만하면됩니다.
: 그려지는 데이터가 여러개이면 해당 데이터도 여러개로 관리해야합니다.
: 그러면 나중에 내가 그린 특정한 부분만 다시 지우고자 할경우
: 해당 데이터만 삭제시키고 다시 그리면 삭제된 데이터 부분만 안그려 지겠죠
: 그림판등에서 그리기 취소등의 동작은 이런 식으로 이루어지는 것입니다.
: 즉, 최종 출력 물인 DC나 Canvas를 가지고 어떻게 하려고 하지 말고
: 따로 그려지는 수치상의 데이터를 관리해야한다는 것입니다.
:
: 김현우 님이 쓰신 글 :
: : 안녕하세요.
: : TCanvas 관련해서 질문 드립니다
: : 제가 아래 와 같이 버튼(정사각형)으로 정사각형을 Panel1 에 만들었는데요..
: : 만든 정사각형외각을 드래그해서 모양도 바꾸는 것까지는 했습니다.
: :
: :  그런데 다른 버튼(다각형)을 하나 새로 만들어서 Panel1에 또 다른 도형을 추가 하려고 합니다.
: :
: : 그러면 Panel1 에 정사각형과 또다른 도형이 그려지는데요..
: : 저는 그 두개의 도형이 서로다른 Canvas로 개별적으로 지우거나 모양을 변형 시키고 싶은데요..
: : 제가 (TCanvas *Canvas = new TCanvas;)  TCanvas를 할당 하였는데
: : 그 그림을 지우려고 하면 하면 두개 도형이 같이 없어지잖아요...
: : 개별적으로 그려지거나 지우거나 할수 없나요
: : Panel1 안에 서로 다른 여러 Canvas를 그려지게 하고 싶습니다.
: : 배열처럼 여러개로 할 수 는 없는지 방법을 찾고 있는데 .. 아직 못찾고 있습니다. ㅠㅠ
: : 질문의 요지를 최대한 정리하려고 했는데요 이해가 되시는분 부탁드립니다. ㅠㅠ.;;
: :
: :  void __fastcall TForm1::RECClick(TObject *Sender)
: : {      
: :         TCanvas *Canvas = new TCanvas;
: :         HDC hdc;
: :         hdc = NULL;
: :
: :         hdc = GetDC(Panel1->Handle);
: :         Canvas -> Handle = hdc;         
: :         Canvas -> Pen -> Width = 1;
: :         Canvas -> Pen -> Color = clRed;
: :         Canvas -> Pen -> Style = psSolid;
: :         Canvas -> Brush -> Style = bsClear;
: :
: :         Canvas -> Rectangle(X1,Y1,X2,Y2);
: :         ReleaseDC(Handle,hdc);
: :         delete Canvas;
: :         GetRec = true;
: : }
: : void __fastcall TForm1::POLYClick(TObject *Sender)
: : {
: :         TCanvas *Canvas = new TCanvas;
: :         //TCanvas canvas[5];
: :         HDC hdc;
: :         hdc = NULL;
: :
: :         hdc = GetDC(Panel1->Handle);
: :         Canvas -> Handle = hdc;             Canvas -> Pen -> Width = 1;
: :         Canvas -> Pen -> Color = clGreen;
: :         Canvas -> Pen -> Style = psSolid;
: :         Canvas -> Brush -> Style = bsClear;
: :
: :         TPoint points[9];
: :         points[0] = Point(px0,py0);
: :         points[1] = Point(px1,py1);
: :         points[2] = Point(px2,py2);
: :         points[3] = Point(px3,py3);
: :         points[4] = Point(px4,py4);
: :         points[5] = Point(px5,py5);
: :         points[6] = Point(px6,py6);
: :         points[7] = Point(px7,py7);
: :         points[8] = Point(px8,py8);
: :
: :         pCanvas->Polygon(points,PolySize);
: :         ReleaseDC(Handle,hdc);//
: :         delete Canvas;
: :         GetPoly = true;
: : }

+ -

관련 글 리스트
64545 TCanvas 관련 질문 입니다. 답변 부탁드립니다.. 김현우 1274 2011/06/09
64547     Re:TCanvas 관련 질문 입니다. 답변 부탁드립니다.. 송신영 1783 2011/06/09
64550         Re:Re:답변감사합니다 ~~~!! 김현우 1311 2011/06/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.