이것은 MapBasic 에서 직접 복사되며 반환된 결과는 점의 좌표와 객체의 선 id 입니다. 이 회로 id 를 사용하여 판단하고 다음 단계로 진행할 수 있습니다. 예를 들어 지도 설정 명령을 들 수 있습니다. 네가 질문하는 방식을 보면, 나는 더 이상 아무 말도 할 필요가 없다.
"mapbasic.def" 를 포함합니다
"icons.def" 포함
선언자 주선
Sub 도구 _sub 선언
부사장
버튼 보드 "검색" 을 다음으로 만들기
도구 버튼 호출 도구 _sub ID 1
아이콘 화살표
커서 표시 화살표
드로잉 모드 DM_CUSTOM_POINT
HelpMsg "지도 위치 클릭 \ n 위치 클릭"
분리기
도구 버튼은 도구 _ 하위 ID 2 를 호출합니다
아이콘 미터 _ 아이콘 검색 _RECT
커서 왼쪽 포인터
드로잉 모드 DM_CUSTOM_RECT
HelpMsg "지도에서 직사각형 끌기 \ n 직사각형 끌기"
폭 3
인쇄 "검색 프로그램이 실행 중입니다."
[검색 도구 모음에서 도구 선택] 을 인쇄합니다
인쇄 "를 클릭하고 지도를 클릭합니다
끝단 접합
Sub 도구 _sub
이 프로시저는 사용자가 를 사용할 때마다 호출됩니다
검색 도구 모음의 사용자 정의 버튼입니다.
X, y, x2, y2 를 부동 소수점 숫자로 설정합니다.
I, i_found, i_row_id, i_win_id 는 정수입니다.
S_table 을 별칭으로 사용
I_win_id = FrontWindow ()
If window INFO(I _ WIN _ id, WIN _ INFO _ TYPE)& lt;; & gt 그럼 WIN_MAPPER
이 도구는 지도 윈도우에만 사용할 수 있습니다
출구 커넥터
만약 ... 끝날거야
사용자가 클릭하는 시작점을 결정합니다.
X = 명령 정보 (CMD_INFO_X)
Y = 명령 정보 (cmd _ info _ y)
Commandinfo (cmd _ info _ toolbtn) =1이면
그런 다음 사용자는 점 모드 도구를 사용하고 있습니다.
선택한 점에 몇 개의 객체가 있는지 결정합니다.
I_found = 검색점 (i_win_id, x, y)
기타
직사각형 모드 도구를 사용하고 있습니다.
직사각형 안에 어떤 오브젝트가 있는지 결정합니다.
X2 = 명령 정보 (CMD_INFO_X2)
Y2 = 명령 정보 (CMD_INFO_y2)
I _ found = search rect(I _ win _ id, x, y, x2, y2)
만약 ... 끝날거야
만약 제가 = 0 이라는 것을 알게 된다면,
사용자가 클릭한 곳에서 개체를 찾을 수 없습니다.
기타
Chr $( 12) 인쇄
Commandinfo (cmd _ info _ toolbtn) = 2 인 경우
Print "rectangle: x1="+x+",y1="+y
플롯 "x2 ="+x2+",y2 ="+y2
기타
Print“Point:x =“+x+ = "+x+",y = "+y
만약 ... 끝날거야
검색 결과를 처리합니다.
For I = 1 ~ i_found
"적중" 을 포함하는 테이블의 이름을 가져옵니다.
S _ TABLE = SEARCH INFO(I, SEARCH_INFO_TABLE)
적중 객체의 행 ID 번호를 가져옵니다.
I _ ROW _ id = SEARCH INFO(I, SEARCH_INFO_ROW)
Left $(s _ table, 8)= Cosmetic 인 경우
"수정자 레이어의 오브젝트" 를 인쇄합니다
기타
사용자가 클릭한 객체의 행을 가져옵니다.
S_table 에서 레코드 i_row_id 를 추출합니다
S _ table = s _ table+ ". 콜1"
양식을 인쇄합니다
만약 ... 끝날거야
그리고 나서
만약 ... 끝날거야
끝단 접합