Registriert seit: 15. Sep 2008
Ort: Dubai
674 Beiträge
Delphi 10.3 Rio
|
AW: Optionale (= vorbelegte) FunktionsParameter vom Type Record - Wie geht das?
6. Jun 2021, 14:05
Und jetzt darfst das DocInsight nicht vergessen, weil sonst weiß niemand, wie man diese Funktion aufrufen soll.
Da könntest Du recht haben.
Delphi-Quellcode:
type
TMyRecord = record c1,c2,c3,c4,c5,c6: extended;end;
function DDInit(values: array of Extended): TMyRecord;
var
l: integer;
begin
FillChar(Result, SizeOf(Result), 0); // alles null, oder eben manuell default werte
for l := 0 to Length(values)-1 to
case l of
0 : Result.C1 := values[l];
1 : Result.C2 := values[l];
2 : Result.C3 := values[l];
3 : Result.C4 := values[l];
4 : Result.C5 := values[l];
5 : Result.C6 := values[l];
end;
end;
Alt:
Delphi-Quellcode:
// deklaration
Function Nu_Rohr_Turbulent(Re, Pr, d_i, L, Eta, Eta_W: Extended;
c1: Extended = 0.0235;
c2: Extended = 0.80;
c3: Extended = 230;
c4: Extended = 1.80;
c5: Extended = 0.3;
c6: Extended = 0.80): Extended;
// aufruf
Nu:= Nu_Rohr_Turbulent(Re, Pr, d_i, L, Eta, Eta_W, c1, c2, c3, c4, c5, c6);
Neu:
Delphi-Quellcode:
// deklaration
Function Nu_Rohr_Turbulent(Re, Pr, d_i, L, Eta, Eta_W: Extended; Data: TMyrecord): Extended;
// aufruf
Nu:= Nu_Rohr_Turbulent(Re, Pr, d_i, L, Eta, Eta_W, DDInit([0.0235, 0.80, 230, 1.80, 0.3, 0.80]));
Oder, einfach ganz ohne funktion, als array
Delphi-Quellcode:
// deklaration
Function Nu_Rohr_Turbulent(Re, Pr, d_i, L, Eta, Eta_W: Extended; Data: array of Extended): Extended;
// aufruf
Nu:= Nu_Rohr_Turbulent(Re, Pr, d_i, L, Eta, Eta_W, [0.0235, 0.80, 230, 1.80, 0.3, 0.80]);
Gleiches Vorgehen wie bei Format
Parameter die man nicht braucht übergibt man nicht. (das muss die Funktion intern dann selber erkennen und behandeln.)
Stefan Nur die Besten sterben jung
A constant is a constant until it change.
|