![]() |
Variablenübergabe und Rückgabe Funktion
Hallo,
wie übergebe ich an eine nicht lokale Funktion/Prozedur (in anderer Unit) einen Wert vom Typ REAL, in der dann Berechnungen ausgeführt werden und danach 4 verschiedene errechnete Werte an die ursprüngliche Unit zurückgegeben werden? z.b. Übergabe an Funktion = Nettobetrag Rückgabe Wert1 : Nettobetrag * 0.15 Wert2 : Wert1 + Nettobetrag Wert3 : Wert2 * 0.16 Wert4 : Wert3 + Wert4 Oder verwende ich besser eine Prozedur mit Variablenparameter ? |
Re: Variablenübergabe und Rückgabe Funktion
Zitat:
|
Re: Variablenübergabe und Rückgabe Funktion
wie ging das nochmal?
SQL-Code:
aber beim Aufruf möchte ich doch nur eine Real-Variable übergeben ?
function Calc(x : real; var a,b,c,d : real);
a := x * 0.15; b := a + x; c := b * 0.16; d := b + c; end; |
Re: Variablenübergabe und Rückgabe Funktion
Hab das jetzt über Type Record gemacht.
In der einen Unit deklariert:
Delphi-Quellcode:
Weil ich diese Werte für einen Rave Report brauche muss ich aber die einzelnen Werte abfragen.
type
TWerte = record a: real; b: real; d: real; d: real; e: real; end; function calc: TWerte; begin Result.a := Table1.FieldByName('Rechnungswert').AsInteger); Result.b := Result.a * 15 / 100; Result.c := Result.a + Result.b; Result.d := Result.c * 16 / 100; Result.e := Result.c + Result.d; end; Bei meinem Aufruf wird die Funktion 'calc' in der anderen Unit aber jedesmal aufgerufen, was natürlich langsam ist.
Delphi-Quellcode:
Wie kann ich denn erreichen dass dies nur einmal aufgerufen wird ?
procedure blabla...
begin SetParam('pNettoBetrag', FloatToStrF(calc.a, ffCurrency, 99, 2)); SetParam('pAufgeld', FloatToStrF(calc.b, ffCurrency, 99, 2)); SetParam('pNettoIncAufgeld', FloatToStrF(calc.c, ffCurrency, 99, 2)); SetParam('pMwst', FloatToStrF(calc.d, ffCurrency, 99, 2)); SetParam('pGBetrag', FloatToStrF(calc.e, ffCurrency, 99, 2)); end; |
Re: Variablenübergabe und Rückgabe Funktion
Hi,
oder Rückgabewert der Function als Array of Real; oder Array [0..3] of Real; oder TRealArr = Array of Real und Rückgabe als TRealArr ...... oder so vie vorher beschrieben Gruß oki |
Re: Variablenübergabe und Rückgabe Funktion
Ach so, an needatip,
wenn kein Rückgabewert, dann procedure. nicht so:
Delphi-Quellcode:
sondern so:
function Calc(x : real; var a,b,c,d : real);
Delphi-Quellcode:
gruß oki
procedure Calc(x : real; var a,b,c,d : real);
|
Re: Variablenübergabe und Rückgabe Funktion
Ok Danke. War gerade geistig abwesend! :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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