El problema es que el hecho de filtrar el TActionList por categorias justamente requiere que hagas la comparacion para todas las acciones.
Esto no lo podes resolver con el TActionList, vas a tener que crear tu propia clase y llevar aparte una estructura (se me viene a la mente el TDictionary) categoria - lista de acciones de la categoria
Igualmente como te comente en el otro post me parece que estas programando defensivamente y eso no es nada bueno.
Recorrer una lista de acciones (a menos que tengas, no se, 100.000? quiza mas) no vas a poder tener nunca problemas en cuanto a la velocidad; es mas de hecho hasta podria ser un arma de doble filo (filtrar --> luego recorrer y hacer x) o bien usas mas memoria innecesariamente (TDictionary), tambien complicas la solucion, ahora tenes que mantener varias listas de acciones y no solo una
Saludos
PD: Realmente tenes problema de eficiencia en tu aplicacion? O simplemente, "optimizar nunca esta de mas" como en el otro post?
|