(23-04-2023, 18:48)Shordi escribió: Una Collection no es un tipo de datos nativo. No es factible mezclarlo aquí por su propia naturaleza
ok, si es verdad que no es un tipo nativo, pero ¿Y si tratamos a todo tipo de lista como una Collection? entonces existirán tres columnas siempre, en el caso de:
- Integer[] la primera sera "1","2"..."n" luego la segunda i,i,...i la tercera sera un valor Integer,Integer,Integer y se editara con un ValueBox
- Float[] la primera sera "1","2"..."n" luego la segunda f,f,...f la tercera sera un valor Float,Float,Float y se editara con un ValueBox
- Float[] la primera sera "1","2"..."n" luego la segunda s,s,...s la tercera sera un valor String,String,String y se editara con un TextBox
- Collection la primera sera "clav-1","clav-2"..."clav-n" luego la segunda s,i...f la tercera sera un valor String,Integer,Float y se editara con un TextBox,ValueBox,ValueBox
Luego si el parámetro inicial que se pasa es una Array[] se restringirá la columna 1 a claves "1", "2", "3" ... "n" y la columna 2 a el tipo de dato (todos igual) y el valor, la coluna 2 seran todos los valores de la lista.
Si es una collection se restringira a una collection del tipo clave:valor donde clave sera unica y valor sera integer, float, string etc. (los tipos de datos que contemple el estandar JSON salvo ontras listas u colecciones)
Luego:
El método que devuelva la lista tendrá en cuenta lo que esta editando.
El método que edite o agregue los valores en la collection tendrá que tener en cuenta si si el valor es del tipo de la lista, es decir un integer una string etc.
No se pretende un editor de todo tipo de collection solo del caso simple, clave:valor donde valor nunca es un objeto.
(23-04-2023, 18:48)Shordi escribió: Puede no serlo para tu programa, pero no siempre será así. Si quieres que desaparezca simplemente no le asignes valor.
Lo del encabezado no es solo en mi programa, mira por ejemplo el caso de ListBox que no tiene encabezado. Creo que mientras mas cosas le agregues a un control, menos versátil sera.
Ademas si no le asigno el valor igualmente se reserva el espacio del panel que contiene el label, desperdiciando lugar que podria usarse para poner datos.
(23-04-2023, 18:48)Shordi escribió: Value ya es un Variant de sólo lectura que contiene el tipo de dato adaptado a Values, que es un Variant[]. Pero, de momento, nada de Collection.
Quise decir .Values, que la lista que se pasa como parámetro sea un objeto. luego el control decidirá como tratarlo de acuerdo al tipo de objeto.
y luego devolverá el mismo tipo de objeto. pero internamente siempre trabajara con una collection.
(23-04-2023, 18:48)Shordi escribió: he visto que el tooltip de los botones bUp y bDown parace indicar que su propósito es desplazar el elemento dentro de la lista y no el puntero de selección como yo interpreté de la ubicación de dichos botones.
¿Es así?
Si la idea es "mover" el dato de lugar para el puntero tienes las flechas del teclado. Por eso te comentaba antes que la combinación de teclas ctrl+up o ctrl+down podían hacer también el trabajo de botón up y down.
(23-04-2023, 18:48)Shordi escribió: Si lo es, lo modificaré, pero creo que en tal caso esos botones están mal ubicados (uno en cada extremo con los springs de por medio) desde el punto de vista de la intuición y deberían estar juntos en el centro del panel... o algo así.
Puede ser que no sea el lugar correcto pero, si te parece, lo probamos luego cuando el control este mas avanzado y al usarlo saltara a la luz donde iría mejor cada botón y si todos deben estar operativos todo el tiempo o solo bajo ciertas circunstancias.
Respecto a las traducciones el error puede deberse a que esta definido en español pero las frases están en inglés lo que es inconsistente. Al iniciar el proyecto no lo verifique y quedo así. Te paso la versión corregida.
Acá ya esta todo traducido: