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?