(Delphi) Resultaat functie is array.

Pagina: 1
Acties:

  • active2
  • Registratie: Juni 2001
  • Laatst online: 13-09 21:19

active2

Google is your friend

Topicstarter
Hoe kan ik ervoor zorgen dat het functieresultaat een array is?

Ik heb het zo geprobeerd

result := <arraynaam>

En de functie heb ik als een integer gedefinieerd! Dus zo:

function arrayombouwen(a, b: integer ; c: array of integer ): integer ;

Maar nu krijg ik de volgende foutmelding:

Incompatible types: 'Integer' and 'array'

Google, Het mirakel van de 21e eeuw!!!!


Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type
  TIntArray = array of Integer;

function ArrayOmbouwen(a, b: integer): TIntArray;

[..]

implementation

[..]

function ArrayOmbouwen(a, b: integer): TIntArray;
begin
  { voorbeeld }
  SetLength(Result,4);
  Result[0] := 0;
  Result[1] := 1;
  Result[2] := 2;
  Result[3] := 3;
end;

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Inderdaad.. met een type moet het lukken.

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 02-09 16:31
Niet vergeten SetLength te gebruiken!! Anders krijg je hele mooie foutmeldingen...

(Mooi he, dynamische arrays in Delphi) :9~

  • active2
  • Registratie: Juni 2001
  • Laatst online: 13-09 21:19

active2

Google is your friend

Topicstarter
Ik heb dit opgevolgd met als gevolg dat ik wat minder foutmeldingen heb.

Maar nu heb ik nog een foutmelding als ik dit doe:
result := ArrayNaam ;

Incompatible types: 'Array' and 'TIntArray'
Maar ik moet zeggen ik weer wat geleerd dit wist ik nog niet. In elk geval alvast bedankt. :)

Google, Het mirakel van de 21e eeuw!!!!


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:46

Creepy

Tactical Espionage Splatterer

Op dinsdag 30 oktober 2001 14:34 schreef active2 het volgende:
result := <arraynaam>

function arrayombouwen(a, b: integer ; c: array of integer ): Integer
result := ArrayNaam ;
Incompatible types: 'Array' and 'TIntArray'

Dat hebbie ook nog als je achter de functie TIntArray zet i.p.v. integer?

zo dus? (zoals hierboven ook al staat..)
code:
1
function arrayombouwen(a, b: integer ; c: array of integer ): TIntArray

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Kun je wat meer code geven?

Wat er fout gaat is dat Result een ander type heeft dan de variabele 'ArrayNaam' [Result is van het type TIntArray; 'ArrayNaam' van het type array]. Voor een assignment moeten deze vars in dit geval hetzelfde type hebben. Dus eigenlijk precies wat delphi zegt :)

Oplossing:
Maak ArrayNaam van het type TIntArray [Maar het lijkt me eigenlijk niet nodig om op de manier die jij doet een andere array aan Result te assignen]

  • active2
  • Registratie: Juni 2001
  • Laatst online: 13-09 21:19

active2

Google is your friend

Topicstarter
Even terugkomend op Creepy zei:

Ik heb overal TIntArray van gemaakt waar dat nodig was.

Ik zal morgen wel wat code geven want:

* active2 gaat naar bedje toe

Google, Het mirakel van de 21e eeuw!!!!

Pagina: 1