Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Procedure Wert zurückliefern (https://www.delphipraxis.net/65353-procedure-wert-zurueckliefern.html)

netscanner 15. Mär 2006 15:43


Procedure Wert zurückliefern
 
Hallo Leute,
habe wieder mal ein kleines Problem...
Ich habe hier 2 Proceduren.
Nun möchte ich den Wert a an die Procedure test liefern und möchte dann den Wert b zurückgeliefert bekommen...
Das klappt aber irgendwie nicht :(
Kann mir jemand helfen?


Delphi-Quellcode:
procedure test (a :integer; var b,c : integer);
begin
b := a div 2;
c := a mod 3;
end;

procedure TForm1.Button1Click(Sender: TObject);
var a : integer;
begin
a := 5;
edit2.Text:= inttostr (test (a,b)); //daran ist was falsch :)
end;

mkinzler 15. Mär 2006 15:44

Re: Procedure Wert zurückliefern
 
test hat 3 Paramter, du übergibst aber nur 2.

netscanner 15. Mär 2006 15:44

Re: Procedure Wert zurückliefern
 
b & c sollen ja auch ausgerechtnet werden....

TeronG 15. Mär 2006 15:45

Re: Procedure Wert zurückliefern
 
was du willst ist wohl eine function
EDIT:
Delphi-Quellcode:
edit2.Text:= inttostr (test (a,b)); //daran ist was falsch :)
kann ja net gehen wenn dann so etwa:

Delphi-Quellcode:
test (a,b,c)
edit2.Text:= inttostr (a)+' - '+inttostr (b);

netscanner 15. Mär 2006 15:46

Re: Procedure Wert zurückliefern
 
nein ich möchte c später zurück geliefert bekommen

z.b. in edit3...

leddl 15. Mär 2006 15:48

Re: Procedure Wert zurückliefern
 
Es gibt einen Unterschied zwischen Funktionen und Prozeduren. Erstere liefern einen Wert zurück, zweitere erhalten nur Werte (können aber über die Parameter auch Variablen verändern - Betonung auf "verändern").
Du mixt jetzt irgendwie (warum auch immer) beides durcheinander: Du deklarierst eine Prozedur mit 2 Var-Parametern, erwartest aber plötzlich einen Rückgabewert. Das kann einfach nicht funktionieren, da du ja schließlich eine Prozedur, und keine Funktion hast. Daher mußt du eben den fehlenden Parameter noch mit übergeben und diesen dann gesondert auswerten.
Du mußt ja schließlich deine Parametervorgaben auch einhalten, wo kämen wir denn sonst hin? :lol:

mkinzler 15. Mär 2006 15:48

Re: Procedure Wert zurückliefern
 
@TeronG
Eine Funktion kann aber nur ein wert zurückgeben.

@netscanner
Du mußt trotzdem alle def. Paramter angeben. Woher soll er den a sonst wissen?

TeronG 15. Mär 2006 15:49

Re: Procedure Wert zurückliefern
 
siehe oben ^^
Zitat:

Zitat von TeronG
EDIT:
Delphi-Quellcode:
edit2.Text:= inttostr (test (a,b)); //daran ist was falsch :)
kann ja net gehen wenn dann so etwa:

Delphi-Quellcode:
test (a,b,c) ;
edit2.Text:= inttostr (a)+' - '+inttostr (b);

Noch n EDIT:
Zitat:

Zitat von mkinzler
@TeronG
Eine Funktion kann aber nur ein wert zurückgeben.

dann bau ich mir n Type die aus 2 Integern besteht ^^

gordon freeman 15. Mär 2006 15:50

Re: Procedure Wert zurückliefern
 
//EDIT: roter Kasten, wo bist du???
// Erklärungen: s. Leddl's Post
Versuchs mal so (ungetestet):

Delphi-Quellcode:
procedure test (a :integer; var b,c : integer);
begin
b := a div 2;
c := a mod 3;
end;

procedure TForm1.Button1Click(Sender: TObject);
var a : integer;
begin
  a := 5;
  test(a,b,c);
  edit2.Text := inttostr(a);
  edit3.Text := inttostr(b);
  edit4.Text := inttostr(c);
end;

mkinzler 15. Mär 2006 15:52

Re: Procedure Wert zurückliefern
 
Zitat:

nein ich möchte c später zurück geliefert bekommen
Dann kannst du div und mod gleich direkt aufrufen


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 Uhr.
Seite 1 von 2  1 2      

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