AGB  ·  Datenschutz  ·  Impressum  







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

Function /Procedure

Ein Thema von poterp · begonnen am 4. Sep 2007 · letzter Beitrag vom 4. Sep 2007
Antwort Antwort
poterp

Registriert seit: 27. Mär 2005
175 Beiträge
 
#1

Function /Procedure

  Alt 4. Sep 2007, 15:30
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Function /Procedure

  Alt 4. Sep 2007, 15:32
Laß die Deklaration von result weg:

result: integer;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Function /Procedure

  Alt 4. Sep 2007, 15:35
Welche Fehler genau bekommst du denn überhaupt? Syntaxfehler?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Function /Procedure

  Alt 4. Sep 2007, 15:36
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:
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
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von borncrush
borncrush

Registriert seit: 18. Dez 2005
Ort: Berlin
115 Beiträge
 
Delphi XE7 Enterprise
 
#5

Re: Function /Procedure

  Alt 4. Sep 2007, 15:37
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ß
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Function /Procedure

  Alt 4. Sep 2007, 15:37
Außerdem solltest du alle Parameter übergeben oder diese weglassen:
function ergebnis(edt:TEdit; a, b, c, d, e: integer):integer;
Markus Kinzler
  Mit Zitat antworten Zitat
poterp

Registriert seit: 27. Mär 2005
175 Beiträge
 
#7

Re: Function /Procedure

  Alt 4. Sep 2007, 15:41
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 -)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: Function /Procedure

  Alt 4. Sep 2007, 15:43
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 17:01 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