Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Function /Procedure (https://www.delphipraxis.net/98950-function-procedure.html)

poterp 4. Sep 2007 14:30


Function /Procedure
 
hallo,
ich versuche mal eine Function zu schreiben aber ich kriege noch einige fehler. so sieht mein Code aus:
Delphi-Quellcode:


public
    { Public declarations }
    function ergebnis(edt:TEdit; a, b, c, d, e: integer):integer;
    end;
......................................................................

function ergebnis(edt:TEdit; a, b, c, d, e: integer):integer;
begin
   a:= StrToInt(Edit1.Text);
  b:= StrtoInt(Edit3.Text);
  c:= StrToInt(Edit4.Text);
  d:= a + b + c;
  Edit5.Text:= IntToStr(d);
end;

procedure TForm1.Button4Click(Sender: TObject);
   var
   result: integer;
begin
   result:= ergbnis();
end;
Ich möchte in der Function die Werte von Edit1,Edit3 und Edit4 addieren und bei button click an
Edit5 zeigen lassen.

weisst jemand, wo es hackt?
grüß
poter

mkinzler 4. Sep 2007 14:32

Re: Function /Procedure
 
Laß die Deklaration von result weg:

result: integer;

Zacherl 4. Sep 2007 14:35

Re: Function /Procedure
 
Welche Fehler genau bekommst du denn überhaupt? Syntaxfehler?

Apollonius 4. Sep 2007 14:36

Re: Function /Procedure
 
Willst du eine Funktion oder eine Methode (von TForm1)? In deinem Fall wohl eine Methode, da du auf die Edits zugreifst. In der Definition (der Teil mit dem Inhalt in der implementation) musst du dann schreiben:
Delphi-Quellcode:
function TForm1.ergebnis(edt:TEdit; a, b, c, d, e: integer):integer;
Außerdem scheint dir der Unterschied zwischen Variablen und Parametern nicht klar zu sein: Parameter werden beim Aufruf übergeben, du willst hier aber offenkundig Variablen verwenden: diese werden, wie in deinem Button4Click, mit var deklariert.
Hoffe geholfen zu haben
Apollonius

borncrush 4. Sep 2007 14:37

Re: Function /Procedure
 
Hallo,

ohne dir zu Nahe treten zu wollen, aber ich denke dir fehlen die Grundlagen (z.B. hat deine Funktion keinen Rückgabe-Wert etc.). Schau dir doch mal bitte das an:

DSDT-Crashkurs

Wird dir sicherlich weiterhelfen.

Gruß

mkinzler 4. Sep 2007 14:37

Re: Function /Procedure
 
Außerdem solltest du alle Parameter übergeben oder diese weglassen:
function ergebnis(edt:TEdit; a, b, c, d, e: integer):integer;

poterp 4. Sep 2007 14:41

Re: Function /Procedure
 
Wenn ich die deklaration "result: integer;" weglasse dann sagt er result ist nicht deklariert.
sonst
als fehler bekomme ich
undeclared identifier: ergebnis
undeclared identifier: edit1....bis 5.

das stimmt deswegen versuche ich es zu erfahren -)

DeddyH 4. Sep 2007 14:43

Re: Function /Procedure
 
Das könnte z.B. so aussehen:
Delphi-Quellcode:
function ergebnis(const s1,s2,s3: string): integer;
var i1,i2,i3: integer;
begin
  //mal ohne Fehlerbehandlung, ein bisschen Arbeit soll Dir Übrig bleiben ;)
  i1 := StrToInt(s1);
  i2 := StrToInt(s2);
  i3 := StrToInt(s3);
  Result := i1 + i2 + i3;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Edit5.Text := IntToStr(ergebnis(Edit1.Text,Edit2.Text,Edit4.Text));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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