![]() |
Published TStringList-Property lädt Daten zur Designtime nicht
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:
(Natürlich wird FDefaultData auch im Constructor erzeugt und später wieder freigegeben)
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; 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! |
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Probierst mal so?
Delphi-Quellcode:
protected
procedure Loaded; override; .. procedure TMyAdvStringGrid.SetDefaultData(const Value: TStringList); begin FDefaultData.Assign(Value); Loaded; end; procedure TMyAdvStringGrid.Loaded; begin inherited; if FDefaultData.Text <> '' then StringToGrid(FDefaultData.Text); end; |
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Zitat:
|
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Ich habe ehrlich gesagt keine Ahnung, wie man eine installierte Komponente debugt...
Aber Björks Antwort hat mir bereits sehr geholfen: Vielen Dank! Die Prozedur Loaded kannte ich echt noch nicht - und das nach fast zwanzig Jahren Delphientwicklung... Allerdings werde ich Loaded nicht explizit so aufrufen: Durch das inherited würden da viel zu viel anderer Code mit ausgeführt. |
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Hallo,
Zitat:
Ob dann aber das Loaded klappt, müsstest Du ausprobieren. |
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Zitat:
Mit dem Loaded bin ich deiner Meinung: Das sollte auf keinen Fall im Setter aufgerufen werden. |
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Zitat:
|
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Zitat:
> Du startest ein zweites Delphi, welches du debuggst, inkl. deiner Komponente. :zwinker: Tipp: Bei deiner BPL > Menü > Start > Parameter * Host-Anwendung: C:\...\bin\bds.exe * Parameter: -np -pDelphi |
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Zitat:
|
AW: Published TStringList-Property lädt Daten zur Designtime nicht
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 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