![]() |
AW: Record als Result einer Funktion
Zitat:
Da wird vorgeschlagen, statt einer Funktion "Bla(startDatum, endDatum)" eine Funktion "Bla(DatumsBereich)" zu erstellen, mit "DatumsBereich" als Parameterobjekt. In Delphi macht man zweckmäßigerweise einen erweiterten Record, dem man zusätzlich zu den reinen Daten auch noch Methoden zur Initialisierung mitgeben kann:
Delphi-Quellcode:
type TDatumsBereich = record
Von, Bis: TDateTime; procedure Heute; end; procedure TDatumsBereich.Heute; begin Von := Date; Bis := Date; end; |
AW: Record als Result einer Funktion
Zur Info:
Ich habe ein weiteres Thema eröffnet ![]() |
AW: Record als Result einer Funktion
Zitat:
Du gibst einen uninitialsierten Record zurück. Daher ist es Zufall, was da deine Boolean für Werte haben. Ist das Byte auf auf das der Boolean zeigt per Zufall 0 ist es False, alles andere wird zu True. Die Lösung ist ganz einfach. Initialisieren den Recordspeicher mit Nullen.
Code:
type
TTest_Result = record Test_a : Boolean; Test_b : Boolean; Test_c : Boolean; end; function test(a:integer):TTest_Result; function test(a:integer):TTest_Result; begin FillChar(Result, SizeOf(Result), 0); Result.Test_a := True; end; |
AW: Record als Result einer Funktion
Zitat:
Delphi-Quellcode:
function test(a:integer):TTest_Result;
begin Result := Default(TTest_Result); Result.Test_a := True; end; |
AW: Record als Result einer Funktion
Zitat:
Dankeschön. Irgendwie ist mir der Beitrag von Rolf entgangen. Das hilft mir auf jeden Fall schon einmal weiter und erleichtert mir die Grundinitialisierung eines Records. |
AW: Record als Result einer Funktion
Zitat:
|
AW: Record als Result einer Funktion
Zitat:
Da steht ein Beispiel, man soll das ... function amountInvoiced(startDate, endDate) {...} function amountReceived(startDate, endDate) {...} function amountOverdue(startDate, endDate) {...} ... ändern in ... function amountInvoiced(aDateRange) {...} function amountReceived(aDateRange) {...} function amountOverdue(aDateRange) {...} Also aus zwei Parametern einen machen, der diese beiden Werte sinnvoll kombiniert. Natürlich ist das bei nur zwei Parametern nur bedingt sinnvoll (kann es aber sein), aber das Prinzip ist dasselbe wie bei 50 Parametern. |
AW: Record als Result einer Funktion
Zitat:
|
AW: Record als Result einer Funktion
Ok danke für die Info. Nach vielen Jahren wieder was Neues gelernt. :-D
|
AW: Record als Result einer Funktion
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz