Einzelnen Beitrag anzeigen

Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Warum kann Record-Property nicht geschrieben werden?

  Alt 4. Dez 2007, 14:38
Hallo!

Folgender Aufbau:

Delphi-Quellcode:
type
  TMyData = record
    Data1: Boolean;
    Data2: String;
  end;

  TMyObject = class(TObject)
  protected
    FTest: Boolean;
    FData: TMyData;
  public
    property Test: Boolean read FTest write FTest;
    property Data: TMyData read FData write FData;
  end;

...
procedure Test;
var myObject: TMyObject;
begin
  myObject := TMyObject.Create;
  myObject.Test := true;
  myObject.Test := options.Data.Data1;
  myObject.Data.Data1 := true; //[Pascal Fehler] Der linken Seite kann nichts zugewiesen werden
end;
Bei der Anweisung myObject.Data.Data1 := true; kommt es wie beschrieben zu dem Fehler "Der linken Seite kann nichts zugewiesen werden". Ich verstehe nicht warum.

Die Property ist doch klar mit write als schreibbar markiert. Warum kann Data1 also nichts zuweisen? Mir ist dieses Problem mit Records vorher noch nie aufgefallen, allerdings habe ich auch noch nie auf diesen speziellen Fall geachtet...

Wie kann ich also Data.Data1 etwas zuweisen?

Besten Dank
Ares
  Mit Zitat antworten Zitat