A ver, qué significa que no se te ejecuta desde menú??? Porque si tu haces algo como esto, garantizo que funciona:
Código:
....
private
procedure MiProcedure(mis parametros);
....
implementation
.....
procedure TMiForm.MiProcedure(mis parametros);
begin
// aquí mi codigo
end;
procedure TMiForm.MiOpcionMenuOnClick(Sender: TObject);
begin
MiProcedure(Mis parametros);
end;
procedure TMiForm.MiBotonOnClick(Sender: TObject);
begin
MiProcedure(Mis parametros);
end;