![]() |
Funktionen mit zwei Rückgabewerten?
Hallo Leute,
kann man eigentlich Funktionen deklarieren, die zwei Werte zurückgeben sollen? Bei mir soll z.B. die Funktion "Auslesen" nach einer Datenbankabfrage zwei Spalten (jeweils ein Wert als String) zurückgeben. Wie mach ich das? MfG davar |
Re: Funktionen mit zwei Rückgabewerten?
Hallo,
da kannst Du entweder den einen Wert als Rückgabewert, den anderen als var zurückgeben oder einen record definieren und diesen zurückgeben. Gruß xaromz |
Re: Funktionen mit zwei Rückgabewerten?
Hallo,
ich habe Dir mal ein kleines Bsp. erstellt.
Delphi-Quellcode:
MFG Christian18
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TResult = record Wert1 : String; Wert2 : Integer; end; type TForm1 = class(TForm) function Neu() : TResult; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.Neu() : TResult; begin // Werte zurückgeben Result.Wert1:='Ein String'; Result.Wert2:=1; end; end. |
Re: Funktionen mit zwei Rückgabewerten?
oder so:
Delphi-Quellcode:
In dem Fall hats drei Rückgaben... die Variablen die du für Wert1 und Wert2 übergibst werden direkt geändert. Ausserdem kannst du es in eine If-Abfrage hängen und so herausbekommen ob es überhaupt geklückt ist ;)
function LiesWerte(const Quelle: Tirgendwas; const Index: integer; var Wert1, Wert2: string;):boolean;
begin {Hier kommt das Auslesen hin} Wert1 := 'was weiss ich'; Wert2 := 'was weiss ich'; Result := true; {oder false bei Fehlschlag} end; |
Re: Funktionen mit zwei Rückgabewerten?
So z. B.
Procedure StoreDBStrings(Var String1,String2:String); begin // Holen der Daten aus der Datenbank und in Datenbankstring1 und Datenbankstring2; ... //Zuweisen der beiden Strings: String1:=Datenbankstring1; String2:=Datenbankstring2; end; Natürlich kannst Du beim Holen der Daten aus der Datenbank gleich String1 und String2 die Daten zuweisen. oder etwas schöner...
Delphi-Quellcode:
Ach ja: Wenn der Wert eine Zahl ist, musst du entsprechend ein IntToStr oder FloatToStr verwenden.
Function StoreDBStrings (Var String1,String2:String):boolean;
begin // Holen der Daten aus der Datenbank ... Erfolgreich? //GetDBGetStrings sollte auch eine Funktion von Typ Boolean sein... if GetDBgetStrings then //Ist klar? "if GetDBgetStrings" steht für "if GetDBgetStrings=true" begin //Zuweisen der beiden Strings: String1:=Datenbankstring1; String2:=Datenbankstring2; result:=true end else result:=false; end; @Christian18 Schönes Beispiel mit den Records ! :spin2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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-2025 by Thomas Breitkreuz