Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ergebnisse in Array übergeben (https://www.delphipraxis.net/1605-ergebnisse-array-uebergeben.html)

nailor 12. Dez 2002 22:44


Funktion mit Array als Result
 
Hi!

Ich schreib meine Frage mal hier rein, man muss ja nicht mehr Topics als nötig eröffnen.

Also: Ich hab eine schöne Delphianwendung. Da ich noch am Rumwerkeln bin, und mir der Code ein wenig zu lang war, hab ich die Teile, an denen ich nichts mehr ändern werde, mal in eine neue Unit ausgelagert. Unter anderem auch den Teil, wo zu Beginn die Einstellungen von einer Textfile eingelesen werden. Das ganze wird zeilenweise in einen array eingelesen. Wenn man das ganz normal macht, kann man das wunderbar tun.
Jetzt hab ich aber versucht eine function zu schreiben, die als Result genau diesen array hat und sie einfach an das Programm weitergibt. Aber wie das so ist, mein gutes Delphi will keinen Array als Ergebnis einer Funktion haben!!!
Was mach ich falsch???

sakura 12. Dez 2002 22:52

Hi Kalle,

ich habe Deine Anfrage trotzdem in einen neuen Thread verschoben, da das an dieser Stelle durchaus sinnvoll ist - letztenendes ist das ein neues Problem ;)

sakura 12. Dez 2002 22:54

Du musst einen neuen Datentyp deklarieren, dann geht das. Beispiel gefällig?
Delphi-Quellcode:
type
  TMyArrayResult = array of Integer;

function GetMeAnArray: TMyArrayResult;
var
  I: Integer;
begin
  SetLength(Result, 10);
  for I := 0 to 9 do
    Result[I] := Random(MaxInt);
end;

nailor 13. Dez 2002 09:45

Wenn ihr meint, mir solls egal sein.

Mal testen, ich sag euch dann Bescheid, ob es geklappt hat.

sakura 13. Dez 2002 09:50

Zitat:

Zitat von Kalle
Wenn ihr meint, mir solls egal sein.

Das war nicht böse gemeint. Der Grund ist eigentlich recht simpel. Oft haben Leute für sich mit einem Thread abgeschlossen und schauen dort nicht mehr hinein, da diese der Meinung sind, das es sie nicht interessiert, bzw. sie nicht weiterhelfen können.

Durch das Nutzen dieser Threads "hälst" Du halt einige Leute von der Diskussion ab, obwohl diese Dir sehr gut helfen könnten. Und ein extra Thread kostet auch nicht mehr Speicherplatz als das Fortsetzen eine alten.

...:cat:...

nailor 13. Dez 2002 10:20

So weit, so gut. Aber wenn ich das Ergebnis jetzt zuordnen will, geht

Delphi-Quellcode:
type
  TIntegers = array of Integer;

procedure TForm1.Create;
var
    MeinArray: TIntegers;
begin
    setlength(MeinArray,10);
    MeinArray := GetMeAnArray;
end;
nicht. Ich kann zwar

Delphi-Quellcode:
type
  TIntegers = array of Integer;

procedure TForm1.Create;
var
    MeinArray: TIntegers;
    i: integer;
begin
    setlength(MeinArray,10);
    for i := 0 to 9 do
        MeinArray[i] := GetMeAnArray[i];
end;
draus machen. Aber dann brauch ich nicht jedesmal in der Funktion einen Array draus zu machen, dann reichts ja, wenn er einen einfachen Integer zurückgibt.

nailor 13. Dez 2002 10:21

Hab deine antwort oben nicht gesehen, das "so weit so gut" ist auf den code bezogen

manche forenmoderatoren meinen aber: je weniger topics, desto mehr übersicht.

sakura 13. Dez 2002 10:24

*grübel* *grübel*

Mein Code sieht wie folgt aus und funktioniert wie erwartet:
Delphi-Quellcode:
implementation

{$R *.DFM}

type
  TMyArrayResult = array of Integer;

function GetMeAnArray: TMyArrayResult;
var
  I: Integer;
begin
  SetLength(Result, 10);
  for I := 0 to 9 do
    Result[I] := Random(MaxInt);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  A: TMyArrayResult;
  I: Integer;
begin
  A := GetMeAnArray;
  for I := Low(A) to High(A) do
    ShowMessage(IntToStr(A[I]));
end;
...:cat:...

nailor 13. Dez 2002 10:30

*zurückgrübel* :shock: :?:

nochmal testen!

*aufreg* :evil: :!:

nailor 13. Dez 2002 10:50

Es klappt!

Ich habe das ja zwei units gehabt und dann leider in beiden

Delphi-Quellcode:
type
  TMyArrayResult = array of Integer;
reingepackt. Dann meinte Delphi immer "Incompatible types". Jetzt hab ich es aus einer rausgenommen und alles klappt. :D :D

Danke für die schnelle Hilfe. Das Forum sieht schön aus, und man bekommt auch hilfreiche Antworten! Danke!!!
Ich programmiere noch nicht so lange mit Delphi und schau bestimmt mal wieder vorbei!

CU


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:11 Uhr.
Seite 1 von 2  1 2      

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