Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Optionaler Parameter (https://www.delphipraxis.net/78675-optionaler-parameter.html)

EWeiss 9. Okt 2006 10:42


Optionaler Parameter
 
Hi

Ich möchte gerne in einer Function einen Optionalen parameter übergeben
Wie wird dieser deklariert?

gruß

Klaus01 9. Okt 2006 10:45

Re: Optionaler Parameter
 
Dazu gibt es keine Kennzeichnung.

Diese Funktionalität bekommst Du nur wenn Du Objektmethoden überlädtst.
Hilfe-> overload.

Grüße
Klaus

EWeiss 9. Okt 2006 10:47

Re: Optionaler Parameter
 
Zitat:

Zitat von Klaus01
Dazu gibt es keine Kennzeichnung.

Diese Funktionalität bekommst Du nir wenn Du Objektmethoden überlädtst.
Hilfe-> overload.

Grüße
Klaus

werds mir mal anschauen ;)
Danke

gruß

PUSCH ...

Komm nicht ganz klar
Das wäre meine VB Zeile!
Code:
Public Function AddWindow(ByVal hwnd As Long, Optional ByVal hWndParent As Long = 0) As Boolean
Delphi-Quellcode:
function AddWindow(Handle: Integer; Optional hWndParent: Integer := 0): Boolean;
Das geht ja leider nicht.

Kann man den Parameter nicht in einer anderen weise direkt als Defaultwert übergeben ?
Delphi-Quellcode:
Optional hWndParent: Integer := 0
gruß

CalganX 9. Okt 2006 10:50

Re: Optionaler Parameter
 
Hi,
alternativ kannst du auch folgendes machen:
Delphi-Quellcode:
procedure ProcWithOptParam(a, b, c: string; d: integer; e: string = 'default');
Chris

sakura 9. Okt 2006 10:50

Re: Optionaler Parameter
 
Zitat:

Zitat von Klaus01
Dazu gibt es keine Kennzeichnung.

Das ist schlichtweg falsch! Optionale Parameter müssen in Delphi immer am Ende stehen, die Anzahl derer ist fast unbegrenzt ;)
Delphi-Quellcode:
procedure MitOptionalenParams(NichtOptional: string; Optional: string = 'standardWert'; AuchOptional: Byte = 1);
...:cat:...

EWeiss 9. Okt 2006 10:56

Re: Optionaler Parameter
 
Zitat:

Zitat von sakura
Zitat:

Zitat von Klaus01
Dazu gibt es keine Kennzeichnung.

Das ist schlichtweg falsch! Optionale Parameter müssen in Delphi immer am Ende stehen, die Anzahl derer ist fast unbegrenzt ;)
Delphi-Quellcode:
procedure MitOptionalenParams(NichtOptional: string; Optional: string = 'standardWert'; AuchOptional: Byte = 1);
...:cat:...

Ahh das sieht schon mal nicht schlecht aus! ;)

Delphi-Quellcode:
function AddWindow(Handle: Integer; hWndParent: Integer = 0): Boolean;
Danke.

gruß

Phoenix 9. Okt 2006 11:03

Re: Optionaler Parameter
 
Urgs. Naja, die 'richtige' Methode default Parameter zu übergeben ist eigentlich tatsächlich das überschreiben.

Will heissen Du machst eine Methode die diesen Parameter annimmt und eine weitere, die diesen Parameter nicht annimmt und die andere Methode mit ihren eigenen Argumenten plus dem vorbelegten Wert aufruft.

Hat zum einen den Vorteil, dass Du die Standardbelegung bei Bedarf parametrisieren kannst und zum anderen ist das leichter Wartbar. Ist zwar eher ne Stilfrage, aber ich hab anfangs in C# auch Defaultparameter schmerzlich vermisst und inzwischen favorisiere ich die sauberere OOP-Lösung mit dem Überschreiben.

EWeiss 9. Okt 2006 11:17

Re: Optionaler Parameter
 
Zitat:

Zitat von Phoenix
Urgs. Naja, die 'richtige' Methode default Parameter zu übergeben ist eigentlich tatsächlich das überschreiben.

Will heissen Du machst eine Methode die diesen Parameter annimmt und eine weitere, die diesen Parameter nicht annimmt und die andere Methode mit ihren eigenen Argumenten plus dem vorbelegten Wert aufruft.

Hat zum einen den Vorteil, dass Du die Standardbelegung bei Bedarf parametrisieren kannst und zum anderen ist das leichter Wartbar. Ist zwar eher ne Stilfrage, aber ich hab anfangs in C# auch Defaultparameter schmerzlich vermisst und inzwischen favorisiere ich die sauberere OOP-Lösung mit dem Überschreiben.

Kleines Beispiel anhand meiner Codezeile ?
Brauche Input .. Nach Hause Telefonieren ;)

gruß

Union 9. Okt 2006 11:20

Re: Optionaler Parameter
 
Delphi-Quellcode:
function AddWindow(Handle: Integer; hWndParent: Integer): Boolean; overload;
function AddWindow(Handle: Integer; ): Boolean; overload;

implementation

function AddWindow(Handle: Integer; hWndParent: Integer): Boolean;
begin
   // Programmcode...
end;

function AddWindow(Handle: Integer ): Boolean;
begin
   AddWindow(Handle, 0);
end;

EWeiss 9. Okt 2006 11:27

Re: Optionaler Parameter
 
Zitat:

Zitat von Union
Delphi-Quellcode:
function AddWindow(Handle: Integer; hWndParent: Integer): Boolean; overload;
function AddWindow(Handle: Integer; ): Boolean; overload;

implementation

function AddWindow(Handle: Integer; hWndParent: Integer): Boolean;
begin
   // Programmcode...
end;

function AddWindow(Handle: Integer ): Boolean;
begin
   AddWindow(Handle, 0);
end;

Danke das ist super Service werde es genauso machen!
Direkt von Anfang an richtig so wie es sein muss!

gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr.
Seite 1 von 2  1 2      

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