Aún no he llegado a esta parte del programa que estoy desarrollando, (aconsejo leer la primera parte del post antes de continuar), pero el otro día estuve pensando en cómo hacer una cosa que necesito y he llegado a la conclusión de que a Microsoft Windows le falta un control o por lo menos si existe yo no lo conozco.
En las fichas de las representaciones, la idea es que en cada representación lógicamente se representa una ópera, en un teatro, dirigida por un director, tocada por una orquesta, e interpretada por varios cantantes.
El problema viene para relacionar los personajes de la ópera con los cantantes. Como cada personaje es interpretado por un cantante, y el número de personajes y de cantantes es indeterminado dependiendo de la ópera, necesitaría un control con “dos lados” y algo que mostrara claramente que cada elemento de un “lado” se corresponde con el elemento en línea del otro “lado”.
Yo al menos no conozco ningún control que me permita hacer algo como esto, así que la única solución que se me ha ocurrido es crear dos Grids (Browses), uno para personajes y otro para cantantes, y “unir” por filas los registros mediante Labels (Says) con forma de flecha que indiquen la relación. Algo como esto:

Sin embargo hay un problema: si el usuario no se mueve por los dos Grids a la par, la relación se rompe y cada personaje deja de corresponderse con su cantante. Lo ideal sería un único Scroll (flecha de movimiento del Grid) que desplazara los registros de ambos Grids a la vez. Seguiré pensando... Windows me la ha jugado :-(
comentarios (5) |
Y digo yo.... :) ¿No sería mejor un único grid con dos columnas? Una para el interprete y otra para el personaje, todo esto en la ficha de la obra, donde figure la fecha, el "recinto", director, etc...
Windows (y le resto de entornos gráficos) proporciona una serie de controles básicos, los demas se obtienen o bien mediante librerías de controles de terceros o haciéndoselos uno mismo.
Hola Jose A.,
El tema es que en el momento en el que se escoge qué ópera se representa, ésta tiene ya asignada unos personajes desde el mantenimiento de óperas. Por lo tanto no puedo hacer algo tan fácil como poner un Grid con dos columnas y dos Edits encima, uno para el personaje y otro para el cantante, ya que la lista de personajes ya está definida cuando vas a asignarles los cantantes. Al menos que se pueda tener un Grid con dos columnas... : una vacía y desde un Edit y un Button ir rellenando la segunda columna con cada personaje... lo miraré, gracias.
Kaixo
En mi trabajo tenemos un programa que no es que esté muy bien diseñado... Se trata de WinSport (www.oai.it), un programa para llevar las clasificaciones deportivas... Cuando defines una liga, dices al programa cuantos equipos participan, con lo que cada jornada ya sabe cuantos partidos se jugaran... asi que para definirle una jornada te presenta un grid con dos columnas vacias y otro con una columna donde están los equipos, basta con ir llevando equipo por equipo a su casilla correspondiente para tener la jornada definida (Drag and Drop).
En tu caso, podrias presentar un grid de dos columnas en el que la columna de la izquierda contenga los personajes y la otra columna vacia. Un segundo grid con los cantantes serviria como la caja de los puzzles: para guardar las piezas mientras montamos el puzzle ;-)
Saludos
Hola Jaime,
¿Por qué te complicas la vida? ¿No te vale con una lista de todos los cantantes que intervienen y el personaje que interpretan? Esa lista la podras ordenar por Cantante o Personaje, lo que quiera el usuario y ya esta listo.
La lista la puedes meter en un browse.
Un abrazo,
Jose Alfonso Suárez
Fernando,
Eso del drag and drop sería ideal. Igual miro a ver si puedo hacer eso, estaría muy bien, aunque en caso de no poder, la idea es la misma con un cuadro de texto (Edit) y un botón que vaya metiendo los nombres de los cantantes que escribo a la segunda columna (la vacía) del browse con personajes y cantantes. Gracias.
Jose Alfonso,
Siempre me dices que me complico la vida... :-(
Si yo no lo hago por gusto, jejeje, lo que pasa es que en este caso estoy convencido de que se necesita lo que quiero hacer. No puedo poner una lista de personajes y cantantes sin más, porque es el usuario el que tiene que asignarle a cada personaje de la lista que yo le doy (aparece al elegir la ópera), el cantante que él quiera.
Muchas gracias por vuestros comentarios.