![]() |
Records in Klassen als Property
Hallo ich habe folgendes Problem,
ich besitzte eine Klasse und einene Datentyp(record) dieser Datentyp beinhaltet verschiedene andere Datentypen.
Delphi-Quellcode:
Danke schonmal
..
THerstellerDaten = record GeraeteTyp :TASCII; Seriennummer :TASCII; Herstelldatum :TASCII; SensorTyp :TASCII; SoftwareVersion :TASCII; SoftwareDatum :TASCII; SoftwareRelease :Word; SoftwareSubRelease:Word; Sprache :Word; end; TTest = class(TObject) private fHerstellDaten:THerstellerDaten; public Herstellerdaten:THerstellDaten read fHerstellDaten write fHerstelldaten; ... // Wie kann ich nun auf den record schreibend in meine Objekt zugreifen?????????????? var myObj:TTest; begin myObj:TTest.Create; myObj.HerstellerDaten.Geraetetyp:='Typ XYZ'; // Das klappt nicht, aber warum???? .. Gruß DelphiManiac |
Re: Records in Klassen als Property
also erstmal fehlt bei dir das schlüsselwort "property" und zum anderen kann man Properties nur komplett lesen und komplett schreiben. Du musst also immer den kompletten Record zuweisen.
Grund das man nur komplett schreiben kann ist, das hinter einem Property SetMethoden stehen können und diese benötigen eben den kompletten Typ und nicht nur einen Teil. Übrigens: Formulierungen wie Zitat:
|
Re: Records in Klassen als Property
Geht doch:
Delphi-Quellcode:
Aber ich würde aus dem Record eine Klasse machen und die Objekte dann in einer Containerklasse verwalten.
type
TMyRecord = packed record FZahl: Integer; FString: String; end; TMyClass = class(TObject) private FMyRecord: TMyRecord; public property MyRecord: TMyRecord read FMyRecord write FMyRecord; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var MyClass: TMyClass; begin MyClass := TMyClass.Create; try MyClass.FMyRecord.FZahl := 8; MyClass.FMyRecord.FString := 'Foobar'; ShowMessage(MyClass.FMyRecord.FString + IntToStr(MyClass.FMyRecord.FZahl)); finally MyClass.Free; end; end; |
Re: Records in Klassen als Property
@Luckie: Bei dir geht es nur weil du direkt auf die Variable zugreifst und nicht über das Property (du nutzt FMyRecord anstelle von MyRecord)
|
Re: Records in Klassen als Property
Ups. :oops:
Nun ja, wenn man direkt auf das Feld zugreift, geht es jedenfalls. |
Re: Records in Klassen als Property
Zitat:
|
Re: Records in Klassen als Property
|
Re: Records in Klassen als Property
Hi,
das property habe ich hier beim abtippen vergessen.. der Zugriff auf meine einzelnen Elemente des Records im Objekt klappt doch. Die Codevervollständigung hatte es mir irgendwie nicht angezeigt, jetzt klappts aber... Danke nochmal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 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