A ver si entendí correctamente
morfeo:
Imagino que tienes una tabla en la bd del estilo
Código:
----------------------
texto | procedimiento
----------------------
texto1 | procedimiento1
texto2 | procedimiento2
texto3 | procedimiento3
... | ...
-----------------------
donde el campo
texto sería el texto que aparece en el ítem y
procedimiento el nombre del procedimiento que debe ejecutarse al hacer
click en el ítem.
Como dice
jachguate, no puedes ejecutar un procedimiento por su nombre en un lenguaje compilado. Esto no es una limitante de lenguajes de este tipo, es sólo que las cosas se hacen de otra forma.
Fíjate lo que requieres:
Una forma de asociar el nombre del procedimiento con el procedimiento en sí.
Esto ya existe en Delphi: ActionList
Un ActionList es una lista de
acciones, cada cual con su correspondiente evento OnClick en donde pones el código que quieras y cada acción, como cualquier componente, tiene un
nombre. Este nombre es el que tomarías del campo
procedimiento de la tabla.
Con esto ya tienes una correspondencia entre los nombres y los procedimientos. Lo que falta es asociar cada acción al ítem que creas dinámicamente. Pero esto es fácil: cada MenuItem tiene una propiedad
Action a la que puedes asignar cualquier acción del ActionList. Al hacer
click en un ítem- el cual
no tiene asociado un evento OnClick -lo que se ejecuta es el evento OnClick de la acción asociada.
En resumen harías lo siguiente:
Usas una componente TActionList (de la paleta Standard) y la llenas con todas las acciones (TAction) que requieras asignando a cada una el nombre que le corresponda al de la tabla y codificando cada evento OnClick como requieras.
Al momento de construir dinámicamente el menú lees el registro que toque de la tabla, te fijas en el valor del campo
texto, recorres la lista de acciones del ActionList hasta encontrar la que lleve el mismo nombre y asignas la acción encontrada al ítem construido.
// Saludos