Boah, mattttttttttttze

Was sind das denn für Fragen?
Die "UrlClick"-Routine kann unverändert bleiben, weil du sie ja ganz offensichtlich nicht verändert sondern einfach nur aufgerufen hast, s.:
Quelltext
1:
| mi.OnClick := UrlClick; |
Durch die Benutzung des "OnClick" ist die Syntax für die Funktion (oder besser: Prozedur) ja bereits vorgegeben.
Wenn du deine "Menuladen"-Routine auch noch als private Form-Prozedur deklarierst:
Quelltext
1:
| procedure TDEINEFORM.Menuladen(aFilename: string); |
kannst du a) die Angabe des Popupmenüs direkt im Code unterbringen, weil die Prozedur nun ja auf die Form-Komponenten zugreifen kann (oder du lässt es so wie Tino vorschlägt, was die Funktion universell für andere Programme einsetzbar machen würde), und b) dürfte es keine Probleme geben, wenn du die "OnClick"-Funktion festlegst (s. Codeauszug oben)