Paramètres optionnels dans une fonction/procédure

Paramètres optionnels dans une fonction/procédure - Delphi/Pascal - Programmation

Marsh Posté le 25-04-2005 à 14:13:41    

Salut tout le monde,
 
En Visual Basic, je peux définir une fonction ou procédure avec des paramètres optionnels (grâce au mot clé "optional" ). J'ai regardé dans l'aide en ligne de Delphi 7 sans rien trouver qui s'y rapporte.
 
Est-ce que cette possibilité existe dans Delphi?

Reply

Marsh Posté le 25-04-2005 à 14:13:41   

Reply

Marsh Posté le 25-04-2005 à 15:27:40    

moi aussi j'ai cherché à faire un truc pareil la dernière fois en cours mais j'ai pas trouvé :-\

Reply

Marsh Posté le 26-04-2005 à 10:11:56    

Il suffit d'assigner une valeur par défaut aux paramètres optionnels :  
 
procedure MaProc(const UnText: string; const UnNombre: Integer = 0);
 
Si on appelle MaProc en ne passant qu'un texte, UnNombre sera à 0.


Message édité par antp le 26-04-2005 à 10:12:18

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-04-2005 à 10:22:45    

Ca marche aussi pour les constructeurs ? J'aimerais pouvoir avoir le choix entre TBidule.Create; et TBidule.Create('Le bidule de Cate', 32, Button1);. Ce ne serait pas encore aussi souple que du Java, mais ce serait déjà rudement plus confortable pour moi.

Reply

Marsh Posté le 26-04-2005 à 10:41:15    

Il y a quoi de plus en Java ? :??:
 
constructor Create; overload;
constructor Create(const S: string; const N: Integer; Obj: TObject); overload;
 
puis dans la définition des deux Create tu mets un "inherited Create" pour appeler le constructeur du parent.


Message édité par antp le 26-04-2005 à 10:41:21

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-04-2005 à 10:45:59    

Oh, Delphi s'en sort avec 36 constructors du même nom définis avec des paramètres différents ? Je pensais que Delphi identifiait les méthodes par leur nom, et pas par leur nom+paramètres. Alors oui, Java fait pas mieux sur ce coup-là.
 
Je suis cruche de pas avoir essayé... -_-

Reply

Marsh Posté le 26-04-2005 à 10:50:31    

Du moment que t'ajoutes "overload" derrière la déclaration pour indiquer qu'il y a plusieurs méthodes avec le même nom, ça passe ;)
On peut aussi faire des constructeurs qui s'appellent autrement que "Create" mais alors la relecture du code est un peu plus complexe :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-04-2005 à 10:58:44    

Ben, jadis, sous Turbo Pascal 7, je multipliais les noms des constructeurs, mais c'était pas pratique. Et j'en étais resté là, à la POO paléolithique (j'ai quand même appris l'héritage multiple, les propriétés et les private/published/tout ça hein). Bon j'arrête de flooder :). En tout cas c'était bon à savoir.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed