JMP가 다른 모든 GUI 프레임워크와 동일한 방식으로 표시 요소를 처리하도록 제안했습니다. 내용이 변경되거나 특정 다시 그리기(또는 inval) 메서드가 호출되지 않는 한 요소를 다시 그리지 마십시오.
구체적으로, 거기에 제발 창을 스크롤할 때마다 프레임박스가 내용을 다시 그리지 않도록 하는 방법(여기에는 모든 데이터 포인트 다시 그리기 및 첨부된 스크립트 다시 실행 포함)이 있습니까?진지하게, 한 번 그려서 상자가 변경되지 않는 한 비트맵(또는 픽스맵)을 영구적으로 유지합니다(크기 변경/dt RowState 변경/inval 메서드).
이것은 미친듯이 극단적인 수천 개의 포인트 또는 복잡한 첨부 스크립트가 있는 그래프를 스크롤할 때 생산성이 저하됩니다."무슨 일이 있어도 가능한 모든 기회에 다시 그리는" 현재 방법은 매우 당혹스럽습니다.
다음은 예입니다. 첨부된 스크립트는 단순히 로그에 인쇄되지만 그래프를 스크롤하면 스크롤 상자가 업데이트될 때마다 어떻게 지속적으로 실행되는지 보여줍니다(<
New Window( "Test",
vlb = V List Box()
);
::global function = Function( {},
Print( 1 );
);
For( i = 1, i <= 20, i++,
vlb << Append(
Graph Box(
Frame Size( 200, 200 ),
X Scale( -100, 100 ),
Y Scale( -100, 100 ),
::global function
)
)
)