Beim Aufruf eines Untermenüs wird ein OnClick ausgelöst? Aber nur weil du auch klickst, oder?
In dem MyMenuOnClick kannst du den Sender in eine TMenuItem-Variable casten (Item := (Sender as TMenuItem)) und da prüfen, ob er Untermenüs hat (weiß ich grad nicht aus dem Kopf, gibt da aber was wie ItemCount oder so). Wenn ja, wird die Funktion verlassen, wenn nein dann weiter.