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
[49120] Re:Re:Re:[講초보]패널 2개를 연결하려고 합니다.
나쁜토끼 [yeotaehan] 1043 읽음    2007-04-30 09:02
1-vert.jpg 60.9KB Panel 박스만드는것까진 했습니다. 선 연결하는것이 가장중요한데... 부탁드립니다.
김배근님// 감사합니다. 하지만 custmPal.bpk파일은 없나요??
exe 파일과 소스파일만 있어서.. 제가 제대로 작동을 못시켜보고 있습니다.
exe파일을 실행하면 [지원하지 않는 작동이 시도되었음]이라고 나옵니다.

장성호님// 감사합니다.
제가 C언어를 cmd 화면서 실행하는 것만 조금하다가 C++Bulder를 사용하다보니...
이해가 많이 안됩니다. ㅜ_ㅜ

이래저래
박스생성까지는 했습니다.

원하는 것을 조금 더 상세히?? 그림으로 올려봅니다.

혹시 참조할 소스를 아신다던지, 간단히 만들어주시면 처음 배우는 제게
많은 도움이 될것같습니다.
만드는것보다 분석하고, 편집해보면서 배우는게 더 많은 것 같습니다.
도움주시는 분들 너무너무 감사합니다.


아래는 박스만드는 코드를 올려봅니다.


//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    pList = new TList();
    k=0;
}

//---------------------------------------------------------------------------


void __fastcall TForm1::PanelDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    ReleaseCapture();
    SendMessage(((TPanel*)(pList->Items[((TPanel*)Sender)->Tag]))->Handle , WM_NCLBUTTONDOWN, HTCAPTION, 0);

}
//---------------------------------------------------------------------------



void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TPanel* pPanel = new TPanel(Form1);
        pPanel->ParentWindow = Form1->Handle;
        pPanel->Top = 20+k*40;
        pPanel->Left = 20+k*80;
        pPanel->Width = 80;
        pPanel->Height = 40;
        pPanel->Tag = k;
        pPanel->Caption = k;
        pPanel->OnMouseDown = PanelDown;
        pList->Add(pPanel);
        k++;
}
//---------------------------------------------------------------------------

여기까지 했습니다. ㅠ_ㅠ


=================================================================================
김배근 님이 쓰신 글 :
: 이런거 말씀하시는건가요?
: 아니면 죄송~
:
:
:
: 장성호 님이 쓰신 글 :
: : 에....
: : 이것 그냥 쉽게 되는 방법은 없을것 같네요
: : 그런것을 지원해주는 라이브러리가 있는지는 모르겠구요
: :
: : 1. 박스 생성( TPanel  로 하는경우 )
: :    1)  박스생성 버튼 클릭시 변수를 하나 체크 해두시구요
: :    2) FormMouseDown이벤트에서 박스생성모드이면 
: :           현재 Mouse위치에 TPanel을 생성하시면 됩니다.
: :
: : 2.  버튼을 누른후 박스를 클릭하면 서로 선으로 이어지기
: :     - 박스가 두개여야  선으로 이을수 있겠죠
: :     - 그러니 박스(TPanel) 이 생성될때  TPanel이 Click이벤트( 또는 MouseDown 등)를 만들어 두셔야 겠네요
: :     - 여기서 어떻게 어떻게 마우스+키보드 이벤트를 이용해서 연결할 것인지 정해야 되겠죠
: :       ( 예 1  - 첫번째 패널에서 마우스down 한후 두번째 Panel에서 마우스up하면 연결되도록 한다)
: :       ( 예 2  - shift 키를 누른 상태에서  Panel 두개를 클릭하면 선으로 연결한다.)
: :    
: :
: : 3. 선연결 방법  (  직선 연결 , 직각 꺽은선 연결  )
: :     - 이것도 여러가지 방법이 있습니다만 Form의 Canvas에다가 직접 draw하는경우로 생각해 보죠
: :     1) 직선 연결 
: :          두 패널의 중심 좌표를 계산해서  (x1,y1 )  - (x2,y2 )  직선을 그려주면 될것입니다.
: :         ( MoveTo , LineTo )
: :         문론 여기서도 Form이 repaint 될때 다시 그려주는 부분을 해야 되구요
: :
: :     2) 직각 꺽은선 연결
: :          - 이것은 좀더 많이 생각해야 할것이 있겠네요   
: :          - PowerPoint 처럼 중심점이  가로로 세로로 어느정도 차이가 나면 꺽은선으로 할지 결정이 필요하구요
: :           
: :
: :
: : 하여간  원하시는 기능은
: :   vcl에 대해서 .. Builder에 대해서 기술적으로 많이 알아야 되는것은 아닌것 같은데...
: :   직접 powerpoint의 도형과 연결선 그리기 같은것을 구현하려면 좀 머리 아플것 입니다.
: :
: :
: :
: : Panel을 동적 생성하는 방법
: : 선그리는 방법 등은 여기 검색하면 많이 나와요
: :
: :
: :             
: :         
: :   
: :    
: :
: :    
: : 
: : 확인해 본후
: :
: :
: : 나쁜토끼 님이 쓰신 글 :
: : : 안녕하세요.
: : :
: : : 이제 막 볼랜드 C++ 5.0을 배우기 시작한 초보입니다.
: : : 강의를 하나하나 보면서 따라하면서...배우고 있는데.. 어려움이 많습니다.
: : :
: : :
: : : 쥐가 미로를 빠져나오듯이..
: : : 기본이 될만한 간단한 안내표지판을 만들어 보고싶습니다.
: : : 간단히 쥐와 끝지점을 만들고 이어주면 대각선방향이라도 ┏━┛이런식으로 꺽여서 나오겠지요.
: : : 쥐가있는 시작점과 끝지점을 박스로 만들면 될것이라 생각해서 panel로 제작을 해보고자합니다.
: : :
: : : 기본이 안되어 있어서... 많은 가르침 부탁드립니다.
: : :
: : : 완벽한 소스를 원하는것이 아니라 배우고자하기때문에
: : : 밑에 기능에 대한 방법과 설명을 하나씩이라도 알려주시면 감사하겠습니다.
: : :
: : :
: : : 기본조건이 될만한것이
: : : [박스생성] [선으로 연결하기] 2개의 버튼을 두는 것이겠지요.
: : :
: : : 1.[박스생성]버튼을 누른후 Form에 마우스로 클릭 하면 박스(panel)이 생성되도록 하는법.
: : :
: : : 2. [선으로 연결하기] 버튼을 누른후 박스를 누르면 서로 선으로 이어지도록하는 법.
: : :
: : : 3. 박스를 움직여도 선이 끊어지지않고 따라오도록 하는법
: : :
: : : ....
: : : 잘몰라서 그냥 생각되는대로 적었습니다.
: : : 혹시 비슷한 소스라도 가지고 계시다면 알려주시면 감사하겠습니다.

+ -

관련 글 리스트
49091 [講초보]패널 2개를 연결하려고 합니다. 나쁜토끼 1114 2007/04/27
49094     Re:[講초보]패널 2개를 연결하려고 합니다. 장성호 1280 2007/04/27
49098         Re:Re:[講초보]패널 2개를 연결하려고 합니다. 김배근 1127 2007/04/27
49120             Re:Re:Re:[講초보]패널 2개를 연결하려고 합니다. 나쁜토끼 1043 2007/04/30
49151                 Re:Re:Re:Re:[講초보]패널 2개를 연결하려고 합니다. 김배근 1033 2007/05/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.