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
[5201] Re:canvas위의 그래프의 data 포인터를 마우스로 옮긴 후 옮겨진 데이타 저장
박지훈.임프 [cbuilder] 2915 읽음    2001-02-05 23:32
왕골 님이 쓰신 글 :
: 안녕하세요. 빌더 초보입니다.
:
: 제가 질문하고자 하는 것은 폼위에 canvas로 그래프(가로축:시간, 세로축:하중(kg) )를 그리고 난 후 그 그래프를 마우스를 이용하여 세로축의 위치를 바꾼(즉 가로축 데이타는 변함이 없고 세로축만 가변) 다음 바꾸어진 데이타를 저장할려고 하는데 전혀 아이디어가 없습니다.
:
: 고수님들의 조언 부탁드립니다.
:
: 그럼.....



임펠리테리입니다.

아주 간단한 방법은 없겠네요. 먼저, 혹시 지금 폼의 캔버스에 직접 그리고 계시다면 페인트박스로 바꾸시길 권합니다. 폼의 캔바스를 그대로 사용하면 드래그 처리가 다시 일정 영역으로 제한해야 할테니 더 복잡해질 거구요.

다음은 간단히 작성해본 예제인데.. 원하시는 내용과 똑같지는 않습니다. 하지만 응용해보시면 될 겁니다. 빈 폼에 페인트박스 하나를 올리고, OnPaint와 OnDragOver이벤트를 다음과 같이 작성합니다. 페인트박스의 드래그모드는 오토매틱이어야 합니다.

int OrgX = 0, OrgY = 0;
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
    PaintBox1->Canvas->MoveTo(OrgX + 30, OrgY + 30);
    PaintBox1->Canvas->LineTo(OrgX + 120, OrgY + 60);
}

void __fastcall TForm1::PaintBox1DragOver(TObject *Sender, TObject *Source,
      int X, int Y, TDragState State, bool &Accept)
{
    OrgX = X, OrgY = Y;
    PaintBox1->Invalidate();
    StatusBar1->SimpleText = AnsiString(X) + " " + Y;
}

위의 예제에서는 페인트박스에 그려진 라인이 커서를 따라다닙니다.
그럼 참고하시길...

+ -

관련 글 리스트
5191 canvas위의 그래프의 data 포인터를 마우스로 옮긴 후 옮겨진 데이타 저장 왕골 2676 2001/02/05
5201     Re:canvas위의 그래프의 data 포인터를 마우스로 옮긴 후 옮겨진 데이타 저장 박지훈.임프 2915 2001/02/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.