Table Box con celdas multilíneaAcabo de notar un pequeño problema (uno más en la larga lista de problemas) con Table Box. Estoy tratando de agregar una cadena bastante larga a Table Box y debido a que Table Box realmente no admite varias líneas, intenté usar Col Box con Table Box (<< Set Wrap())... el problema con esto es que parece romper todo lo demás
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDD", << Set Wrap(150));
long_str = "speciallylongname";
Eval(EvalExpr(
tb << Add Row({1, Expr(long_str), Expr(textb), Expr(long_str)});
));

Parece que se está envolviendo 103width y solo se muestra la segunda línea.
¿Alguien tiene alguna buena idea de cómo podría manejar esto? Estos tres vienen a mi mente rápidamente:
- ¿Tengo que usar solo Col Boxes con Text Boxes y simplemente aceptar que no puedo permitir que los usuarios seleccionen filas en Table Box tan fácilmente como me gustaría?
- ¿Tengo que escribir mi clase personalizada para el nuevo elemento de cuadro de visualización (como renunciar a Cuadros de tabla)
- Cree columnas ocultas con texto completo y luego calcule el ancho máximo que puedo mostrar en String Col Boxes y solo muéstrelos.
secuencias de comandosventanasRe: Table Box con celdas multilíneaEjecuté su script y obtuve resultados diferentes.

y resultados aún más confusos al agregar una segunda línea a la tabla

El uso de Col Box () con cuadros de texto incrustados parece ayudar

Re: Table Box con celdas multilínea@txnelson Las diferencias en el primer caso podrían deberse a diferentes configuraciones de fuente (¿o tal vez incluso a niveles de zoom?) ya que, según tengo entendido, los anchos se establecen mediante el uso de píxeles.
El segundo caso es un poco preocupante, ya que parece que las filas se mezclan de alguna manera. Lo más probable es obtener texto de la fila incorrecta:

(cambiado long_str = "11231231312312312312"; para la segunda fila).
Usar Col Box con cuadros de texto podría ser la "única" solución por ahora. Lástima que no puede hacer clic y resaltar filas con solo configurar tb << Establecer filas seleccionables (1); cuando se utilizan cajas col.
Re: Table Box con celdas multilíneaTiendo a llenar los cuadros de la tabla en forma de columna, así que probé esto:
nceb << set({1});
scb1 << set({long_str});
scb2 << set({long_str});
wait(2);
cb << set(lstBoxes);
Pero ocurrió el mismo problema.La única forma en que podía hacer que funcionara era tener también scb1 y un cuadro de columna que contenía cuadros de texto.Por lo general, he recurrido a hacer que la primera columna de un cuadro de tabla contenga botones de opción para permitir selecciones:

Re: Table Box con celdas multilíneaAdemás, debido a que Table Box parece tener una altura fija para cada fila, podría ser beneficioso envolver Text Box() con Scroll Box() (esto hará que la columna sea un poco más ancha si aparece el cuadro de desplazamiento)
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Scroll Box(Size(175, 35),
Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", << Set Wrap(150))
, <<SET auto="" stretching=""></SET>