![]() |
Elementzugriff auf einer Klasse ohne Funktionen
Servus,
ich habe folgendes Problem: Ich habe einen Datentyp TComplex, der aus einer Real und einer imaginär Zahl besteht. Von diesem Datentyp brauche ich ein 3D-Array. Eigentlich kein Problem:
Delphi-Quellcode:
oder eleganter über den Umweg mir ein 2DArray Typ und ein 1DArray Typ zu definieren.
type
TComplex3Darray = array of array of array of TComplex; Jetzt will ich aber mit diesem Array noch ein paar Sachen machen. Zum Beispiel in ein 1D Array umwandeln, speziell formatiert ausgeben, FFT drüberjagen, etc. Also eigentlich ist ne Klasse sinnvoller. Auch kein Problem:
Delphi-Quellcode:
usw.
type
CComplex3DArray = class private: Data : array of array of array of TComplex; public: setDimensions(x,y,z:integer); So wie ich das bisher kenne, muß ich jetzt noch zwei Funktion schreiben, die mir die Werte setzen und auslesen. Also:
Delphi-Quellcode:
Meine Frage ist jetzt die folgende:
Dummy := CComplex3DArray.Create(x,y,z);
Dummy.setValue(x,y,z,Value); Dummy.getValue(x,y,z); Gibt es eine Möglichkeit diese Funktionen zum setzen und auslesen von Werte so zu gestalten, das ich statt
Delphi-Quellcode:
auch
Dummy.setValue(x,y,z,Value);
Delphi-Quellcode:
schreiben kann?
Dummy[x,y,z] := Value;
Grüße Blechwolf |
Re: Elementzugriff auf einer Klasse ohne Funktionen
klar geht das
Delphi-Quellcode:
type
CComplex3DArray = class private: Data : array of array of array of TComplex; function GetCells(x, y, z: integer): TComplex; procedure SetCells(x, y, z: integer; value: TComplex); public: procedure setDimensions(x,y,z:integer); property Cells[x, y, z: integer]: TComplex read GetCells write SetCells; default; end; function CComplex3DArray.GetCells(x, y, z: integer): TComplex; begin result := Data[x, y, z]; end; procedure CComplex3DArray.SetCells(x, y, z: integer; value: TComplex); begin Data[x,y,z] := value; end; Das wichtige hierbei is das default; hinter dem Property. Damit kannste die Eigenschaft per Dummy[x,y,z] oder aber per Dummy.Cells[x,y,z] ansprechen. So eine default Eigenschaft kannst Du BTW nur mit Array Eigenschaften machen und dann auch nur einmal pro Klasse. MfG - Thebe |
Re: Elementzugriff auf einer Klasse ohne Funktionen
Ich glaube du redest von
![]() ![]() |
Re: Elementzugriff auf einer Klasse ohne Funktionen
Bingo :o)
Besten Dank. |
Re: Elementzugriff auf einer Klasse ohne Funktionen
Dazu musst du allerdings wissen was propertys sind.
Beispiel:
Delphi-Quellcode:
Ohne das default kannst du nur über Dummy.SetValue[x, y, z] zugreifen, d.h. lesen und
public
property SetValue[x,y,z: Integer]: Integer read GetValue write SetValue; default; schreiben. mit default erreichst du dein Ziel: Dummy.SetValue[x, y, z] := Value ! Achte allerdings auf die Typen ! greetz mytar :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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