如何從許多項目的數字編輯框中返回值嗨 JMP 們,
關於數字編輯框返回值的一些問題。
我參考過其他帖子(組合號碼框,在新窗口中收集所有數據),並嘗試創建我的代碼。
由於我有許多項目需要賦予價值,因此在每個項目中輸入數字對我來說並不實際。
因此,“新窗口”和“追加”用於處理許多項目的返回值。
最終代碼只返回默認值(1)而不是我鍵入的數字。
你能幫忙檢查一下我的代碼中哪些步驟是錯誤的嗎?
感謝您在高級方面的大力幫助。
list = {"A", "B", "C","D","E","F","G"};
val={};
nw = New Window( "example",
v = V List Box(),
Button Box( "OK", Set Script( nw< )
);
show(val);
回复:如何從多個項目的數字編輯框中返回值您是正確的,即使不單擊“確定”,JMP 也會繼續處理。 除非你做了兩件事中的一件。 使您的顯示窗口成為“模態”窗口
nw = New Window("Test Window", Modal, ....................);
這將迫使處理等待窗口被清除。
或者
將您的代碼構造為 Functions() 或表達式、Expr(),除非從您的窗口代碼或另一個 Function() 或 Expr() 明確調用,否則它們不會執行其中的代碼
回复:如何從多個項目的數字編輯框中返回值嗨吉姆,
真的非常感謝專業的回复。
我根據您的所有建議編寫了我的代碼,但我發現了有關順序執行的問題(即使我還沒有單擊“確定”,JSL 也會執行以下所有代碼)。
所以我必須將以下所有代碼放入Set Script中以確保正確的執行順序。
我腦子裡有兩個選擇,
1)這個方法可以用在<
2)wait(0)在這裡起作用嗎?我應該把它放在代碼中的哪裡?
這是我的簡化代碼來顯示我的問題,我將 2 行標記為藍色以顯示我所做的事情,
Names Default To Here( 1 );
list = {"A", "B", "C", "D", "E", "F", "G"};
val = {};
nw = New Window( "example",
v = V List Box(),
Button Box( "OK",
Set Script(
nw << close window;
New Window( "result", < );
)
)
);
For( i = 1, i <= N Items( list ), i++,
Insert Into( val, 1 );
(v << append(
Outline Box( "",
H List Box(
Text Box( list[i] ),
Eval(
Substitute(
Expr(
exq = Number Edit Box(
1,
10,
<nw2 = New Window( "fake result", <
回复:如何從多個項目的數字編輯框中返回值這是示例的修改版本,摘自
幫助==>腳本索引==>TextEditBox==>設置函數
這說明了“{this}”的目的
Names Default To Here( 1 );
New Window( "Example",
xx = Text Edit Box( "pw?" ),
Text Box( "" )/* here's the sibling box, waiting to show the pw */
);
xx << SetFunction(
Function( {this},
this << passwordStyle( 1 );/* hide my display*/ /* put my password into my sibling's display */
(this << sib) << settext( this << getText );
)
);回复:如何從多個項目的數字編輯框中返回值謝謝吉姆,這確實是一個好方法,幫助我更多地了解“Expr”、“substitute”和“Eval”。
對於 << SetFunction ( Function ( {this} , val[i] = exq << get ) ),
我想我可以把“這個”拿走並留下一個空括號。 (我已經嘗試過了,仍然有效)
支架空著會有潛在風險嗎?
謝謝。
回复:如何從多個項目的數字編輯框中返回值您遇到的問題是,您假設“exq”的每個單獨規範都保留在唯一的實例中。 實際發生的情況是,它們被寫在彼此之上。 下面的代碼分隔了實例。
Names Default To Here( 1 );
list = {"A", "B", "C", "D", "E", "F", "G"};
val = {};
nw = New Window( "example", v = V List Box(), Button Box( "OK", Set Script( nw << close window ) ) );
For( i = 1, i <= N Items( list ), i++,
Insert Into( val, 1 );
(v << append(
Outline Box( "",
H List Box(
Text Box( list[i] ),
Eval(
Substitute(
Expr(
__exq__ = Number Edit Box(
1,
10,
<<SETFUNCTION></SETFUNCTION>