Rawi hat folgendes geschrieben : |
Diese Prozedur wird immer beim Starten des Programms gestartet (Form1.Create). |
Das funktioniert deshalb nicht, weil:
Rawi hat folgendes geschrieben : |
[...] die anderen Formulare erst später erstellt werden |
Genau das ist der Grund! Form5 existiert im
Create von Form1 noch nicht.
Rawi hat folgendes geschrieben : |
Wie kann ich das Problem beheben? |
Du musst das, was Form5 mit Memo2 macht, in eine eigene Prozedur auslagern, dabei darfst du weder auf Form5 noch auf eine Komponente von Form5 zugreifen. Schreibe die Prozedur so, dass sie sowohl von Form5 als auch von Form1 genutzt werden kann und gib dort ein
TMemo als Konstante an.
Alternativ kannst du, wenn das in deinem Programm möglich ist, in Prozedur
TForm1.FormShow auf Form5 zugreifen, oder du versuchst es in der
OnActivate-Prozedur von Form1. In beiden Fällen musst du unter Umständen Vorkehrungen treffen, dass der Code nicht bei jedem Eintritt des OnShow- bzw. OnActivate-Ereignisses ausgeführt wird, zB. mit einer Boolean-Variable.
Die sauberste Lösung ist aber eine eigene, separate Prozedur! Ich würde es so machen.
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!