GraphBox의 가변적인 개수. 내가 클릭을 보내는 GB를 어떻게 식별할 수 있나요?nw = new window("graphs", vlb = v list box());
dirname = "jpegs";
set default directory(dirname);
foreach({jpeg}, files in directory(dirname), // dexter.jpg, samurai_jack.jpg, spongebob.jpg
img = new image(jpeg);
msg = eval insert("\!"^jpeg^\!"");
h = graphbox(
<<ADD image=""></ADD>The above gives me
3 graphboxes :white_heavy_check_mark:</img>with three correctly rendered images, :white_heavy_check_mark:</img>but StatusMsg always sends "Spongebob.jpg". (Without the evalinsert(), just sending jpeg to StatusMsg, it throws an error.)
I want StatusMsg to give me the name of the image whose graphbox I clicked on.
Basically, I can kinda sorta imagine two routes:
1. Eval and related functions? I still haven't dug into that side of JSL very deeply.
2. Xpath? Maybe log the image name in a List; index will correspond with the frame box number.
<LINGO-LABS id="lingo-labs-797481" slang="en-US" mode="UPDATE"><LINGO-LABEL>자동화 및 스크립팅</LINGO-LABEL></LINGO-LABS>Re: GraphBoxes의 가변적인 개수. 내가 클릭을 보내는 GB를 어떻게 식별할 수 있나요?사용자가 이미지를 클릭할 때마다 mousetrap은 호출 명령을 받습니다.
statusmsg( variablename)
So: it will execute statusmsg( variablename), check for the current content of variablenamea and display it.
당신이 알아차리고 시도한 것처럼: 당신은 어떻게든 변수를 강제로 평가해야 합니다.
문제:
결과를 다른 변수( msg )에 저장하면 동일한 문제가 발생합니다. 단지 변수 이름만 달라질 뿐입니다.
당신이 하고 싶은 일:
각 이미지에 대해 이미지 이름을 미리 평가하고 예를 들어 트리거합니다.
statusmsg("samurai_jack.jpg")90%의 경우, 사전 평가는 Eval(Eval Expr())을 통해 수행할 수 있습니다.
나머지의 경우 Eval(Substitute())를 사용하세요.
JMP에서의 표현식 처리: Tipps와 Trapdoors
Eval (Eval Expr( h=graphbox(
<<ADD image=""></ADD>
Re: GraphBoxes의 가변적인 개수. 내가 클릭을 보내는 GB를 어떻게 식별할 수 있나요?ㅋㅋㅋ 알아냈어
foreach({jpeg}, files in directory(jpegs),
img = new image(jpeg);
h = Eval(
Eval Expr(
graphbox(
<<ADD image=""></ADD>It's not clear to me why `jpeg` needs the expr() and `img` doesn't, though. Both of those vars are 'born' on a per-loop basis
Re: GraphBoxes의 가변적인 개수. 내가 클릭을 보내는 GB를 어떻게 식별할 수 있나요?네, 이건 JSL에서 꽤 큰 문제입니다. 안타깝게도 어떤 인수가 평가되는지, 그리고 어떤 인수가 그냥 "전송"되는지에 대한 문서가 없습니다. 그리고 때로는 알아내기가 전혀 쉽지 않습니다.
Head가 주장을 평가했나요?
저는 JMP 지원팀에 인수를 평가하거나 평가하지 않는 함수의 공식 목록을 요청했습니다. 안타깝게도 그런 목록은 없습니다.
또 다른 방법은 JSL 편집기에서 고급 구문 강조 기능을 사용하는 것입니다. 함수가 인수를 평가합니까?
다음 릴리스에서 구현되기를 바랍니다.
실제로, JSL의 많은(!!!) 함수는 사용하기 전에 (일부) 인수를 평가하지 않습니다.
이런 접근 방식은 정말 강력해요!
"방금 전송됨"의 가장 두드러진 예:
New column (.... Formula(<U>Expression gets just transferred</U>))
마우스 트랩에도 마찬가지입니다.
다시 생각해 보면 JMP가 인수를 평가하지 않는다는 건 정말 친절하네요 
코드를 실행할 때가 아니라, 사용자가 이미지를 클릭할 때마다 상태 메시지를 변경하려고 합니다.
반면, 창에 이미지를 추가하려면 JMP가 이미지 파일을 열어야 합니다. 그러려면 변수를 살펴봐야 합니다.
참고: 때로는 인수를 Eval(인수)로 바꾸는 것이 도움이 됩니다.
때때로.
여기: 아니요.