Das ist bei Records halt so, denn beim Zuweisen einer Record-Eigenschaft (oder einem Feld) wird automatisch eine neuer Record erzeugt.
Das hier würde funktionieren
Delphi-Quellcode:
procedure TSettings.loadSettings;
var
Ini: TIniFile;
LVanity : TVanitySettings;
begin
Ini := TIniFile.Create(FSettingsPath);
LVanity.Number := Ini.ReadString('0700', 'Nummer', '');
Vanity := LVanity;
// ..
end;
Am wenigsten Stress hast du, wenn du anstatt eines Records eine Klasse nimmst
Delphi-Quellcode:
TVanitySettings = class
private
FNumber: String;
FPIN: String;
FPassword: String;
public
property Number : string read FNumber write FNumber;
property PIN : string read FPIN write FPIN;
property Password : string read FPassword write FPassword;
end;
TSettings = class
// ...
procedure loadSettings;
private
FVanity: TVanitySettings;
public
constructor Create;
destructor Destroy; override;
property Vanity: TVanitySettings read FVanity;
end;
// ...
constructor TSettings.Create;
begin
inherited;
FVanity := TVanitySettings.Create;
end;
destructor TSettings.Destroy;
begin
FVanity.Free;
inherited;
end;
procedure TSettings.loadSettings;
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(FSettingsPath);
Vanity.Number := Ini.ReadString('0700', 'Nummer', '');
// ..
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)