AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Komponenten(struktur) serialisieren mit WriteComponentResFile?
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten(struktur) serialisieren mit WriteComponentResFile?

Ein Thema von Zacherl · begonnen am 8. Dez 2013 · letzter Beitrag vom 8. Dez 2013
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Komponenten(struktur) serialisieren mit WriteComponentResFile?

  Alt 8. Dez 2013, 21:30
Hallo zusammen,

ich spiele grade mit WriteComponentResFile rum und würde gerne eine Instanz von TComponent serialisieren. Soweit so gut. Erstelle ich mir folgende Klasse, kann ich deren Eigenschaften wunderbar speichern und auch wieder laden:
Delphi-Quellcode:
type
  TMyRootClass = class(TComponent)
  private
    FX: Integer
  published
    property X: Integer read FX write FX;
  end;
Nun möchte ich aber einen Schritt weiter gehen und (im Style vom Formulardesigner) eine Klasse mit diversen Child Komponenten speichern. Bei meinen Tests habe ich verschiedene Szenarien ausprobiert:
Delphi-Quellcode:
type
  TMyRootClass = class(TComponent)
  published
    A1: TComponent;
  end;
  { ... }
  R := TMyRootClass.Create(nil);
  A := TComponent.Create(R);
  A.Name := 'A1'; { <-- sorgt indirekt dafür, dass die published property "A1" des Owners (R) auf die Instanz A gesetz wird }
Funktioniert NICHT
Delphi-Quellcode:
type
  TMyRootClass = class(TWinControl)
  published
    A1: TWinControl;
  end;
  { ... }
  R := TMyRootClass.Create(nil);
  A := TWinControl.Create(R);
  A.Name := 'A1'; { <-- sorgt indirekt dafür, dass die published property "A1" des Owners (R) auf die Instanz A gesetz wird }
Funktioniert NICHT
Delphi-Quellcode:
type
  TMyRootClass = class(TWinControl)
  published
    A1: TWinControl;
  end;
  { ... }
  R := TMyRootClass.Create(nil);
  A := TWinControl.Create(R);
  A.Name := 'A1'; { <-- sorgt indirekt dafür, dass die published property "A1" des Owners (R) auf die Instanz A gesetz wird }
  A.Parent := R;
FUNKTNIONIERT

Jetzt meine Frage:
Wie entscheidet Delphi, ob ein published Feld, welches von TComponent ableitet serialisiert wird, oder nicht? Scheinbar werden die Felder standardmäßig nur gesichert, wenn die Komponente im Feld von TWinControl ableitet UND den Parent gesetzt hat.

Kann ich dieses Verhalten in meinen von TComponent abgeleiteten Klassen beeinflussen (ich kann in meinem Falle nicht von TWinControl ableiten)?

Bin dankbar für jede Antwort
Zacherl
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz