Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Procedure Vs. Function (https://www.delphipraxis.net/3729-procedure-vs-function.html)

Steffen 27. Mär 2003 11:58


Procedure Vs. Function
 
Hallo!

Ich habe mal eine ganz allgemeine Frage zur Performance.

Ich habe gerade eine Prozedur geschrieben, die folgende Syntax hat:

Delphi-Quellcode:
Procedure AddSum(var Summe : byte);
begin
  Summe := Summe + [Rechnung...]
end;
nun frage ich mich gerade, ob eine Funktion in folgender Form schneller/sinnvoller wäre:

Delphi-Quellcode:
function AddSum(Summe : Byte) : Byte;
begin
  AddSum := Summe + [Rechnung...]
end;
Ich denke schon, doch wollte ich auch mal eure Meinung dazu hören!

Gruss,
Steffen

jbg 27. Mär 2003 12:03

Es kommt auf den Zusammenhang in dem die Funktion/Prozedur benutzt wird an. Die Prozedur benötigt 2 Speicherzugriffe mehr (am Anfang und am Ende). Jedoch kann es bei der Funktion passieren, dass der zurückgelieferte Wert zuerst einmal aus dem Speicher geladen werden muss um nach der Funktion wieder in der Speicher geschrieben zu werden. Somit entsteht kein Geschwindigkeits-Unterschied.

Steffen 27. Mär 2003 12:08

Okay, damit wäre das Geschwindigkeitsproblem geklärt...

Danke! :)

masters001 18. Jul 2003 14:04

Re: Procedure Vs. Function
 
Hallo ich habe auch noch eine Frage zu proceduren, wenn ich in meinem prog eine procedure erstelle, ist es dann nur so möglich das ich alle variablen und objecte die ich in der procedure benötige manuell einbinde?
Also:
Delphi-Quellcode:
procedure gmx(NMPOP3:TNMPOP3;NMSMTP1:TNMSMTP;MAILButton1:TButton.........);
Denn ich brauche dort bestimmt 30 Variablen!
Oder ist es auch möglich durch einen Befehl sofort alle im prog verfügbaren Variablen sofort einzubinden?

cu masters001

Luckie 18. Jul 2003 14:10

Re: Procedure Vs. Function
 
Wie wäre es mit einem Record?

RomanK 18. Jul 2003 14:10

Re: Procedure Vs. Function
 
Wenn du in dem Form die Variable hier hinschreibst dann kannst du die Variable in allen Proceduren dieser Unit benutzen
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  // <--- HIER

Christian Seehase 18. Jul 2003 14:10

Re: Procedure Vs. Function
 
Moin Masters,

dafür könnte es sich glatt lohnen einen neuen Typ (Record) zu deklarieren der die ganzen Werte enthält. Dann brauchst Du nur noch eine Variable zu übergeben, und kannst in der Prozedur dann auf die Felder des Records zugreifen.

Zitat:

Zitat von masters001
Oder ist es auch möglich durch einen Befehl sofort alle im prog verfügbaren Variablen sofort einzubinden?

Nicht das ich wüsste. Wozu auch?


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