Einzelnen Beitrag anzeigen

freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
269 Beiträge
 
Delphi 11 Alexandria
 
#1

Published TStringList-Property lädt Daten zur Designtime nicht

  Alt 25. Jun 2018, 08:59
Hallo zusammen,

ich habe schon lange eine um viele Funktionen erweiterte von TAdvStringGrid abgeleitete Komponente.

Nun habe ich eine TStringList-Property hinzugefügt, mit der man zur Entwurfszeit bereits Daten in das Grid füllen können soll.

Das funktioniert auch eigentlich, aber wenn ich das Projekt neu öffne werden die Daten, die korrekt in der dfm-Datei gespeichert werden, nicht wieder in das Grid übertragen.

Hier die nötige Codeabschnitte:

Delphi-Quellcode:
type
  TMyAdvStringGrid = class(TAdvStringGrid)
  private
    FDefaultData: TStringList;
    procedure SetDefaultData(const Value: TStringList);
  published
    property DefaultData: TStringList read FDefaultData write SetDefaultData;
  end;

procedure TMyAdvStringGrid.SetDefaultData(const Value: TStringList);
begin
  FDefaultData.Assign(Value);

  if FDefaultData.Text <> 'then
    StringToGrid(FDefaultData.Text); // füllt die Daten in das Grid
end;
(Natürlich wird FDefaultData auch im Constructor erzeugt und später wieder freigegeben)

Die Daten werden beim Öffnen des Projekts zwar korrekt von der dfm-Datei in FDefaultData eingelesen, es wird dabei aber offenbar nicht der entsprechende Setter (SetDefaultData) benutzt...

Kann mir hier jemand weiterhelfen?

Vielen Dank im Voraus!
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat