Q&A

  • XY좌표를 구하는 방법을 모르겠는데요..
안녕하세요.. 델파이를 사용한지 일주일도 안된 초보랍니다..

많은 지도 바랍니다.. *^^*



[질문1] 메인폼에 판넬을 놓구, 그 위에 도면(지도:Vector Image)을 불러서 언져놓았슴다.

여기에서 사각형 선택영역 스피드버튼을 누르고 도면상에서 마우스 이벤트를 이용해서 좌표값을 얻을려구 하는데 잘 안되네요.. 어떻게 하면 좋을까요..



[질문2]페이지컨트롤을 이용해서 tab Sheet를 만들었는데, 이를 메인 메뉴에서 부를때 마다 해당 각 tab sheet가 열리도록 했슴다. 이때 ActivePages를 사용해서 tab sheet의 인데스를 값으로 줬는데도, 해당 sheet가 열리지 않습니다.. 해결책을 말씀해주십시요..



항상 즐거운 일들만 생기시길 바랍니다..

3  COMMENTS
  • Profile
    최용일 2000.02.28 02:53
    첫번재 질문은 OnMouseMove이벤트를 사용하시면 원하시는 X, Y좌표를 구하실 수 있습니다.



    두번째 질문은 ActivePages에는 인덱스가 아니라 클래스네임을 넣는것입니다. 제대로

    넣어 주었다면 분명히 보일 것입니다. 메뉴에서 사용하실려면 ActivePages보다는

    ActivePageIndex와 Tag속성을 이용하시면 더 편리하게 바꿀 수도 있습니다.

    인덱스는 0부터 시작합니다... 참고하시길...



    procedure TForm1.MenuClick(Sender: TObject);

    begin

    PageControl1.ActivePageIndex := (Sender as TMenuItem).Tag;

    end;



    왕초보 wrote:

    > 안녕하세요.. 델파이를 사용한지 일주일도 안된 초보랍니다..

    > 많은 지도 바랍니다.. *^^*

    >

    > [질문1] 메인폼에 판넬을 놓구, 그 위에 도면(지도:Vector Image)을 불러서 언져놓았슴다.

    > 여기에서 사각형 선택영역 스피드버튼을 누르고 도면상에서 마우스 이벤트를 이용해서 좌표값을 얻을려구 하는데 잘 안되네요.. 어떻게 하면 좋을까요..

    >

    > [질문2]페이지컨트롤을 이용해서 tab Sheet를 만들었는데, 이를 메인 메뉴에서 부를때 마다 해당 각 tab sheet가 열리도록 했슴다. 이때 ActivePages를 사용해서 tab sheet의 인데스를 값으로 줬는데도, 해당 sheet가 열리지 않습니다.. 해결책을 말씀해주십시요..

    >

    > 항상 즐거운 일들만 생기시길 바랍니다..

  • Profile
    왕초보 2000.02.28 03:59
    최용일 wrote:

    > 첫번재 질문은 OnMouseMove이벤트를 사용하시면 원하시는 X, Y좌표를 구하실 수 있습니다.

    >

    > 두번째 질문은 ActivePages에는 인덱스가 아니라 클래스네임을 넣는것입니다. 제대로

    > 넣어 주었다면 분명히 보일 것입니다. 메뉴에서 사용하실려면 ActivePages보다는

    > ActivePageIndex와 Tag속성을 이용하시면 더 편리하게 바꿀 수도 있습니다.

    > 인덱스는 0부터 시작합니다... 참고하시길...

    >

    > procedure TForm1.MenuClick(Sender: TObject);

    > begin

    > PageControl1.ActivePageIndex := (Sender as TMenuItem).Tag;

    > end;



    위의 답변은 감사합니다..



    물론, 저도 용일님이 말씀하신대로.. 이렇게 해봤죠..

    procedure TForm1.mitBuildingClick(Sender: TObject);

    begin

    frmStatistic := TfrmStatistic.Create(Self);

    frmStatistic.ShowModal;

    frmStatistic.PageControl1.ActivePageIndex := 0;

    end;



    근데 어디가 문제일까요...

    해당 tab Sheet가 떠질않는데요..~~



    그리고, MouseMove를 사용해서 값을 받을려고 하는데,,

    조금은 힘이드네요..

    제가 MouseDown과 MouseUp도 같이 사용해봤거던요..~~

    근데 좌표값을 구하기가 힘이듭니다.. 제가 능력이 없어서 그렇겠죠..



    이건 뭔지 잘모르겠는데요...

    if ssLeft in Shift then에서 ssLeft에 관해서 아시면 좀 가르쳐 주십시요..







  • Profile
    최용일 2000.02.28 05:14
    위치를 바꾸세요...

    procedure TForm1.mitBuildingClick(Sender: TObject);

    begin

    frmStatistic := TfrmStatistic.Create(Self);

    frmStatistic.PageControl1.ActivePageIndex := 0; <-

    frmStatistic.ShowModal; <-

    end;



    마우스 좌표는 파라매터중 X와 Y값입니다...

    OnMouseMove(..........; X, Y: Integer);

    OnMouseDown(..........; X, Y: Integer);

    OnMouseUp(..........; X, Y: Integer);



    ssLeft는 현재 마우스 왼쪽버튼이 눌려져 있다는 뜻입니다...

    클릭(click)이 아니라 홀드(hold)죠....