Как раз быстрый взгляд через ваше Кодего, почему вы создаете эти meniutems и после этого разрушаете их в такой же процедуре?
Кажется, что будет дорога, котор вы делали ее в противном случае правильно -- вы задаете имя eventhandler к случаю, как внутри
mi2.OnClick: = Check1Click;
После этого когда потребитель щелкает дальше mi2, Check1Click получает вызванным
Вы можете после этого использовать параметр прислужника для того чтобы увидеть которая кнопка вызвала его.
Однако, после вас сказал mi2.OnClick: = Check1Click; в вашем источник-Кодем, вы немедленно разрушаете его, т.е. mi2.destroy;