Worauf Redeemer hinauswill: es ist schlechter Stil, aus einem Formular heraus auf Komponenten eines anderen Formulars zuzugreifen. Angenommen, Du hast ein Eingabeformular für einen Namen in einer Formklasse "TEingabeForm". Aus dem Hauptformular heraus möchtest Du jetzt den Namen ändern. Da gibt es z.B. folgende Möglichkeit:
Delphi-Quellcode:
procedure THauptForm.EditName;
begin
EingabeForm.EditName.Text := FName;
if EingabeForm.ShowModal = mrOK then
FName := EingabeForm.EditName.Text;
end;
So weit, so gut, aber wenn Du plötzlich auf die Idee kommst, statt eines Edits eine ComboBox mit einer Auswahlliste zu verwenden, muss die ganze Logik für das Eingabeformular im Hauptformular geändert werden. Schön ist anders. Das kann man beispielsweise umgehen, indem man dem Eingabeformular eine Eigenschaft spendiert.
Delphi-Quellcode:
type
TEingabeForm = class(TForm)
...
private
function GetUserName: string;
procedure SetUserName(const Value: string);
...
public
property UserName: string read GetUserName write SetUserName;
...
end;
...
function TEingabeForm.GetUserName: string;
begin
Result := EditName.Text;
end;
procedure TEingabeForm.SetUserName(const Value: string);
begin
EditName.Text := Value;
end;
Im Hauptformular sieht der Code dann so aus:
Delphi-Quellcode:
procedure THauptForm.EditName;
begin
EingabeForm.UserName := FName;
if EingabeForm.ShowModal = mrOK then
FName := EingabeForm.UserName;
end;
Wie gesagt, solltest Du jetzt auf eine ComboBox umsteigen, musst Du den Code (sprich: Getter und Setter) nur im EingabeFormular ändern, also da, wo es hingehört, im Hauptformular ändert sich nichts.