¿Cómo fusiono TMainMenu's que usa listas de imágenes separadas y retiene las imágenes correctas en cada elemento del menú?

StackOverflow https://stackoverflow.com/questions/152405

  •  02-07-2019
  •  | 
  •  

Pregunta

Tengo un programa con dos clases TForm y les he agregado un TMainMenu a cada una. Luego estoy intentando fusionarlos dinámicamente en tiempo de ejecución.

Mi problema es que cuando combinan los elementos del menú en el menú combinado en TMainMenu ahora se muestran las imágenes almacenadas en la lista de imágenes en la forma en que se fusionaron en lugar de las imágenes almacenadas en la lista de imágenes de su forma original.

¿Estoy haciendo algo mal? ¿Hay algún problema para que los elementos del menú continúen usando la lista de imágenes en la forma en que se originaron?

Utilizo la forma combinada en varios proyectos, de lo contrario una sola lista de imágenes compartida tendría sentido.

Si necesito aclarar algo, por favor diga.

Gracias

Peter

¿Fue útil?

Solución

La forma en que lo manejo es tener una sola lista de imágenes en un módulo de datos, y luego incluirla en cada formulario para que puedan compartir ese único conjunto de iconos.

Otros consejos

Hace un tiempo tuve exactamente el mismo problema, pero también tuve otros problemas de combinación de menú porque mi aplicación era MDI, así que decidí hacer las cosas de una manera completamente diferente.

Sin embargo, lo que podría probar es agregar dinámicamente las imágenes de un formulario a ImageList del otro formulario, y "redirigir" las ImageIndex es. Puede ser un poco complicado, pero debería funcionar.

Lo que finalmente terminé con, es usar el paquete Toolbar2000 para todos mis menús y barras de herramientas. A continuación, puede descargar un código muy bonito, llamado TB2Merge , que hace exactamente lo que quieres. También hace uso de parte de la infraestructura de Toolbar2000 para vincular la imagen de un elemento del menú con una infraestructura diferente TImageList --- que no está presente en TMainMenu de VCL. ¡Asegúrese de leer la documentación de TB2Merge detenidamente!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top