AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Elementzugriff auf einer Klasse ohne Funktionen
Thema durchsuchen
Ansicht
Themen-Optionen

Elementzugriff auf einer Klasse ohne Funktionen

Ein Thema von Blechwolf · begonnen am 16. Aug 2004 · letzter Beitrag vom 16. Aug 2004
Antwort Antwort
Blechwolf

Registriert seit: 9. Sep 2003
Ort: Aachen
126 Beiträge
 
Delphi 7 Professional
 
#1

Elementzugriff auf einer Klasse ohne Funktionen

  Alt 16. Aug 2004, 14:58
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:
type
 TComplex3Darray = array of array of array of TComplex;
oder eleganter über den Umweg mir ein 2DArray Typ und ein 1DArray Typ zu definieren.

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:
type
  CComplex3DArray = class
    private:
      Data : array of array of array of TComplex;
    public:
      setDimensions(x,y,z:integer);
usw.

So wie ich das bisher kenne, muß ich jetzt noch zwei Funktion schreiben, die mir die Werte setzen und auslesen.
Also:
Delphi-Quellcode:
Dummy := CComplex3DArray.Create(x,y,z);
Dummy.setValue(x,y,z,Value);
Dummy.getValue(x,y,z);
Meine Frage ist jetzt die folgende:
Gibt es eine Möglichkeit diese Funktionen zum setzen und auslesen von Werte so zu gestalten, das ich statt
Dummy.setValue(x,y,z,Value); auch
Dummy[x,y,z] := Value; schreiben kann?

Grüße

Blechwolf
Ein Schiff im Hafen ist sicher. Aber dafür werden Schiffe nicht gebaut. (engl. Sprichwort)
  Mit Zitat antworten Zitat
Thebe

Registriert seit: 25. Jul 2004
Ort: Wedel
78 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Elementzugriff auf einer Klasse ohne Funktionen

  Alt 16. Aug 2004, 15:06
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Elementzugriff auf einer Klasse ohne Funktionen

  Alt 16. Aug 2004, 15:07
Ich glaube du redest von Delphi-Referenz durchsuchenPropertys. Kuck dazu auch mal in mein Klassen-Tutorial rein ( http://tutorials.luckie-online.de ).
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Blechwolf

Registriert seit: 9. Sep 2003
Ort: Aachen
126 Beiträge
 
Delphi 7 Professional
 
#4

Re: Elementzugriff auf einer Klasse ohne Funktionen

  Alt 16. Aug 2004, 15:07
Bingo )

Besten Dank.
Ein Schiff im Hafen ist sicher. Aber dafür werden Schiffe nicht gebaut. (engl. Sprichwort)
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Elementzugriff auf einer Klasse ohne Funktionen

  Alt 16. Aug 2004, 15:09
Dazu musst du allerdings wissen was propertys sind.

Beispiel:
Delphi-Quellcode:
public
property SetValue[x,y,z: Integer]: Integer read GetValue write SetValue; default;
Ohne das default kannst du nur über Dummy.SetValue[x, y, z] zugreifen, d.h. lesen und
schreiben.

mit default erreichst du dein Ziel:
Dummy.SetValue[x, y, z] := Value

! Achte allerdings auf die Typen !

greetz
mytar
Francis Obikwelu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz