Just a quick look through your code, why are you creating these meniutems and then destroying them in the same procedure?
The way you've done it otherwise seems to be correct -- you assign the name of the eventhandler to the event, as in
mi2.OnClick := Check1Click;
Then when the user clicks on mi2, Check1Click gets called
You can then use the Sender parameter to see which button called it.
However, after you said mi2.OnClick := Check1Click; in your source-code, you immediately destroy it, i.e. mi2.destroy;