Como faço para fundir TMainMenu do que usar imagelists separadas e reter as imagens corretas por cada item de menu?

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

  •  02-07-2019
  •  | 
  •  

Pergunta

Eu tenho um programa com duas classes TForm e ter adicionado um TMainMenu a eles cada um. Estou em seguida, tentar fundi-los dinamicamente em tempo de execução.

O meu problema é que quando eles se fundem os itens de menu na fundiram em TMainMenu agora exibir imagens armazenadas na imagelist na forma em que foram fundidos em vez das imagens armazenadas na imagelist de sua forma original.

Estou fazendo algo errado? há um trabalho em torno de modo que os do item de menu de continuar a usar o imagelist na forma eles se originaram?

Eu uso o fundiu-in formulário em uma série de projetos, caso contrário, um único imagelist compartilhada faria sentido.

Se eu preciso esclarecer alguma coisa, por favor, diga.

Graças

Peter

Foi útil?

Solução

A maneira que eu lidar com isso é ter uma lista única imagem em um datamodule, e, em seguida, que incluem em cada formulário para que eles possam compartilhar esse único conjunto de ícones.

Outras dicas

Eu tinha exatamente o mesmo problema há um tempo atrás, mas eu também funcionou em outros problemas menu de mesclagem porque meu aplicativo foi MDI, então eu decidi fazer as coisas de uma maneira completamente diferente.

O que você pode tentar, no entanto, está adicionando dinamicamente imagens de uma forma para ImageList da outra forma, e 'redirecionando' os ImageIndexes. Pode ser um pouco complicado, mas deve funcionar.

O que eu finalmente acabou com, está usando o href="http://jrsoftware.org/tb2k.php" rel="nofollow noreferrer"> pacote para todos os meus menus e barras de ferramentas. Você pode então baixar um muito bom pedaço de código, chamado TB2Merge , que faz exatamente o que você quer. Ele também faz uso de algumas infra-estrutura da Toolbar2000 para vincular a imagem de um item de menu para um TImageList diferente --- infra-estrutura que não está presente no TMainMenu da VCL. Não deixe de ler a documentação do TB2Merge completamente!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top