「OK」の代わりに別のボタンを使用する - モーダル ウィンドウやあ、
スクリプトの学習を始めたばかりなので、乱雑または冗長なコーディングをお許しください (笑)。これらのフォーラムから拾ってきたいくつかのことを組み合わせようとしています。基本的に、ファイルを開くか、既に開いているファイルを選択するオプションをユーザーに提供します。スクリプトを続行する前に、モーダルウィンドウを使用して選択が行われるのを待つ必要があることが最終的にわかりました。
選択が行われたときにコードを継続させる方法はありますか? ユーザーが「OK」ボタンを押すのを待つ代わりに?したがって、私の2つのオプションについて:
1. ユーザーがファイルを開く --> ファイルが開かれたら続行
2. ユーザーが開いているファイルを選択 --> ファイルが選択されたら続行
現在、選択後に「OK」ボタンを押すのは冗長に思えます。助けてくれてありがとう!
InputWindow = New Window( "Pick a file opening option (must be truncated)", <<MODAL></MODAL>
Re: 「OK」の代わりに別のボタンを使用する - モーダル ウィンドウやあ、
返信ありがとうございます。ああ、モーダルである必要はなかったという点で、誰もが正しいと思います。これは、選択が行われ、スクリプトがウィンドウ選択を通過した後もテーブルを定義したままにするために見つけた最初の解決策でした。
いずれにせよ、私が書いたものでは、セルフクリックはすでに機能していました。しかし、関数を使用する簡単な方法を試してみます。再度、感謝します。
Re: 「OK」の代わりに別のボタンを使用する - モーダル ウィンドウモーダル ウィンドウは、ユーザーが実行を続行する前に [OK] をクリックするように強制するように設計されています。または、非モーダル ウィンドウを使用して、スクリプトをボタンまたは選択可能な表示ボックスに添付することもできます。以下の例では、選択が行われるとすぐに実行が続行されます。
Names Default To Here(1);
lst = {"Item 1","Item 2","Item 3","Item 4"};
nw = New Window("Selection",
Border Box(top(20),bottom(20),left(20),right(20),
V List Box(
Text Box("Select an item from the list:"),
lb = List Box(lst,<<SETMAXSELECTED></SETMAXSELECTED>
Re: 「OK」の代わりに別のボタンを使用する - モーダル ウィンドウ手動で OK ボタンを作成し、btn << Click でクリックすることができます。
InputWindow = New Window( "Pick a file opening option (must be truncated)",
<<MODAL></MODAL>
しかし、モーダル ダイアログは必要ないように思えます。残りのコード実行を関数または式にして、それを各ボタンに送信するだけです。
domorestuff = function({},
print(dt);
);
InputWindow = New Window( "Pick a file opening option (must be truncated)",
V List Box(
Text Box( "Pick a Cut and Truncated Waveform" ),
Spacer Box( size( 1, 10 ) ),
Button Box( "Open a file",
path = Pick File(
"Select Raw Waveform data",
"", // no default directory
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"" // no default file
);
dt = Open( path ); //probably should do this instead of current data table()
//dt = Current Data Table();
domorestuff();
),
Spacer Box( size( 10, 1 ) ),
Button Box( "Select from a list",
choose_data_table = Function( {},
list = {};
For( i = 1, i <= N Table(), i++,
list[i] = Data Table( i ) << get name
);
win = New Window( "Select a data table",
<<MODAL></MODAL>