![]() |
Record als Property beschreiben?
Hallo,
ich habe ein allgemeine Frage. In folgender Klasse
Delphi-Quellcode:
lege ich alle Variablen in ein Objekt, damit ich diese mit einem Property beschreiben kann. Wieso kann man denn da eigentlich keinen Record angeben?
TSpsData = class(TObject)
CycleTime: Cardinal; Counter1: Integer; Counter2: Integer; end; TSpsTest = class(TThread) private { Private-Deklarationen } FDataRead: TSpsData; FDataWrite: TSpsData; public property DataRead: TSpsData read FDataRead; property DataWrite: TSpsData read FDataWrite write FDataWrite; end; |
Re: Record als Property beschreiben?
|
Re: Record als Property beschreiben?
kurz gesagt: sowas ist bedingt (also fast nie) möglich
Du kannst nur ganze Records zuweisen, abe keine einzelnen Recordteile. Delphi macht aus (unter der Voraussetzung TSpsData ist ein Record)
Delphi-Quellcode:
SpsTest.DataWrite.Counter2 := x;
Delphi-Quellcode:
Delphi spricht entwder den Setter oder den Getter an ... niemals Beides (leider).
property DataWrite: TSpsData read FDataWrite write GetDataWrite;
// GetDataWrite = 'nen symbolischer Getter, damit man es besser erkennt SpsTest.GetDataWrite.Counter2 := x; bzw. InternalTempVar := SpsTest.GetDataWrite; InternalTempVar.Counter2 := x; da hier praktisch zuerst gelesen wird, wird auch nur der Getter genutzt und da hier nur eine TempVariable geändert wird, landen die Daten nie in der Klasse. |
Re: Record als Property beschreiben?
Danke, das habe ich gestern bei meiner Suche nicht gefunden. :thumb:
Dann bleibt TSpsData eine Klasse, damit funktioniert es ja. Es hatte mich gestern echt verwirrt, dass das nicht funktioniert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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