AGB  ·  Datenschutz  ·  Impressum  







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

Optionale Parameter

Ein Thema von DerKapitalist · begonnen am 30. Dez 2002 · letzter Beitrag vom 3. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
DerKapitalist

Registriert seit: 25. Dez 2002
37 Beiträge
 
#1

Optionale Parameter

  Alt 30. Dez 2002, 17:41
Hi,

ich erinnere mich, dass ich in VBasic damals Parameter als optional übergeben konnte (sprich, es ist nciht notwendig diese Parameter zu setzen)

ich habe nichts vergleichbares in Delphi gefunden, irre ich mich da?

danke!
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#2
  Alt 30. Dez 2002, 17:51
Hallo DerKapitalist, ich hab jetzt nicht gesucht danach, aber geht das nicht in dem man den betreffenden Parameter schon in der Deklaration initialisiert? Ich meine so:

function MyFunction(a: integer; b: integer=0):TSomeType; Bin mir wie gesagt nicht sicher.
Gruß, Sebastian
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#3
  Alt 30. Dez 2002, 17:54
Ja so gehts. Gibt aber noch ein paar (notwendige!) Regeln dazu, such mal in der OH nach "Default parameters".

Gruß, Sebastian
  Mit Zitat antworten Zitat
DerKapitalist

Registriert seit: 25. Dez 2002
37 Beiträge
 
#4
  Alt 30. Dez 2002, 17:57
danke!
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#5
  Alt 30. Dez 2002, 22:17
Hallo!

Es gibt noch eine weitere Möglichkeit: OVERLOAD! Damit kannst Du mehrere Prozeduren/Funktionen mit demselben Namen, aber unterschiedlichen Parameterlisten schreiben. Der Compiler erzeugt dann Code, der die von den Parametern her "richtige" Routine aufruft. Die können sich sogar gegenseitig aufrufen. Beispiel:
Code:
function Test(S: string; I:integer): integer; overload;
begin
  // der gewünschte Code
end;

function Test(S: string): integer; overload;
begin
  Result:= Test (S, 0);
end;
Man muß nur für jede mögliche Parameter-Kombination eine Funktion schreiben. Hier wäre ja die Initialisierung in Ordnumg, aber bei einem optionalen VAR-Parameter (var I:integer) hilft nur Overload!

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
DerKapitalist

Registriert seit: 25. Dez 2002
37 Beiträge
 
#6
  Alt 30. Dez 2002, 22:20
danke! ich habe aber überladene Methoden bewusst nicht verwendet, es ging mir einfach nur um optionale Parameter... leider funktioniert das mit dynamische Arrays nicht.

Im Prinzip fuehrt meine Funktion das selbe aus, deshalb kein overload, ich dachte mir nur, es ist etwas stylischer das so zu programmieren
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 31. Dez 2002, 00:38
Moin Zusammen,

da gibt's doch aber einen gravierenden Unterschied:

overload wendet man an, wenn Funktionen gleichen Namens mit unterschiedlichen Parametertypen und Anzahlen aufrufen können soll, und default parameter, wenn einer oder mehrere der Parameter einen Standardwert bekommen können, so dass man nicht alle mitschreiben muss.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#8

Re: Optionale Parameter

  Alt 23. Nov 2007, 18:45
Ich hätte da auch eine Frage zu den Standartwerten...

Wenn ich nun mehrere Default Parameter Deklariert habe und möchte bei dem proceduraufruft die ersten beiden auf standart lassen, und den letzten ändern.

Beispiel:
Delphi-Quellcode:
Procedure TForm1.Machwas(param0:String;param1:integer=1;param2:integer=2;param3:integer=3);
begin
  // Mach irgendwas;
end;
Wenn ich nun nur den Parameter3 einen Neuen wert verpassen will, wie stelle ich es an ?

Machwas('test',?,?,9); // ?????
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

Re: Optionale Parameter

  Alt 23. Nov 2007, 18:56
Dann wirst Du AFAIK alle Parameter übergeben müssen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Optionale Parameter

  Alt 23. Nov 2007, 18:56
Das geht so nicht. Du müsstest dann auch einen Wert für die anderen Parameter festlegen oder einen wert, den du dann im Programm durch den Standradwert ersetzt.
Markus Kinzler
  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 00:23 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