Auf die Objekte der Hauptanwendung von einer DLL aus ist einfach zuzugreifen. Im einfachsten Fall inkludierst Du die Units der Hauptanwendung in die DLL. Exportierst in der DLL eine Funktion, die z.B. Init(form : TForm1) heißt, und einem Objekt in der DLL die Referenz zuweist. Die Funktion rufst Du dann von der Hauptanwendung auf, und übergibst Self oder was auch immer als Parameter. Aber wie schon von MSCH erwähnt es gibt dann nur Probleme. Wenn Du so eine Art PlugIns für deine Anwendung schreiben willst, dann ist es besser eigene Klassen/Schnittstellen für die Hauptanwendung zu definieren, damit die Dlls auch nicht von der Entwicklungsumgebung abhängig sind (wegen VCL) wäre es noch besser wenn Die Hauptanwendung die ganzen Komponenten, die die DLL anfordert erzeugt. Noch besser ist es wenn Du ActiveX nimmst, aber da musst Du dich gut damit auskennen, weil Du vieles per Hand schreiben musst (also ohne den Typelibrary-Editor oder wie das heißt, weil die Funktionen nicht ausreichen).
Wenn der Text nicht verständlich war, poste ich irgenwann, wenn ich Zeit habe ein paar Beispiele.