쥐덫 및 Biviariate Frame Box<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />나는 이변 산란을 뱉어내는 anaysis를 가지고있다. 쥐덫 작업을 통해 몇 가지 추가 기능을 추가 할 때 점을 선택할 수 없으며 이유가 없습니다. 이 문제를 방지하거나 적어도이 기능을 다시 추가 할 수있는 방법이 있습니까?
이 문제를 어떻게 해결할 수 있습니까?
dt = Open ( "$ SAMPLE_DATA / Big Class.jmp");
nw = 새 창 ( "MouseTrap Test", Vlb = vlistbox ());
vlb << Append (biv = dt << Bivariate (Y (: 높이), X (: weight));
rbiv = biv << report;
rbiv [프레임 상자 (1)] << 그래픽 스크립트 추가 (쥐덫 (print ( "test"), print ( "test test")));
biv2 = dt << 2 변량 (Y (: 높이), X (: 무게));)
제목 : Re : 쥐덫 및 Biviariate 프레임 상자고마워, 고마워, 고마워. 이것은 나를 미치게했다.
그리고 나는 당신이 "\! n"이라는 것을 확신합니다. C # / C ++가 표시됩니다.
제목 : Re : 쥐덫 및 Biviariate 프레임 상자그래서 # 4. 누구든지 따라 가면서 ...이 스크립트는 상단 그래프에 첨부 된 그래픽 스크립트에서 "MouseTrap"이라는 함수를 사용하고 있습니다. 위쪽 그래프에서 마우스로 드래그하면 MouseTrap 함수가 마우스 움직임을 캡처하여 "고무 밴드 사각형"의 점을 정상적으로 선택하지 못하게합니다. 선택 동작을 에뮬레이션하기 위해 MouseTrap은 상태 변수 "scripton"과 "startx ... othery"를 유지합니다. msharp 직사각형에 추가 된 모든 추가 점에서 실행하기에는 너무 오래 걸리는 스크립트를 실행할 것인지 여부를 알기 위해 생성 된 스크립트입니다. MouseTrap은 또한 scripton을 사용하여 버튼이 방금 눌려 졌는지 여부를 추적합니다. 그렇다면 X, Y는 startx에서 캡처됩니다. 그렇지 않으면 otherx에서 캡처됩니다. 그리고 처음이 아니라면 MouseTrap은 wherex 문에서 startx ... othery를 사용하여 실제로 테이블의 행을 선택합니다. SelectWhere 명령의 Min 및 Max 함수는 선택 사각형을 위쪽에서 아래쪽, 아래쪽에서 위쪽, 왼쪽에서 오른쪽으로 그립니다.
MakeRowStateHandler는 MouseTrap과 동일한 평가를 수행해야합니다. 여기서는 변경된 행만 인쇄합니다. 이 코드에는 몇 가지 다른 print 문이 있습니다. 로그를보고 무슨 일이 일어나는지 생각해보십시오.
//Startdt = Open( "$SAMPLE_DATA/Big Class.jmp" );script = "\[New Window("Test", Text Box("Hello"));]\";scripton = 1; // this is a better way to deal with row state changes (and not needed for the rest of the example) rs = dt<startx = .;starty = .;otherx = .;othery = .;nw = New Window( "MouseTrap Test", Vlb = V List Box() );vlb << Append( biv = dt << Bivariate( Y( :height ), X( :weight ) ); rbiv = biv << report; rbiv[frame box( 1 )] << Add Graphics Script( If( !Is Missing( startx ), Line( {startx, starty}, {otherx, starty}, {otherx, othery}, {startx, othery}, {startx, starty} ) ); Mousetrap( If( scripton, write("down\n"); startx = x; starty = y; , write("move\n"); otherx = x; othery = y; dt << selectwhere( Min( starty, othery ) < :height < Max( starty, othery ) & Min( startx, otherx ) < :weight < Max( startx, otherx ) ); ); scripton = 0; , write("up\n"); scripton = 1; startx = .; // toggle off Eval( Parse( script ) ); ); ); biv2 = dt << Bivariate( Y( :height ), X( :weight ) ););제목 : Re : 쥐덫 및 Biviariate 프레임 상자이 모든 것은 OR 문입니다. 나는 성명서가 필요하다. 어떻게 포인트를 선택하고 스크립트를 실행할 수 있습니까? 나열된 모든 것이 포인트를 선택하거나 스크립트를 실행합니다.
조금 더 많은 정보가 있으면 포인트가 선택 될 때마다 실행되는 스크립트가 있습니다. 여러 점을 드래그하고 선택하는 경우 사용자가 느린 경우 스크립트가 여러 번 실행됩니다. 사용자가 마우스를 놓을 때까지 스크립트가 실행되지 않도록하고 싶습니다. 아래 예를 참조하십시오.
//스타트
dt = Open ( "$ SAMPLE_DATA / Big Class.jmp");
script = "\ [새 창 ("테스트 ", 텍스트 상자 ("Hello "));] \";
scripton = 1;
// 선택된 스크립트
dt << 새 열 ( "선택한 스크립트",
숫자,
공식(
(Selected (Row State ()) & scripton == 1이면,
평가 (구문 분석 (스크립트))
)
)
);
열 (dt, "선택한 스크립트") << 숨기기;
//고치다?!?!?
nw = 새 창 ( "MouseTrap Test", Vlb = vlistbox ());
vlb << Append (biv = dt << Bivariate (Y (: 높이), X (: weight));
rbiv = biv << report;
rbiv [프레임 상자 (1)] << 그래픽 스크립트 추가 (쥐덫 (scripton = 0, scripton = 1));
biv2 = dt << 2 변량 (Y (: 높이), X (: 무게));
)
제목 : Re : 쥐덫 및 Biviariate 프레임 상자세 가지 방법 :
1) 현재 스크립트로 브러쉬 도구 (B 키를 누르십시오)를 사용하십시오 (브러쉬 크기를 변경하려면 브러싱 중 alt 키를 누른 채로 시도하십시오). 브러쉬 도구가 활성화되어 있으면 쥐덫이 움직이지 않습니다.
2) 그래픽 스크립트를 도면 목록의 앞부분에 배치하도록 스크립트를 수정하십시오
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );nw = new Window("MouseTrap Test", Vlb = vlistbox());vlb << Append(biv = dt << Bivariate( Y( :height ), X( :weight ) );rbiv = biv << report;rbiv[frame box(1)] << Add Graphics Script( 1, Mousetrap(print("test"), print("test test")));biv2 = dt << Bivariate( Y( :height ), X( :weight ) );)논리는 다음과 같습니다 : 먼저 그리는 스크립트는 후속 그래픽 스크립트에 의해 그려집니다. 따라서 마우스 히트 테스트는 반대 순서로 수행됩니다. 마지막에 그려지면 더 잘 보이고 마우스로 치기 쉽습니다. 이제 점을 클릭하면 마커 seg가 마우스를 가져옵니다 (선택 사각형을 드래그 할 수 있습니다). 점을 클릭하면 쥐덫 스크립트가 클릭을합니다. 점을 클릭하면 사각형을 선택할 수 없습니다. 마우스 오른쪽 버튼 -> 사용자 정의를 사용하여 실험하고 스크립트를 위아래로 움직일 수 있습니다.

(나는 스크립트를 저장하고 위의 "1"을 수행하는 방법을보기 위해 엿보기를했습니다.)
3) 쥐덫 대신 Handle을 사용하십시오. 쥐덫이 모든 마우스 활동을 포착하기 위해 정말로 필요한 경우가 아니라면. 핸들은 사각형 핸들의 클릭 만 캡처합니다.
4) 정말로 쥐덫에 선택 로직을 다시 구현할 수 있다고 가정합니다. 1-3 더 나은 방법을 보인다.