Hallo hzzm,
wenn ich dich richtig verstehe, dann versuchst du eine einfache Callback-Funktionalität zu realisieren, richtig? Du möchtest also in UnitX.pas deine MainForm aktualisieren.
Was an deinem Beispiel ungünstig ist, ist die globale Variable in der
Unit MyMainProxy. Diese könnte von jeder Stelle aus dem Programm überschrieben werden und dann wunderst du dich vllt später, weshalb etwas nicht funktioniert.
Eine einfache andere Möglichkeit wäre z.B. folgende:
Du erstellst eine Klasse in UnitX.pas, welche das Feld "FMMSetGUIValue: Procedure of Object;" enthält (public)
In der MyMain.pas erzeugst du diese Klasse und weißt dem Feld "FMMSetGUIValue" die Funktion "SetGUIStatusOn" zu.
Nun kannst du in UnitX.pas an jeder beliebigen Stelle FMMSetGUIValue aufrufen. Vergiss aber nicht vorher mit Assigned zu prüfen, ob dem Feld auch wirklich eine Funktion zugewiesen wurde.
Grüße
Headbucket