![]() |
function in procedure
Hallo,
kann ich nicht eine Funktion auch innerhalb einer Procedure laufen lassen? Ich habe ein einfaches Bsp, aber die Funktion hat nicht genügend Parameter? Was muss ich denn noch ausser der summe weitergeben?
Delphi-Quellcode:
Grüsse, moperswings
procedure TForm1.Button1Click(Sender: TObject);
function summe(var a,b: Integer): Integer; begin a := strtoint(Edit1.text); b := strtoint(Edit2.Text); result := a + b; end; var wert: Integer; begin wert := summe; //() nicht genügend wirkliche Parameter; Label1.Caption := inttostr(wert); end; end. |
Re: function in procedure
Lösung:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
function summe(): Integer; var a,b: Integer; //:) begin a := strtoint(Edit1.text); b := strtoint(Edit2.Text); result := a + b; end; var wert: Integer; begin wert := summe; //() nicht genügend wirkliche Parameter ... war gestern :) Label1.Caption := inttostr(wert); end; end. |
Re: function in procedure
korrekt wäre es so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
function summe(): Integer; var a,b: Integer; begin a := strtoint(Edit1.text); b := strtoint(Edit2.Text); result := a + b; end; var wert: Integer; begin wert := summe; //() nicht genügend wirkliche Parameter; Label1.Caption := inttostr(wert); end; end. |
Re: function in procedure
Naja, sehr toll ist das ja nicht, das hier wäre um einiges besser:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
function summe(const a, b: Integer): Integer; begin result := a + b; end; var wert: Integer; begin Label1.Caption := inttostr(summe(5,5)); end; |
Re: function in procedure
Vielen Dank, aber warum muss ich die Variablen seperat deklarieren?
|
Re: function in procedure
Schau dir das Beispiel der Muhkuh an, es geht auch, wie du es gerne hättest. Du hast bei dir lediglich vergessen der Funktion die Parameter zu übergeben.
Der Aufruf wäre dann beispielsweise dieser:
Delphi-Quellcode:
Label1.Caption := inttostr(summe(StrToInt(Edit1.Text), StrToInt(Edit2.Text)));
|
Re: function in procedure
Um die Parameter gings mir ja! Ich ging davon aus, dass die mit der function summe übergeben werden.
Nur die Variablen in der procedure nochmal zu deklarieren macht ja auch keinen Sinn! |
Re: function in procedure
Wenn du das gerne so hättest, geht auch das hier, wobei mir so eine Lösung nicht sonderlich gefallen würde:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
function summe: Integer; begin result := StrToInt(Edit1.Text) + StrToInt(Edit2.text) end; begin Label1.Caption := IntToStr(summe); end; |
Re: function in procedure
Die Lösungen sind alle klasse, aber darum geht es mir nicht mehr! Ich will verstehen, warum es falsch war, die Variablen in der Funktion zu deklarieren, damit mir solche Fehler in Zukunft nicht mehr passieren!
|
Re: function in procedure
Alle Variablen die in einer Funktion deklariert werden sind nur in dieser sichtbar, das war aber nicht Dein Fehler.
Du hast die Variablen in der Parameterliste der Procedure deklariert und die Funktion ohne Parameter aufgerufen. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 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