Danke sehr! Es ist zwar nicht ganz sauber getrennt, aber lesbar.
Dein Fehler liegt in diesem Vorgehen:
Mit der folgenden Zeile erstellst du eine Instanz von Hst_Data_In:
Delphi-Prism-Quelltext
1:
| h_s_Data_In := new WindowsApplication4.hst_server.Hst_Data_In; |
Das hat aber keinerlei Auswirkungen darauf, was mit den darin enthaltenen Teilen passiert. Genauer: Diese werden alle auf 0 bzw. null o.ä. initialisiert. Deshalb ist hst_in noch auf null gesetzt; ein Zugriff darauf liefert die NullReferenceException.
Es muss also zuerst etwas ausgeführt werden (vermutlich eine Methode, die einen Zugriff vornimmt), damit das Array hst_in initialisiert wird. Aber auch das reicht noch nicht, sondern die einzelnen Elemente des Arrays müssen initialisiert werden. (Die Methode, die das Array erzeugt, liefert vermutlich auch gleich Elemente mit; aber das kann ich "von außen" nicht prüfen.)
Erst wenn sowohl hst_in als auch hst_in[0] mit Inhalt versehen sind, kannst du darauf zugreifen. Im Zweifelsfall muss vorher immer geprüft werden, ob es ungleich null ist.
Übrigens: Wenn du solch einen Laufzeitfehler erhältst, kann mit try-except-finally die Ursache gezielt abgefragt werden. Mit ex.ToString() erhält man in der Regel mehr und genauere Informationen als mit ex.Message.
Gruß Jürgen