Domanda

Sto cercando di unire due menu principali insieme, ma sto avendo problemi per ottenere il risultato giusto con elementi secondari. Sto utilizzando la proprietà groupIndex sulle mie MenuItems per controllare la fusione / inserimento.

Menu1 (con groupindices) è come questo

  • File = 10
    • Apri = 11
    • Chiudi = 12
  • Modifica = 20
    • Cut = 21
    • Incolla = 22
  • Aiuto = 90
    • A proposito di = 91

Menu2 è come questo

  • Modifica = 20
    • Cancella = 23
  • Widget = 30
    • Widget1 = 31
    • Widget2 = 32

E sto facendo

  Menu1.Merge(Menu2);

Voglio il menu combinati per avere un nuovo menu in alto "Widget" e un nuovo comando "Cancella" nel menu Modifica. "Widget" sta lavorando bene, ma il menu Modifica ha perso il taglia e incolla, che non era quello che volevo.

Come posso fermare i comandi tagliare e incollare da scomparire?

È stato utile?

Soluzione

La funzione di unione menù a Delfi funziona un po 'diverso rispetto a quello che ci si aspetta: è non ricorsiva (purtroppo!). Ciò significa che quando si chiama Menu1.Merge, menu "Modifica" di Menu1 ottiene sostituito di Menu2 di.

Sono disponibili due opzioni:

  • Aggiungi "Taglia" e "Incolla" manualmente per Menu2.
  • Scrivi la tua funzione Merge.

Ho avuto lo stesso problema qualche tempo fa (vedi questa domanda SO ):

  

Quello che alla fine ho finito con, è   usando il    Toolbar2000   pacchetto per tutti i miei menu e barre degli strumenti.   È quindi possibile scaricare una bella   pezzo di codice, chiamato    TB2Merge ,   che fa esattamente quello che vuoi.

Si potrebbe anche basare qualsiasi codice di unione di menu personalizzato-scritto su TB2Merge, immagino ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top