Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Superobject und Objekte

  Alt 2. Mai 2017, 07:59
Moin...
Warum steht ihr so auf Records. In Verbindung mit Klassen und Properties gibt es immer Probleme. Imho erst Recht mit Serialisieren. (Sichwort Beispiel: Der linken Seite kann nichts zugewiesen werden.)
Weil:

* Record ->Strukturtype zu reinen Speicherung von strukturierten Daten
* Class -> Strukturtype für Objekte (Daten+Methoden zu deren Verarbeitung)

Im Ursprungsversuch hatte ich die Eigenschaften ja eigentlich auch direkt in TOptions, was aber zum gleichen Problem führte.
Versuch es mal hiermit:
Delphi-Quellcode:
type
  TOptionsOpts = (ooOne, ooTwo, ooThree);

  TOptionsData = class
  private
    FVal1: WideString;
    FVal2: Integer;
    FVal3: Double;
    FVal4: TOptionsOpts;
  public
    property Val1: WideString read FVal1 write FVal1;
    property Val2: Integer read FVal2 write FVal2;
    property Val3: Double read FVal3 write FVal3;
    property Val4: TOptionsOpts read FVal4 write FVal4;
  end;

  TOptions = class
  private
    FData: TOptionsData;
  protected
  public
    procedure ClearData;
    procedure ResetToDefault;
    procedure SaveToJson(Filename: WideString);
    procedure LoadFromJson(Filename: WideString);
  published
    constructor Create;
    destructor Destroy; override;
    property Data: TOptionsData read FData write FData;
  end;

implementation

constructor TOptions.Create;
begin
  FData := TOptionsData.Create;
end;

destructor TOptions.Destroy;
begin
  FData.Free;
  inherited;
end;
...
->Marshalling error beim laden.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat