AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktionen mit zwei Rückgabewerten?

Ein Thema von davar · begonnen am 24. Jul 2006 · letzter Beitrag vom 24. Jul 2006
Antwort Antwort
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#1

Funktionen mit zwei Rückgabewerten?

  Alt 24. Jul 2006, 11:44
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
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Funktionen mit zwei Rückgabewerten?

  Alt 24. Jul 2006, 11:48
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
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#3

Re: Funktionen mit zwei Rückgabewerten?

  Alt 24. Jul 2006, 11:54
Hallo,

ich habe Dir mal ein kleines Bsp. erstellt.

Delphi-Quellcode:
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.
MFG Christian18
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Funktionen mit zwei Rückgabewerten?

  Alt 24. Jul 2006, 11:58
oder so:

Delphi-Quellcode:
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;
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
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#5

Re: Funktionen mit zwei Rückgabewerten?

  Alt 24. Jul 2006, 12:07
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:
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;
Ach ja: Wenn der Wert eine Zahl ist, musst du entsprechend ein IntToStr oder FloatToStr verwenden.

@Christian18 Schönes Beispiel mit den Records !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz