Einzelnen Beitrag anzeigen

Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.294 Beiträge
 
Delphi 12 Athens
 
#1

array als var-Parameter

  Alt 30. Jun 2015, 11:18
Ich möchte eine Procedure, die soll mehreren Integer-Variablen den Wert 0 zuweisen.

Ich dachte ich könnte folgendes realisieren.

Delphi-Quellcode:
procedure SetToZero(aValues: array of Integer);
var
  a: Integer;
begin
  for a := low(aValues) to High(aValues) do
    aValues[a] := 0;
end;
Und so soll die Funktion verwendet werden:

Delphi-Quellcode:
  lMenge1:=10;
  lMenge2:=20;
  SetToZero([lMenge1,lMenge2]);
Die Werte der Mengen ändern sich aber nicht. Sind immer noch 10 und 20.

Nun dachte ich, klar, fehlt der Var-Parameter. Also Funktion umgeschrieben und "var" vor avalues gesetzt.

Delphi-Quellcode:
procedure SetToZero(var aValues: array of Integer);
var
  a: Integer;
begin
  for a := low(aValues) to High(aValues) do
    aValues[a] := 0;
end;
Dann lässt sich folgende Zeile nicht mehr kompilieren.

SetToZero([lMenge1,lMenge2]);
Folgende Fehlermeldung:
Code:
[DCC Fehler] blubunit.pas(124): E2197 Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
Welchen Gedankenfehler mache ich?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat