Newsgroup: it.comp.lang.delphi
Titolo: La sapevate, questa? (anche se non serve a niente)

L'ho scoperta per caso:
procedure Hello(const s: string; const b: Boolean = False);
begin
  if b then
    ShowMessage('Hello!!!')
  else
    ShowMessage('Hello by ' + s);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  Hello('Zio Paperone', ); //notare la virgola!
end;
-- 
Mauro Falzari 
   [ 
http://digilander.libero.it/mauro.falzari
 ]
 
 "Se guardi nell'abisso, anche l'abisso guarda in te." 
   (Friedrich Nietzsche)

 L'ho scoperta per caso:
ROTFL, sotto D6 lo fa, qualcuno lo ha provato sotto altre versioni?
-- 
I am what I am, I do what I can
Non trovi qualche cosa? 
http://url.repository.biz/go/1J


eh eh eh... in verita' serve, eccome: prova ad immaginare se devi riscrivere
una procedura perche' hai bisogno di estenderla aggiungendo un comportamento
in piu' con altri parametri....
E' sufficiente cambiare la dichiarazione aggiungendo il default per tutti gli
altri parametri in piu' che vorrai gestire. 
Questo ti permette di non dover intervenire su tutto il sorgente per cambiare
le vecchie invocazioni senza i parametri nuovi che hai aggiunto.
serve, eccome! :-))
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

end;
Beh non è vero che non serve niente ;-) 
Passare dei valori di dafault in alcuni casi è utile (e altre volte
pericoloso).
Comunque la virgola non serve.
Ciao :)
-- 
"La velocità luce non è sufficiente Comandante Nunziatella, 
dobbiamo passare alla velocità smodata!"

 ha scritto nel messaggio
news:Xns9492ADD9CD...@130.133.1.4...


 L'ho scoperta per caso:
Tempo fà ho scoperto una cosa del genere:
TMyClass = class
    value : integer;
  end;
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
.....
procedure TForm1.Button1Click(Sender: TObject);
var
 c: TMyClass;
begin
// senza inizializzare la classe
  c.value := 12;
  ShowMessage(IntToStr( c.value));
end;
certo quando chiudo la form mi da accessViolation .. però!!!
ciao
   gabriele

 end;
L'uso dei parametri opzionali è documentato.
Io lo uso abbastanza spesso in tutte quelle routine che generalmente al 99%
dei casi si devono comportare allo stesso modo.
Esempio: conversione Lire-euro, che riceve come parametro opzionale default
2 il numero di decimali per l'arrotondamento del risultato della funzione.
Generalmente la chiamo senza parametro, se proprio mi serve un caso
particolare è già pronta.
Il grosso vantaggio è che ti evita di fare l'overloading di procedure e
funzioni (o di dichiararne di simili), quando necessiti di estenderne le
funzionalità.
Ciao,
Gianluca.

 Comunque la virgola non serve.
appunto, lo so che non serve, anzi non dovrebbe proprio essere permessa dal 
compilatore di D6, che evidentemente ha un bug, infatti in D7 (post di Mirko 
Maestri) non č permesso.


 certo quando chiudo la form mi da accessViolation .. però!!!
infatti, quantomeno il compilatore lì avrebbe dovuto emettere un warning.


 
con il D2 non mi funge :-(.
ciao
-- 
------------------------------------
Per rispondere in privato togliere:
ADD1975

 con il D2 non mi funge :-(.
forse con il D2 non esistevano neanche i parametri passati per default (?)


 Maestri) non è permesso.
è permesso, senza virgola...
-- 
Ciao, Anto', [37, 143, AQ] 
MB C SC 220 CDI Magma Rot
"Di sempre cio' che senti e fai cio' che pensi."
    G.G. Màrquez


wrote:
Non avevo inteso :-) 
Comunque in questi casi il buon programmatore dice che non è un bug ma
un "feature"  :p
