Erstens ist es keine gute Idee so von einem Fenster auf ein anderes zuzugreifen. Besser wäre, wenn du das über Properties und Events regelst...
Zum Problem:
Du schreibst Main.TEdit... das heißt du möchtest auf die Klasse TEdit in Unit Main castten. Das willst du aber gar nicht. Was du möchtest ist, die Komponente in deinem anderen Formular finden.
Dann musst du aber auch FindComponent dieses Formulars aufrufen und nicht das deines eigenen Formulars. Sprich Main.FindComponent.
Besser wäre aber so etwas:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| type TOnSelectEntry = procedure(Sender: TObject; const ANewValue: String) of object;
TPausMusik = class(TForm) private FOnSelectEntry: TOnSelectEntry; public property OnSelectEntry: TOnSelectEntry read FOnSelectEntry write FOnSelectEntry; end;
...
procedure TPausMusik.ListBox1DblClick(Sender: TObject); begin if Assigned(FOnSelectEntry) then FOnSelectEntry(Self, 'Eintrag'); end; |
Und in deinem Hauptformular:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type TMain = class(TForm) protected procedure SelectEntryEvent(Sender: TObject; const ANewValue: String); end;
PausMusik.OnSelectEntry := SelectEntryEvent;
procedure TMain.SelectEntryEvent(Sender: TObject; const ANewValue: String); begin Edit1.Text := ANewValue; end; |
Auf die Weise muss das zweite Formular dein erstes gar nicht kennen, könnte also auch z.B. an anderer Stelle benutzt werden.