Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozedur mit "freiwilligen" Parametern? (https://www.delphipraxis.net/145450-prozedur-mit-freiwilligen-parametern.html)

JBJHJM 1. Jan 2010 21:55


Prozedur mit "freiwilligen" Parametern?
 
Ich habe eine Prozedur, die mir verschiedene spezielle Dialoge erstellen kann, so wird sie aufgerufen:
CDlg.create(Caption, Text, Typ, Image, var gedrückterButton, var Textoutput);

Die Variable "Textoutput" wird nur gebraucht, wenn als Typ 4 gewählt wird (mit einem Eingabefeld).
Ist es möglich, das ganze so zu konstruieren, dass die Variable Textoutput auch weggelassen werden kann, und die Prozedur trotzdem funktioniert (oder halt nur bei Typ 4 gefordert wird)?

Danke!

Matze 1. Jan 2010 22:03

Re: Prozedur mit "freiwilligen" Parametern?
 
Hallo,

ohne var-Parameter geht es so:

Delphi-Quellcode:
procedure MyCreate(Caption: string; Text: string; Textoutput: string = '');
Da ist der 3. Parameter optional.

Ich vermute, in deinem Fall musst du jedoch Delphi-Referenz durchsuchenoverload nutzen:

Delphi-Quellcode:
procedure MyCreate(Caption: string; Text: string; var Textoutput: string); overload;
begin
  // ...
end;

procedure MyCreate(Caption: string; Text: string); overload;
begin
  // ...
end;
Delphi sucht sich die richtige Prozedur anhand der Parameter aus, die du übergibst. Diese müssen sich daher von den Datentypen eindeutig unterscheiden.

Grüße, Matze

JBJHJM 2. Jan 2010 13:11

Re: Prozedur mit "freiwilligen" Parametern?
 
Danke schön!

himitsu 2. Jan 2010 13:24

Re: Prozedur mit "freiwilligen" Parametern?
 
Zitat:

Zitat von Matze
Delphi-Quellcode:
procedure MyCreate(Caption: string; Text: string; Textoutput: string = '');

PS: offiziell sind das keine freiwillige/variable Parameter,
sondern sogenannte Default-Parameter.

Also Parameter mir einem Default-/Standardwert, welcher verwendet wird, wenn dieser Parameter bei einem Fuktionsaufruf nicht angegeben wurde.

Matze 2. Jan 2010 13:27

Re: Prozedur mit "freiwilligen" Parametern?
 
Zitat:

Zitat von himitsu
Also Parameter mir einem Default-/Standardwert, welcher verwendet wird, wenn dieser Parameter bei einem Fuktionsaufruf nicht angegeben wurde.

Ja gut, aber es wäre im Endeffekt das, was er gerne gehabt hätte. ;)

himitsu 2. Jan 2010 13:49

Re: Prozedur mit "freiwilligen" Parametern?
 
jaaa, das stimmt schon ... aber kann doch nicht Schaden, wenn er weiß, was er da wirklich macht/verwendet :zwinker:

Matze 2. Jan 2010 13:51

Re: Prozedur mit "freiwilligen" Parametern?
 
Da hast du natürlich vollkommen Recht und diese ergänzende Info ist sinnvoll, keine Frage. :thumb:
So, genug Smalltalk. *g*


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 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