Einzelnen Beitrag anzeigen

Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
617 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Optionale (= vorbelegte) FunktionsParameter vom Type Record - Wie geht das?

  Alt 6. Jun 2021, 13: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.
  Mit Zitat antworten Zitat