탭 대신 LF 구분 기호로 목록 상자 내용을 복사 하시겠습니까?목록 상자의 강조 표시된 내용을 복사하면 탭으로 구분 된 문자열이 나타납니다. 그러나 선택한 각 항목이 자체 줄에 있기를 원합니다.
nw = new window("test",
lb = list box({"AAAAA", "BBBBB", "CCCCC", "DDDDD"}, width(100),
max selected(-1),
nlines(8)
)
);
마지막 세 항목을 강조 표시하고 마우스 오른쪽 버튼으로 클릭하면

이 문자열을 얻습니다.
BBBBB CCCCC DDDDD
내가 원하는 것은 이것입니다.
BBBBB
CCCCC
DDDDD
변환 할 자체 클립 보드로 복사 단추를 만들 수 있지만 더 쉬운 방법이 있습니까?
다시 : 탭 대신 LF 구분 기호로 목록 상자 내용을 복사 하시겠습니까?각 값의 끝에 \! n을 추가하여 원하는 것을 제공하는지 확인할 수 있습니다. 그것은 kluge 일 것입니다, 그러나 그것은 일을 끝낼 수 있습니다다시 : 탭 대신 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 구분 기호로 목록 상자 내용을 복사 하시겠습니까? pm ,
버튼 상자와 목록 상자 관리를 제외하고는 솔루션이 그렇게 나쁘지 않습니다. 그러나 상대 객체 참조를 사용할 수 있습니다. 각 복사 단추와 목록 상자는 VListBox 컨테이너에 중첩되어 있으며 단추 상자에는 다음을 사용하십시오. << 함수 설정 (함수 ({this} ...)) 목록 상자는 다음과 같이 참조 될 수 있습니다. (이 << sib) << 선택 등 Copy_ButtonBoxSib.jsl이라는 스크립트 예제가 첨부되어 있습니다. 이것은 커뮤니티 블로그의 다른 사람들에게 참고로 여기에있는 것이 아닙니다.
에이 리스트 박스() 옵션이 있습니다 << 컨텍스트 스크립트 설정 () . 상황에 맞는 메뉴 스크립트를 사용하면 복사 버튼이 필요하지 않습니다.
메뉴 스크립트에서 자신을 참조하는 방법이 있는지 알아 내지 못했습니다. 다음은 상황에 맞는 메뉴 스크립트가 포함 된 3 ListBox의 간단한 스크립트입니다.
- 아이템 선택
- 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 구분 기호로 목록 상자 내용을 복사 하시겠습니까?감사 gz 정말 멋진 기술입니다. 이제 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 구분 기호로 목록 상자 내용을 복사 하시겠습니까?감사합니다 vince . 따라서 for 루프가 필요 없습니다.
alternative ()는 JMP 파서를 전달하는데, 여기서 속성을 즉시 할당 할 수 없었습니다. 좋은 일이에요