¿Copiar el contenido del cuadro de lista con delimitadores LF en lugar de pestañas?Si copio el contenido resaltado de un cuadro de lista, obtengo una cadena delimitada por tabulaciones. Sin embargo, quiero que cada entrada seleccionada esté en su propia línea.
nw = new window("test",
lb = list box({"AAAAA", "BBBBB", "CCCCC", "DDDDD"}, width(100),
max selected(-1),
nlines(8)
)
);
Si destaco las últimas tres entradas y hago clic derecho en copiar

Me sale esta cadena:
BBBBB CCCCC DDDDD
Lo que quiero es esto:
BBBBB
CCCCC
DDDDD
Puedo crear mi propio botón "Copiar al portapapeles" que hará la conversión, pero ¿hay alguna manera más fácil?
Re: ¿Copiar el contenido del cuadro de lista con delimitadores LF en lugar de pestañas?puede intentar agregar \! n al final de cada valor y ver si eso le da lo que desea. Sería un desastre, pero podría hacer el trabajoRe: ¿Copiar el contenido del cuadro de lista con delimitadores LF en lugar de pestañas?Idea interesante Jim, pero el cuadro de lista resultante muestra espacios en blanco. Cuando resalto las filas y presiono CTRL-C, los resultados pegados están en líneas separadas, pero las pestañas siguen ahí.
Tengo múltiples cuadros de lista de los que la gente quiere copiar; Tengo un botón dedicado en la parte superior de cada uno que usa esta lógica:
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)
)
);
Re: ¿Copiar el contenido del cuadro de lista con delimitadores LF en lugar de pestañas? @pmroz ,
Su solución no es tan mala, a excepción de la administración del cuadro de botones y el cuadro de lista. Sin embargo, podría usar referencias de objeto relativas: cada botón Copiar y ListBox están anidados en un Contenedor VListBox y para ButtonBox, use << Establecer función (Función ({esto} ...)) donde se puede hacer referencia al cuadro de lista como (este << sib) << ser seleccionado etc. Se adjunta un ejemplo de script llamado Copy_ButtonBoxSib.jsl. Es probable que esto no sea nuevo para usted, solo aquí como FYI para otros en el Blog de la comunidad.
UNA Cuadro de lista() tiene una opción para << Establecer secuencia de comandos de contexto () . Con un script de menú contextual, no se requiere el botón copiar.
No he descubierto si hay un método para hacer referencia a sí mismo en el guión del menú. Aquí hay un script simple con 3 ListBox con un script de menú contextual para copiar:
- Seleccionar articulos
- Haga clic derecho en ListBox, aparecerá Copiar, selecciónelo.
- Coloqué un botón para pegar el texto para probar esto
Vea la captura de pantalla y el guión.

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>Re: ¿Copiar el contenido del cuadro de lista con delimitadores LF en lugar de pestañas?Gracias @ gzmorgan0 Esa es una técnica realmente genial. Ahora tendré que entrenar a mis usuarios para que hagan clic con el botón derecho> Copiar en lugar de usar CTRL-C.
Re: ¿Copiar el contenido del cuadro de lista con delimitadores LF en lugar de pestañas?Puede evaluar el cuadro en la función para enviar una función autorreferencial.
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 * la última vez que verifiqué este método no funciona cuando está encriptado.
Re: ¿Copiar el contenido del cuadro de lista con delimitadores LF en lugar de pestañas?Gracias @vince_faller . Esto elimina la necesidad de un bucle for.
El sustituto () pasa el analizador JMP, donde la asignación de la propiedad de inmediato no funcionó. Buen trabajo alrededor.