Gibt es eine Möglichkeit eine Procedure mit Variablen Parametern zu definieren, ohne daß alle Variablen genutzt werden müssen?
OK. Schwer zu erklären und schwer zu verstehen. Ich versuche es mal anhand von Beispielen zu erklären.
Es ist folgende Procedure definiert.
Delphi-Quellcode:
procedure TMeinObject.EineKomplexeBerechnung(var aWert1:double; var aWert2:double; var aWert3:double; var aWert4:double; var aWert5:double);
begin
// hier viele Schleifen und viel Berechnung
// Den Variablen aWert1,aWert2,aWert3,aWert4,aWert5 werden hier berechnete Werte zugewiesen
end;
Diese Procedure wird im Programm öffters mal aufgerufen. Je nachdem benötige ich alle Werte, sehr oft aber auch nur z.B aWert3 und aWert4. Da die Werte aber als Variable in der Procedure definiert sind, muss ich natürlich auch Variablen bereitstellen, obwohl ich diese nicht brauche.
Beispiel
Delphi-Quellcode:
Procedure TMeinObject.EineBerechnung;
var
lWert1:double;
lWert2:double;
lWert3:double;
lWert4:double;
lWert5:double;
begin
EineKomplexeBerechnung(lWert1,lWert2,lWert3,lWert4,lWert5);
BerechneIrgendwasX(lWert4);
BerechneIrgendwasX(lWert5);
end;
Hier sieht man, daß die Variablen lWert1,lWert2,lWert3 deklariert werden, obwohl diese eigendlich nicht gebraucht werden. Sieht unschön aus.
Gibt es eine Möglichkeit die Procedure so zu definieren, daß ich so eine Art NIL übergeben kann. Nennen wir es einfach mal xNil
Beispiel
Delphi-Quellcode:
Procedure TMeinObject.EineBerechnung;
var
lWert4:double;
lWert5:double;
begin
EineKomplexeBerechnung(xNil,xNil,xNil,lWert4,lWert5);
BerechneIrgendwasX(lWert4);
BerechneIrgendwasX(lWert5);
end;