Autor |
Beitrag |
navarro2010
      
Beiträge: 25
Erhaltene Danke: 1
|
Verfasst: So 22.05.11 12:17
Hallo,
kann mir jemand den Unterschied zwischen Procedures und Functions erklären?
Danke für eure Hilfe Moderiert von Martok: Topic aus Multimedia / Grafik verschoben am So 22.05.2011 um 13:06
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.05.11 12:19
Eine Prozedur bekommt ggf. Parameter, hat aber keinen Rückgabewert während eine Funktion einen Rückgabewert hat.
Für diesen Beitrag haben gedankt: navarro2010
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: So 22.05.11 12:21
Für diesen Beitrag haben gedankt: navarro2010
|
|
navarro2010 
      
Beiträge: 25
Erhaltene Danke: 1
|
Verfasst: So 22.05.11 12:47
Danke, aber was bringt ein Rückgabewert überhaupt und welche Vorteile haben Functions gegenüber Procedures, bzw. wann ist es besser Functions anstatt Procedures anzuwenden?
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: So 22.05.11 12:56
navarro2010 hat folgendes geschrieben : | Danke, aber was bringt ein Rückgabewert überhaupt |
Nehmen wir an, du hättest eine Funktion, die Integerzahlen in Strings umwandelt. Nennen wir diese Funktion einfach IntToStr. Dann würde die Funktion so aussehen:
Delphi-Quelltext 1: 2: 3: 4: 5:
| function IntToStr(i: Integer):String begin result:=convertedString; end; |
Wenn du diese Funktion nun mehrere Male in deinem Programm brauchst, dann kannst du diese Konvertierung einfach dann immer aufrufen.
Funktionen immer dann anwenden, wenn du einen Rückgabewert brauchst (z. B. bei Umwandlungen oder wenn du z. B. bestimmte Zeichen aus einem String rauswerfen möchtest oder eine komplizierte Formel ständig berechnest). Bei dem Rest dann Prozeduren 
Für diesen Beitrag haben gedankt: navarro2010
|
|
beastofchaos
      
Beiträge: 247
Erhaltene Danke: 4
|
Verfasst: So 22.05.11 13:00
Für diesen Beitrag haben gedankt: navarro2010
|
|
navarro2010 
      
Beiträge: 25
Erhaltene Danke: 1
|
Verfasst: So 22.05.11 14:27
Delphi-Quelltext 1: 2: 3: 4:
| Function Add(a, b: Integer): Integer; begin result := a + b; end; |
Wie würde der komplette Quellcode dann aussehen und welche Elemente(Panel, Editfeld,...) müsste ich noch einfügen?
|
|
HenryHux
      
Beiträge: 542
Erhaltene Danke: 33
Windows 7 Premium
Delphi XE, Eclipse
|
Verfasst: So 22.05.11 14:31
Ich weiß nicht genau, was du jetzt vorhast aber angenommen du willst einem Label jetzt das Ergebnis geben dann schreibst du:
Delphi-Quelltext 1:
| label1.caption := inttostr(Add(1,2)); |
Wenn du Werte aus einem Editfeld übernehmen willst kannst du auch schreiben
Delphi-Quelltext 1:
| label1.caption := inttostr(Add(strtoint(Edit1.text), strtoint(Edit2.text))); |
lg
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 22.05.11 14:33
Das ist der ganze Code und du brauchst auch keine weiteren Steuerelemente. Wozu auch, wird ja auf keine zugegriffen.
Ich denke ein Grundlagentutorial oder Buch wäre ganz angebracht.
|
|
beastofchaos
      
Beiträge: 247
Erhaltene Danke: 4
|
Verfasst: So 22.05.11 14:58
Jep, ich hab mir auch alles per Buch und Ausprobieren beigebracht. Welche Delphi-Version hast du denn?
|
|
navarro2010 
      
Beiträge: 25
Erhaltene Danke: 1
|
Verfasst: So 22.05.11 15:20
|
|
beastofchaos
      
Beiträge: 247
Erhaltene Danke: 4
|
Verfasst: So 22.05.11 15:39
Gut, ich auch  Ich denke, du weißt, wie man sich ein Formular macht, Edits und Buttons setzt. Also sollteste das gut damit üben können. die OnClick-Prozedur von dem Button könnte dann so solche Funktionen und Prozeduren benutzen, um im EditFenster iwas einzugeben. Also z.B. Edit1.Text := IntToStr(Sub(Add(5, 7), 3)); (Das Ergebnis sollte 9 sein - das prüfste und wenns niht so ist, schau dir den Quelltext durch oder frag 
|
|