Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Record-Member kann nichts zugewiesen werden?

  Alt 5. Apr 2013, 11:38
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)

Geändert von Sir Rufo ( 5. Apr 2013 um 11:42 Uhr)
  Mit Zitat antworten Zitat