Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - freiwillige Variablen an die Funktion übergeben


Aya - Do 17.10.02 14:39
Titel: freiwillige Variablen an die Funktion übergeben
Hi,

Ich habe eine funktion in der ich eine Variable die man übergeben muß gerne variabel machen will:


Quelltext
1:
function Bla(A: String; B: Integer): Boolean;                    


A muß (!!) man eingeben, und B soll freiwillig sein...

also es soll möglichsein die Funktion durch diese beiden aufrufe auszuführen:


Quelltext
1:
Bla('Hallo');                    


Quelltext
1:
Bla('Hallo',1);                    


das ganze hab ich hinbekommen durch:

Quelltext
1:
function Bla(A: String; B: Integer = 0): Boolean;                    


aber, da meine B-Variable vom typ her ein Record ist den ich erstellt habe, kommt als fehlermeldung immer das man diesem Typ keinen Default Wert zuweisen kann...

Weiß jemand wie ich das lösen könnte???

mir wäre es auch recht wenn man anstatt einer variable für B dann nil eingeben kann, aber das geht auchnet :(

Au'revoir,
Aya


LCS - Do 17.10.02 14:54

Hi
du könntest es zum Beispiel so machen:

Quelltext
1:
2:
function bla(A: string): boolean; overload;
function bla(A: string; B: Integer): boolean; overload;

Die Funktion Variante 1 erzeugt den Default für Parameter B und ruft dann Funktion Variante 2 auf. Also:

Quelltext
1:
2:
3:
4:
5:
6:
7:
function bla(A: string): boolean;
var
  defWert : integer;
begin
  defWert := 0;
  result := bla(A, defWert);
end;

Das haut auch mit deinem Record hin, weil du ihn nicht als Default deklarieren musst.

Gruss Lothar


Aya - Do 17.10.02 15:32

Danke :)