AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList(en) in DMF serialisieren

Ein Thema von stahli · begonnen am 30. Sep 2016 · letzter Beitrag vom 1. Okt 2016
 
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#5

AW: TStringList(en) in DMF serialisieren

  Alt 1. Okt 2016, 08:03
Hallo,

so gehts
Delphi-Quellcode:
unit TestComp;

interface

uses
  System.Classes;

type

  TTestComp = class(TComponent)
  private
    fX1: String;
    fX2: Word;
    fX3: String;
    fSL_A: TStringList;
    fSL_B: TStringList;
    fSL_C: TStringList;
    fSL_D: TStringList;
    procedure SetSL_A(const Value: TStringList);
    procedure SetSL_B(const Value: TStringList);
    procedure SetSL_C(const Value: TStringList);
    procedure SetSL_D(const Value: TStringList);
  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property X1: String read fX1 write fX1;
    property X2: Word read fX2 write fX2;
    property X3: String read fX3 write fX3;
    property SL_A: TStringList read fSL_A write SetSL_A;
    property SL_B: TStringList read fSL_B write SetSL_B;
    property SL_C: TStringList read fSL_C write SetSL_C;
    property SL_D: TStringList read fSL_D write SetSL_D;
  end;

procedure Register;

implementation

uses
  System.SysUtils;

procedure Register;
begin
  RegisterComponents('TestComp', [TTestComp]);
end;

{ TTestComp }

constructor TTestComp.Create(AOwner: TComponent);
begin
  inherited;
  fSL_A := TStringList.Create;
  fSL_B := TStringList.Create;
  fSL_C := TStringList.Create;
  fSL_D := TStringList.Create;
end;

destructor TTestComp.Destroy;
begin
  FreeAndNil(fSL_A);
  FreeAndNil(fSL_B);
  FreeAndNil(fSL_C);
  FreeAndNil(fSL_D);
  inherited;
end;

procedure TTestComp.SetSL_A(const Value: TStringList);
begin
  fSL_A.Assign(Value);
end;

procedure TTestComp.SetSL_B(const Value: TStringList);
begin
  fSL_B.Assign(Value);
end;

procedure TTestComp.SetSL_C(const Value: TStringList);
begin
  fSL_C.Assign(Value);
end;

procedure TTestComp.SetSL_D(const Value: TStringList);
begin
  fSL_D.Assign(Value);
end;

end.
Problem ist der Designtime-Editor. Der gibt ein neues Objekt (vermutlich TMemo.Lines) ins Property und geht davon aus das die Componente die Referenz nicht übernimmt und gibt es anschliesend frei.

einbeliebigername.
  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 19:33 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