Ok, hier einige Vorschläge:
Ändere deine
Unit LANFS_KERNAL folgendermaßen ab:
- Entferne die Deklaration der Variablen LANFS_SYSTEM
- Entferne in der Methode TLANFS_KERNAL.Start den Bezeichner LANFS_SYSTEM. Die Zeile sollte dann so aussehen:
TCPServer1.OnExecute := ReceiveStream;
Da die Anweisung innerhalb einer Methode von TLANFS_KERNAL steht, ist die Angabe nicht notwendig. Wenn du mehrere Instanzen von TLANFS_KERNAL erzeugen möchtest, ist sie sogar falsch.
Wenn ich nichts übersehen habe, sollte die
Unit nach diesen Änderungen universeller verwendbar sein. Um sie zu nutzen, mußt du eine Instanz von TLANFS_KERNAL erzeugen. Die dazu notwendige Variable (die wir eben in der
Unit LANFS_KERNAL entfernt haben) vereinbarst du am besten im private-Abschnitt des Formulars TForm2. Das Erzeugen der Instanz gehört in die Methode FormCreate:
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
lanfs_system := TLANFS_KERNAL.Create;
lanfs_system.OnReceivedData := Form2.test; // hier passiert nun kein Fehler mehr :-)
end;
Zum Freigeben der Instanz benötigst du noch die Methode FormDestroy, die du auf die gleiche Weise wie FormCreate erstellen kannst. Sie sollte so aussehen:
Delphi-Quellcode:
procedure TForm2.FormDestroy(Sender: TObject);
begin
lanfs_system.Free;
end;
Versuche es einmal mit diesen Änderungen. Sollten noch Fehler auftreten, meldest du dich wieder.
Gruß Hawkeye