タブの代わりにLF区切り文字を使用してリストボックスの内容をコピーしますか?リストボックスの強調表示されたコンテンツをコピーすると、タブ区切りの文字列が表示されます。 ただし、選択した各エントリがそれぞれの行にあるようにします。
nw = new window("test",
lb = list box({"AAAAA", "BBBBB", "CCCCC", "DDDDD"}, width(100),
max selected(-1),
nlines(8)
)
);
最後の3つのエントリを強調表示し、コピーを右クリックした場合

私はこの文字列を取得します:
BBBBB CCCCC DDDDD
私が欲しいのはこれです:
BBBBB
CCCCC
DDDDD
変換を行う独自の[クリップボードにコピー]ボタンを作成できますが、もっと簡単な方法はありますか?
再:タブの代わりにLF区切り文字でリストボックスの内容をコピーしますか?各値の末尾に\!nを追加してみて、必要な値が得られるかどうかを確認できます。それは手掛かりになりますが、仕事を終わらせるかもしれません再:タブの代わりにLF区切り文字でリストボックスの内容をコピーしますか?興味深いアイデアJimですが、結果のリストボックスには空白が表示されます。 行を強調表示してCTRL-Cを押すと、貼り付けられた結果は別の行に表示されますが、タブはまだあります。
人々がコピーしたい複数のリストボックスがあります。このロジックを使用する専用のボタンが各ボタンの上部にあります。
lf = "
";
nw = new window("test",
cb = button box("Copy to Clipboard",
selected_items = lb << get selected;
if (nitems(selected_items) > 0,
set clipboard(concat items(selected_items, lf)),
),
),
lb = list box({"AAAAA", "BBBBB", "CCCCC", "DDDDD"}, width(100),
max selected(-1),
nlines(8)
)
);
再:タブの代わりにLF区切り文字でリストボックスの内容をコピーしますか? @pmroz 、
ボタンボックスとリストボックスの管理を除いて、ソリューションはそれほど悪くありません。ただし、相対オブジェクト参照を使用することもできます。各コピーボタンとリストボックスはVListBoxコンテナーにネストされ、ボタンボックスには << Set Function(Function({this} ...)) リストボックスは次のように参照できます (この<< sib)<<選択されるなど Copy_ButtonBoxSib.jslというスクリプト例が添付されています。 これは、コミュニティブログの他のユーザーへの参考情報として、ここでは初めてではありません。
A リストボックス() オプションがあります << Set Context Script() 。コンテキストメニュースクリプトでは、コピーボタンは必要ありません。
メニュースクリプトで自分自身を参照するメソッドがあるかどうかはわかりません。コピーするコンテキストメニュースクリプトを含む3つのListBoxを使用した簡単なスクリプトを次に示します。
- アイテムを選択
- リストボックスを右クリックすると、コピーが表示されますので、選択してください。
- これをテストするためにテキストを貼り付けるボタンを配置しました
スクリーンショットとスクリプトをご覧ください。

Names Default to Here(1);
lf = "\!N";
mylb =Function({usrlist}, {lb},
lb = ListBox(usrlist, width(100), max selected(-1), nlines(8));
lb
);
mycopy = Function({this}, {sel},
sel = this << get selected;
if(nitems(sel)>0, set clipboard(concat items(sel,lf)) )
);
mylist1 = {"AAAAA", "BBBBB", "CCCCC", "DDDDD"};
mylist2 = {"xxxxx", "yyyyy", "zzzzz", "wwwww"};
mylist3 = {"dog", "cat", "parrot", "hamster"};
lb1 = mylb(mylist1);
lb2 = mylb(mylist2);
lb3 = mylb(mylist3);
list_lb = {lb1, b2,lb3};
Names Default To Here( 1 );
New Window( "Example",
VlistBox(
HListbox(lb1,lb2,lb3),
ButtonBox("show It", <<SETFUNCTION></SETFUNCTION>再:タブの代わりにLF区切り文字でリストボックスの内容をコピーしますか?ありがとうしゅうそれは本当にクールなテクニックです。 ここで、CTRL-Cを使用する代わりに、右クリック>コピーするようにユーザーをトレーニングする必要があります。
再:タブの代わりにLF区切り文字でリストボックスの内容をコピーしますか?関数内のボックスを評価して、自己参照関数を送信できます。
mylb =Function({usrlist}, {lb},
lb = ListBox(usrlist, width(100), max selected(-1), nlines(8));
Eval(Substitute(
Expr(DV_LB << Set Context Menu Script({"Copy", mycopy(DV_LB)})),
Expr(DV_LB), lb
));
lb;
);
* CAVEAT *最後に、このメソッドが暗号化されたときに機能しないことを確認しました。
再:タブの代わりにLF区切り文字でリストボックスの内容をコピーしますか?ありがとうございましたしゅう 。 これにより、forループが不要になります。
substitution()はJMPパーサーを渡しますが、プロパティをすぐに割り当てることはできませんでした。 いい回避策。