Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Array als result einer Funktion
Hagbard Celine - So 22.09.02 18:40
Titel: Array als result einer Funktion
Ich muss als Ergebnis einer Funktion ein Array eines eigenen Objekttyps zurückgeben!
mein Aufruf sieht wie folgt aus :
Quelltext
1:
| meinObject.setTags(deinObject.getTags); |
Meine Procedure sieht so aus :
Quelltext
1:
| procedure TmeinObject.setTags(tags: array of TmeineTags); |
Meine Funktion sollte logischerweise diese Form haben :
Quelltext
1:
| function TdeinObject.getTags : array of TmeineTags; |
Aber das gibt folgenden Fehler :
Quelltext
1:
| [Fehler] meinObj.pas(14): Bezeichner erwartet, aber 'ARRAY' gefunden |
Will keinen eigenen Datentyp erzeugen! Gibt es eine Möglichkeit ohne eigenen Datentyp???
Cashels - So 22.09.02 21:17
Hi Celine,
du musst erst dein array als Typ deklarieren... Etwa so:
Quelltext
1: 2:
| type TTags = array of TmeineTags ; |
Danach müsstest du dein Funktion deklarieren können mit
Quelltext
1:
| function TdeinObject.getTags : TTags ; |
Gruss,
tom
Hagbard Celine - So 22.09.02 21:29
Cashels hat folgendes geschrieben: |
Hi Celine,
du musst erst dein array als Typ deklarieren... Etwa so: Quelltext 1: 2:
| type TTags = array of TmeineTags ; |
Danach müsstest du dein Funktion deklarieren können mit Quelltext 1:
| function TdeinObject.getTags : TTags ; |
Gruss,
tom |
Das ist klar!
Deshalb habe ich aber geschrieben ich suche eine Lösung ohne eigenen Datentyp!
Das ist aus verschiedenen Gründen nicht die angenehmste Lösung!!!
Cashels - Mo 23.09.02 08:47
Ups, die Zeile hab ich übersehen. Sorry.
Tom
Hagbard Celine - Mo 23.09.02 09:18
Cashels hat folgendes geschrieben: |
Ups, die Zeile hab ich übersehen. Sorry.
Tom |
Kein Thema!
Habs auch einfach nochmal so gelöst wie Du es auch vorgeschlagen hattest! Um vorran zu kommen!
Ein Fehler ist dabei auch nicht mehr aufgetreten!
Ich hatte zuvor Probleme wenn ich mir ein Array eines Datentyps als neuen Typ definiert habe, dann konnte ich ihn nicht einer variable zuordnen welche vom selben aber nicht neu definierten Datentyp war!!!
Quelltext
1: 2: 3: 4: 5:
| Type arrStr = array of String;
var orgData : array of String; myData : arrStr; |
Wenn ich jetzt eine Zuweisung orgData := myData gemacht habe gab es fehler!!! Inkompatible Datentypen!!!
Keine Ahnung warum!!
Bin mir nicht mehr sicher wie rum die Zuordnung war und welcher Datentyp es war, muss nicht String gewesen sein! Poste es wenn ich den Fehler noch einmal finde!!!
Manfred - Mo 23.09.02 13:12
Hi!
Warum lässt Du Deine Funktion nicht einfach einen Pointer auf das Array returnieren. Der Aufrufer kann dann damit machen, was er will!
Tino - Mo 23.09.02 14:07
Manfred hat folgendes geschrieben: |
Der Aufrufer kann dann damit machen, was er will! |
Genau deshalb sollte man es nicht machen :-D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!