AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ergebnisse in Array übergeben

Ein Thema von nailor · begonnen am 12. Dez 2002 · letzter Beitrag vom 13. Dez 2002
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#1

Funktion mit Array als Result

  Alt 12. Dez 2002, 22:44
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???
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 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
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 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;
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#4
  Alt 13. Dez 2002, 09:45
Wenn ihr meint, mir solls egal sein.

Mal testen, ich sag euch dann Bescheid, ob es geklappt hat.
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 13. Dez 2002, 09:50
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.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#6
  Alt 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.
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#7
  Alt 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.
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 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;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#9
  Alt 13. Dez 2002, 10:30
*zurückgrübel*

nochmal testen!

*aufreg*
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#10
  Alt 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.

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
Michael N.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:20 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