AGB  ·  Datenschutz  ·  Impressum  







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

function in procedure

Ein Thema von moperswings · begonnen am 17. Apr 2007 · letzter Beitrag vom 17. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#1

function in procedure

  Alt 17. Apr 2007, 14:37
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:
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.
Grüsse, moperswings
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: function in procedure

  Alt 17. Apr 2007, 14:41
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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: function in procedure

  Alt 17. Apr 2007, 14:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: function in procedure

  Alt 17. Apr 2007, 14:45
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;
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#5

Re: function in procedure

  Alt 17. Apr 2007, 14:56
Vielen Dank, aber warum muss ich die Variablen seperat deklarieren?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: function in procedure

  Alt 17. Apr 2007, 14:58
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:

Label1.Caption := inttostr(summe(StrToInt(Edit1.Text), StrToInt(Edit2.Text)));
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#7

Re: function in procedure

  Alt 17. Apr 2007, 15:01
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!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: function in procedure

  Alt 17. Apr 2007, 15:10
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;
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#9

Re: function in procedure

  Alt 17. Apr 2007, 15:19
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!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: function in procedure

  Alt 17. Apr 2007, 15:23
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
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:16 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