![]() |
array of record in class
Hallo!
Ich bin gerade dabei, mein Programm etwas objektorientierter zu gestalten, habe aber noch keine Erfahrungen mit Klassen etc. In meinem Programm nutze ich einen array of record, in welchem verschiedene Daten gespeichert sind. Dieser array soll auf verschiedene Arten ausgewertet werden und dazu möchte ich eine Klasse nutzen. Ich habe es leider nicht herausfinden können, wie die Klasse aufgebaut sein muss, damit die Definition eines records vorhanden ist, dann ein dynamisches array of record, in welchem die Daten stehen und dann verschiedene Funktionen, die die Auswertung für die Daten liefern. Vielleicht könnt ihr mir ja auch andere Lösungen für das Problem vorschlagen, denn ich bin wie gesagt mit der OOP noch gänzlich unerfahren. Vielen Dank für Eure Hilfe! |
Re: array of record in class
Zeig uns doch ein wenig Quellcode, damit wir dir konkrete Ratschläge geben können.
Records sind übrigens konstrukte, die man idR durch Klassen ersetzt, wenn man 100% OOP programmiert. Ersetze also erstmal das Record durch eine Klasse. Die Elemente sind dann Felder mit der Sichtbarkeit public. Beachte! Eine Klasse muss in Zukunft erstellt (instanziiert) werden und nicht einfach so wie ein Record verwendet werden. Vorher:
Delphi-Quellcode:
Nachher:
type
TKoordinate = record x: Integer; y: Integer; end; procedure MeineFunktion; var k: TKoordinate; begin k.x := 5; k.y := 3; end;
Delphi-Quellcode:
Bei deiner Verwaltungsklasse sagst du dann einfach sowas:
type
TKoordinate = class(TObject) public x: Integer; y: Integer; end; procedure MeineFunktion; var k: TKoordinate; begin k := TKoordinate.Create(); try k.x := 5; k.y := 3; finally k.free; end; end;
Delphi-Quellcode:
Ich denke, die Deklaration von TKoordinatenArray ist das, was du gesucht hast. Eine solche Typdeklaration ist wichtig, wenn du z.B. einen Array of Irgendwas als Funktionswert zurückgeben willst.
type
TKoordinatenArray = array of TKoordinate; // dynamischer Array TVerwaltungsklasse = class(TObject) private meinArray: TKoordinatenArray; public procedure machWasMitMeinemArray; end; procedure TVerwaltungsklasse.machWasMitMeinemArray; begin //meinArray... end; Falsch:
Delphi-Quellcode:
Richtig:
function MyFunction: array of TObject;
Delphi-Quellcode:
Gruß
type
TObjectArray = array of TObject; function MyFunction: TObjectArray; blackdrake |
Re: array of record in class
Man könnte dann den Array noch durch eine Liste ersetzen
|
Re: array of record in class
Zitat:
|
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