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