JMP 응용 프로그램에서 TextEditBox에 대한 "텍스트 변경 가져오기" 기능을 얻는 방법은 무엇입니까?안녕하세요 여러분,
과거에 여기에서 유용한 솔루션을 많이 찾았습니다. 감사합니다. 하지만 지금은 아직 해결책을 찾지 못한 질문이 있습니다.
TextEditBox와 두 개의 TextBox가 포함된 JMP 응용 프로그램이 있습니다. TextBox는 결과 시각화에만 사용됩니다. 텍스트를 입력하는 동안 이 TextEditBox에 있는 텍스트의 현재 길이에 따라 일부 작업을 트리거하고 싶습니다. JSL 스크립트의 경우 스크립팅 인덱스(GetTextChanged)에 함수가 있는데 JMP 애플리케이션에서 이 기능을 어떻게 얻을 수 있습니까?
TextEditBox의 개체 섹션에서 "TextChanged" 스크립트를 사용하여 "displ_txt()" 함수를 호출하고 스크립트 탭에서 다음을 시도했지만 작동하지 않습니다.
저는 JMP 18.0.0을 사용합니다.
OnModuleLoad( {}, );
thisModuleInstance << Create Objects;
displ_txt = Function( {},
teb_txt = TextEdit1 << GetText;
Try( Text2 << SetText( teb_txt ),"Error" );
If( Length( teb_txt ) > 0,
Show( Length( teb_txt ) ) //Here should be the current length after each change
);
//...what I want to do further is like
If( Length( GetTextChanged( teb_txt ) ) <= 3,
Text1 << SetText( "Len below limit" ),
Text1 << SetText( "Len above limit" )
);
);
미리 감사드립니다.
매트
자동화 및 스크립팅윈도우Re: JMP 애플리케이션에서 TextEditBox에 대한 "텍스트 변경 가져오기" 기능을 얻는 방법은 무엇입니까?텍스트 변경으로 무엇을 하려고 하시나요? 텍스트 변경 가져오기는 텍스트 편집 상자의 변경된 텍스트 설정과 연결된 기능을 반환합니다.
displ_txt = Function( {},
teb_txt = TextEdit1 << GetText;
Try( Text2 << SetText( teb_txt ),"Not OK" );
If( Length( teb_txt ) > 0,
Show( Length( teb_txt ) ) //Here should be the current length after each change
);
//...what I want to do further is like
If( Length(teb_txt) <= 3,
Text1 << SetText( "Len below limit" ),
Text1 << SetText( "Len above limit" )
);
);

첫 번째 커밋을 수행할 때까지 이상한 동작이 있을 수 있습니다(텍스트 편집 상자 외부를 클릭하거나 Enter 키를 누름).
Re: JMP 애플리케이션에서 TextEditBox에 대한 "텍스트 변경 가져오기" 기능을 얻는 방법은 무엇입니까?스크립트는 어떻습니까?

사용자가 텍스트 편집 상자를 선택하고 끝낼 때마다 스크립트 가 트리거됩니다.
스크립트가 Text Changed 보다 약간 "앞서" 있는 것 같습니다.
displ_txt()를 거기에 배치하면 사용자가 항목을 마치면 1단계 이후가 아니라 이미 새 길이를 반환합니다.
Re: JMP 애플리케이션에서 TextEditBox에 대한 "텍스트 변경 가져오기" 기능을 얻는 방법은 무엇입니까?이 코드는 몇 가지 아이디어를 제공합니다.
filter_text = Function( {this, entered_txt},
{msg},
// only attempt to filter if there is any text
If( entered_txt != "",
if (length(entered_txt) <= 3,
msg = "Len below limit",
msg = "Len above limit"
);
message_tb << set text(msg);
);
); // end filter_text function
nw = new window("Test String Length",
user_tb = textedit box("",
<< set text changed(filter_text)),
message_tb = text box("")
);Re: JMP 애플리케이션에서 TextEditBox에 대한 "텍스트 변경 가져오기" 기능을 얻는 방법은 무엇입니까?답변 주셔서 감사합니다. 불행히도 내 초점은 커밋 없이 텍스트를 얻는 것이었습니다. 따라서 스크립트는 내가 원하는 것을 정확히 수행하지 않습니다.
Re: JMP 애플리케이션에서 TextEditBox에 대한 "텍스트 변경 가져오기" 기능을 얻는 방법은 무엇입니까?고마워요, pmroz. 귀하의 솔루션을 통해 의도한 대로 작동하는 다음 코드를 찾을 수 있었습니다.
filter_text = Function( {this, entered_txt},
{msg},
// only attempt to filter if there is any text
If( entered_txt != "",
If( Length( entered_txt ) <= 3,
msg = Char( entered_txt ) || " is below length limit",
msg = Char( entered_txt ) || " is above length limit"
);
Text2 << set text( msg );
)
); // end filter_text function
TextEdit1 << set text changed( filter_text );