AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi möchte function Test(parameter) : TARRAY dimensionieren
Thema durchsuchen
Ansicht
Themen-Optionen

möchte function Test(parameter) : TARRAY dimensionieren

Ein Thema von EccoBravo · begonnen am 19. Jul 2005 · letzter Beitrag vom 19. Jul 2005
Antwort Antwort
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#1

möchte function Test(parameter) : TARRAY dimensionieren

  Alt 19. Jul 2005, 08:33
Hallo,

daß man Variablen von Typ array bedarfsgemäß mit setlength dimensionieren kann habe ich schon begriffen. Aber wie sieht es nun mit Funktionen aus? Wenn man diese in den Code schreibt, will diese unweigerlich ausgeführt werden. Sehen Sie meinen Code:

Delphi-Quellcode:
...

interface

Type
    TebTest = record
                  Element1:string;
                  Element2:string;
                  Element3:integer;
    end;
 
    TebTestArray: Array of TebTest;

...

    function ebTestDo(Parameter):TebTestArray;
...

implementation

    function ebTestDo(Parameter):TebTestArray;
    begin

    end;

    function ebAnderesDo(andereParameter):TandererTyp
    begin
        // hier soll die besagte Function dimensioniert werden
        setLength(ebTestDo,24); // aber Fehlermeldung "nicht genügend Parameter"
    end;
...
Frage:
Läßt sich soetwas veranstalten und wie?
Es handelt sich bei "TebArray" um große Records und große Array-Dim's
Dabei läßt sich eine Menge sparen.

Vielen Dank

E. B.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: möchte function Test(parameter) : TARRAY dimensionieren

  Alt 19. Jul 2005, 08:40
Hallo Ecco,

das SetLength() gehört in deine Funktion selbst rein:

Delphi-Quellcode:
function ebTestDo(Parameter):TebTestArray;
begin
  SetLength(Result, 24);
  ...
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: möchte function Test(parameter) : TARRAY dimensionieren

  Alt 19. Jul 2005, 08:40
Du musst die Funktion in sich selbst dimensionieren.

Delphi-Quellcode:
...

interface

Type
    TebTest = record
                  Element1:string;
                  Element2:string;
                  Element3:integer;
    end;
 
    TebTestArray: Array of TebTest;

...

    function ebTestDo(Parameter):TebTestArray;
...

implementation

    function ebTestDo(Parameter):TebTestArray;
    begin
      SetLength(result, 24); // <---------------- hier
    end;

    function ebAnderesDo(andereParameter):TandererTyp
    begin
    end;
...
Grund: Der Rüchgabewert existiert ausserhalb der Funktion noch nicht.

Gruss,
Fabian

\\edit: Uiii, und kein roter Kasten
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#4

Re: möchte function Test(parameter) : TARRAY dimensionieren

  Alt 19. Jul 2005, 08:43
Danke für die prima Idee und schnelle Antwort

E. B.
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#5

Re: weiterführende Frage

  Alt 19. Jul 2005, 08:49
darüber habe ich mich schon lange gewundert. Das Herausführen der Ergebnisse aus den Funktionen.
Ein rekursives Aufrufen der Funktion wie es beoi PL1 ging gibt es wohl nicht in Delphi?

Danke für Antwort

E. B.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: möchte function Test(parameter) : TARRAY dimensionieren

  Alt 19. Jul 2005, 09:06
Aber sicher sind rekursive Aufrufe einer Funktion möglich:

Delphi-Quellcode:
function Fibonacci(i: cardinal): cardinal;
begin
  if i = 0 then Result := 0
  else if i = 1 then Result := 1
  else Result := Fibonacci(i - 1) + Fibonacci(i - 2);
end;
marabu
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#7

Re: möchte function Test(parameter) : TARRAY dimensionieren

  Alt 19. Jul 2005, 20:54
Prima, Dankeschön

EccoBravo
  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 12:48 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