Grandamakulo 19-03-2025, 22:13
Bueno, compañeros, gracias a las inestimables enseñanzas del Magister Draconis Venator, @Shordi, me he atrevido a montar mi primer control. Por supuesto, soy yo. No podía hacer uno sencillito, no: empezar por lo fácil es de pobres.
En fin, se trata de un gestor de doble lista, sobre el que se puede crear y eliminar elementos, pasar elementos de una lista a otra, ordenar cada lista según varios criterios y obtener un «Text» utilizable como , por ejemplo, editor en un Tableview. ¿Que para qué vale? Pues... seleccionar instrumentos para adecuar una plantilla de orquesta, banda o cámara; para seleccionar una lista de personajes para un capítulo de una novela de todos los existentes; para gestionar las plantas que se llevan del semillero al huerto; objetos del espacio profundo a observar una noche por un astrónomo... Ahí queda eso.

[Imagen: EoZayVwl.png]
[Imagen: 3LZFYCZl.png]

Aún le quedan flecos como:
¿Cómo narices se levanta un evento «Cambiar» similar al «Change» desde el formulario cada vez que se pulsa un grupo de botones?
¿Y cómo se crea un evento «Enter» similar al de Texbox?
¿Cómo releñes se puede usar una propiedad de la clase en el formulario?
Estas tres preguntas, creo, se contestan probablemente planteando de otra manera el código del control, esto es, llevando a la clase la gestión de algunos elementos del formulario.

En fin, se admiten comentarios, consejos y críticas destructivas.
Archivos adjuntos
.gz
DobleLista_02.tar.gz (Tamaño: 31.89 KB Descargas: 1)
guizans 19-03-2025, 17:25
Debo de estar un poco, o mejor dicho muy dormido. No encuentro el atajo de teclado para cambiar entre pestañas en el IDE. ¿Alguien sabe como se llama en la Configuración de atajos?

Muchas gracias.
Grandamakulo 17-03-2025, 13:40
Hola, compañeros:
Me temo que no he sido capaz de explicar convenientemente el problema en el título del tema. En realidad, es que no es sencillo de explicar. Vayamos por partes, como dijo Jack.
Defino una estructura en un formulario y tres matrices —en realidad, vectores, pero vamos, no nos pongamos quejicosos—:

Código:
Public Struct struCampos
  Nombre As String              '?[0] Nombre en el programa de la columna ¿Quitar?'
  Texto As String              ' [1] Título de la columna, traducible'
  Tipo As String                ' [2] Cualquiera de los cuatro tipos posibles'
  Contenido As Variant          ' [3] Contenido por defecto para la columna:'
                                '    * Para texto: texto plano'
                                '    * Para listas:'
                                '      ?[0] índice entero ¿Quitar?'
                                '      [1] texto plano'
                                '      [2] color papel'
                                '      [3] color tinta'
                                '    * Para fechas: a definir'
  Color As Integer              ' [4] Color de fondo para toda la columna'
  ' NOTE: Aquí añadir gestión de fondos definiendo una banderita de auto'
  Resaltar As Boolean          ' [5] ¿Se resaltan los contenidos de esta lista?'
End Struct

Public $cFijos As New StruCampos[]          ' Campos obligatorios'
Public $cRemanentes As New StruCampos[]    ' Campos definidos no mostrados'
Public $cUsados As New StruCampos[]        ' Usados o visibles en columnas'

—Olvidémonos de los comentarios y de las malas praxis con los nombres, por el momento Smile —.
Inserto algunos elementos vacíos, pero les cambio la propiedad .Nombre:

Código:
  For i = 0 To lsoRemanentes.Count - 1
    Dim cDos As New StruCampos
    $cRemanentesP.Add(cDos)
    $cRemanentesP.Last.Nombre = lsoRemanentes[i].Text
  Next

Y resulta que siempre añade el mismo, es decir, cuando exploro la matriz todos, absolutamente todos los elementos son el mismo, en concreto, el último que he pasado.

Además, si se me ocurre pasar estas matrices entre formularios, por ejemplo:

Código:
  $cRemanentesP = FPral.$cRemanentes
  $cUsadosP = FPral.$cUsados
  $cFijosP = FPral.$cFijos

Resulta que pasa las matrices por referencia, no por valor, por lo que me las modifica en el origen. Es decir, si hago $cFijosP en el nuevo formulario para trabajar y después ver si hago los cambios definitivos y los paso o no a FPral.$cFijos, resulta que no, porque modifica ambas matrices como si fuesen la misma. 
Estoy convencidísimo que es una auténtica chorrada, pero mi torpeza e ignorancia me impide verlo. en fin, a ver si algún alma caritativa me ilumina. ¡Y muchas gracias de antemano!
Páginas (547):    1 11 12 13 14 15 547   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 277
Último miembro: Elarrieu
Temas del foro: 1,686
Mensajes del foro: 8,746
Últimos temas
No se ejecuta Gambas3 en ...
Foro: Instalación
Último mensaje por: jackrobot, Ayer, 21:30
Respuestas: 4 - Vistas: 958
Problemas con proyectos d...
Foro: Instalación
Último mensaje por: Shell, Ayer, 16:04
Respuestas: 0 - Vistas: 24
Programa con dos formular...
Foro: General
Último mensaje por: Turriano, Ayer, 13:02
Respuestas: 7 - Vistas: 120
Nuevo manual dinámico...
Foro: WebApp/WebForms
Último mensaje por: Shordi, Ayer, 11:49
Respuestas: 3 - Vistas: 84
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.