Sind doch sehr einfache Klassen? Wenn andere Klassen oder Formulare eine Instanz davon bekommen sollen dann kann man z.B. die über den constructor mitschicken. Bei Formularen würde ich allerdings empfehlen, dann das Formular nicht automatisch zu erstellen sondern in FormCreate des Hauptformulars.
Beispiel:
Delphi-Quellcode:
TVstSettings = class
private
FEnabled: boolean;
public
property Enabled: boolean read FEnabled write FEnabled;
procedure LoadFromFile(const FileName: string);
procedure SaveToFile(const FileName: string);
procedure Clear;
end;
TDatabaseSettings = class
private
FName: string;
FPassword: string;
public
property Name: string read FName write FName;
property Password: string read FPassword write FPassword;
procedure LoadFromFile(const FileName: string);
procedure SaveToFile(const FileName: string);
procedure Clear;
end;
TSomeForm = class(TForm)
private
FDatabaseSettings: TDatabaseSettings;
public
constructor Create(AOwner: TComponent; Value: TDatabaseSettings); reintroduce; overload;
end;
TMainForm = class(TForm)
procedure FormCreate(Sender: TObject);
private
FDatabaseSettings: TDatabaseSettings;
end;
constructor TSomeForm.Create(AOwner: TComponent; Value: TDatabaseSettings);
begin
inherited Create(AOwner);
FDatabaseSettings := Value; // Kopplung;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
FDatabaseSettings := TDatabaseSettings.Create;
SomeForm := TSomeForm.Create(Self, FDatabaseSettings);
end;