Einzelnen Beitrag anzeigen

Benutzerbild von mh166
mh166

Registriert seit: 14. Nov 2004
Ort: Chemnitz
443 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Record-Member kann nichts zugewiesen werden?

  Alt 5. Apr 2013, 11:32
Hallo Leute,

ich steh ein wenig auf dem Schlauch: ich habe einen Record definiert und diesen einer Klasse inkl. zugehöriger Eigenschaft (r/w!) zugewiesen. Wenn ich in meinem Code jetzt über diese Eigenschaft die Member des Records beschreiben will, geht das schief.

Lange Rede, kurzer Code:
Delphi-Quellcode:
  TVanitySettings = record
    Number: String;
    PIN: String;
    Password: String;
  end;

  TSettings = class
    // ...
    procedure loadSettings;
  private
    FVanity: TVanitySettings;
  public
    property Vanity: TVanitySettings read FVanity write FVanity;
  end;

// ...

procedure TSettings.loadSettings;
var
  Ini: TIniFile;
begin
  Ini := TIniFile.Create(FSettingsPath);

  Vanity.Number := Ini.ReadString('0700', 'Nummer', '');
  // ..
end;
Jetzt bringt mir der Compiler nun bei der Zuweisung des gelesenen Strings die Fehlermeldung:
Zitat von Compiler:
[DCC Fehler] uVanityManagerCommon.pas(67): E2064 Der linken Seite kann nichts zugewiesen werden
In der Hilfe hab ich schon geschaut, und die war der Meinung, dass die Meldung sich auch auf Member von Records bezieht, sofern diese als read-only Eigenschaft deklariert sind. Ist aber ja bei mir nicht der Fall.

An sich kein großes Thema: greife ich direkt auf das Feld, statt auf die Eigenschaft zu, dann kann ichs natürlich problemlos befüllen. Aber das Ganze interessiert mich nun doch: wieso mag der Compiler den Code nicht?

Vielleicht hat ja einer eine Erleuchtung für mich und ich lern wieder mal was spannendes dazu. Oder ich hab mich einfach zu doof angestellt. Wäre auch möglich.

Grüße,
mh166
Tiefgründige Sätze unserer Zeit:
Zitat von Luckie:
Und diesen Token zur Laufzeit zu modifizieren würde bedeuten, dass du zur laufzeit das Token ändern musst.
  Mit Zitat antworten Zitat