![]() |
Freiwillige Variable...
Hi!
Wie kann ich, wenn ich eine Function mache, eine Rückgabevariable so deklarieren, das sie nicht angegeben werden MUSS, aber angegeben werden kann! also sowas in der art: function BSP(wert1,wert2:integer; var Rückgabewert1, rückgabewert2 : integer) : boolean; .... sodass also das rote freiwillg ist! gruß delphi |
Das geht leider nicht. Ein Vorgabeparameter ist nur möglich, wenn es sich um einen Wert-Parameter oder einen Konstantenparameter handelt, also so:
Delphi-Quellcode:
procedure DoSomething(var Wert1: Integer = 0); //geht nicht
procedure DoSomething(const Wert1: Integer = 0); //geht procedure DoSomething(Wert1: Integer = 0); //geht |
Hallo,
Du musst ja nicht unbedingt Integers als var-Parameter übergeben. Du kannst ja die Integer als PInteger deklarieren.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } function BSP(wert1,wert2:integer;R1 : PInteger = Nil;R2 : PInteger = Nil) : boolean; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} { TForm1 } { TForm1 } function TForm1.BSP(wert1, wert2: integerR1 : PInteger = Nil;R2 : PInteger = Nil): boolean; begin {Damit hier irgendetwas passiert} Result:=True; If wert1=wert2 then Result:=True; If (wert1<>wert2) and (R1<>Nil) and (R2<>Nil) then begin R1^:=wert2; R2^:=wert1; end; end; procedure TForm1.Button1Click(Sender: TObject); var a,b : Integer; begin a:=5; b:=6; BSP(a,b,@a,@b); {Schau Dir mal hier die Werte für a und b an } end; end. |
Du könntest auch mehrere Funktionen gleichen Namens mit "overload" deklarieren und dann getrennt implementieren. So irgendwie:
Delphi-Quellcode:
type
TForm1 = class(TForm) private { Private-Deklarationen } public function my_function(param1 : Integer; var my_var : Integer) : Boolean; overload; function my_function(param1 : Integer) : Boolean; overload; { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} function tform1. my_function(param1 : Integer; var my_var : Integer) : Boolean; begin my_var:=1; result:=true; end; function tform1. my_function(param1 : Integer) : Boolean; begin result:=false; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz