AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Optionaler Parameter

Ein Thema von EWeiss · begonnen am 9. Okt 2006 · letzter Beitrag vom 9. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

Optionaler Parameter

  Alt 9. Okt 2006, 10:42
Hi

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

gruß
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Optionaler Parameter

  Alt 9. Okt 2006, 10:45
Dazu gibt es keine Kennzeichnung.

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

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: Optionaler Parameter

  Alt 9. Okt 2006, 10:47
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
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 ?
Optional hWndParent: Integer := 0 gruß
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Optionaler Parameter

  Alt 9. Okt 2006, 10:50
Hi,
alternativ kannst du auch folgendes machen:
procedure ProcWithOptParam(a, b, c: string; d: integer; e: string = 'default'); Chris
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Optionaler Parameter

  Alt 9. Okt 2006, 10:50
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
procedure MitOptionalenParams(NichtOptional: string; Optional: string = 'standardWert'; AuchOptional: Byte = 1); ......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

Re: Optionaler Parameter

  Alt 9. Okt 2006, 10:56
Zitat von sakura:
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
procedure MitOptionalenParams(NichtOptional: string; Optional: string = 'standardWert'; AuchOptional: Byte = 1); ......
Ahh das sieht schon mal nicht schlecht aus!

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

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#7

Re: Optionaler Parameter

  Alt 9. Okt 2006, 11:03
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: Optionaler Parameter

  Alt 9. Okt 2006, 11:17
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ß
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Optionaler Parameter

  Alt 9. Okt 2006, 11:20
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;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

Re: Optionaler Parameter

  Alt 9. Okt 2006, 11:27
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ß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 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