Funcoes c/ Mesmo Nome

14/09/2004

Estou tentando escrever duas funcoes com nomes iguais, onde o que vai mudar é o tipo de variável dos parâmetros, mas o resultado é o mesmo.
As duas são chamadas da seguinte forma:

n:=3;
x:=zer(n,5);


*****
function zer([b:622544391e]v: integer[/b:622544391e]; z: integer=2): string;
var
s: string;
begin
FmtStr(s, ´¬.´+IntToStr(z)+´d´, [v]);
result:=s;
end;


*****
function zer([b:622544391e]v: string[/b:622544391e]; z: integer=2): string;
var
s: string;
begin
FmtStr(s, ´¬.´+IntToStr(z)+´d´, [StrToInt(v)]);
result:=s;
end;


agradeço a todos


Ricardoif

Respostas

14/09/2004

Gandalf.nho

Você deve usar a diretiva [b:b507a17e44]overload[/b:b507a17e44] após a declaração de cada função.


Responder Citar

14/09/2004

Rômulo Barros

Você deve usar a diretiva [b:46bec95939]overload[/b:46bec95939] após a declaração de cada função.


Concluindo:

function zer(v: integer; z: integer=2): string; Overload;
var 
s: string; 
begin 
FmtStr(s, ´¬.´+IntToStr(z)+´d´, [v&93;); 
result:=s; 
end; 



*****
function zer(v: string; z: integer=2): string; Overload;
var 
s: string; 
begin 
FmtStr(s, ´¬.´+IntToStr(z)+´d´, &91;StrToInt(v)&93;); 
result:=s; 
end; 


Dependendo do tipo de parâmetro a ser passado.. o delphi saberá qual das duas functions chamará.
:lol: :lol: :lol:


Responder Citar

14/09/2004

Marcelo Saviski

Só mais um detalhezinho.

Isso:
[color=green:cf5bcae060]FmtStr(s, ´¬.´+[/color:cf5bcae060][color=red:cf5bcae060][b:cf5bcae060]IntToStr(z)[/b:cf5bcae060][/color:cf5bcae060][color=green:cf5bcae060]+´d´, [v]);[/color:cf5bcae060]
é igual a isso:
[color=green:cf5bcae060]FmtStr(s, ´¬.[/color:cf5bcae060][b:cf5bcae060][size=14:cf5bcae060][color=red:cf5bcae060]*[/color:cf5bcae060][/size:cf5bcae060][/b:cf5bcae060][color=green:cf5bcae060]d´, [v, [/color:cf5bcae060][b:cf5bcae060][color=red:cf5bcae060]z[/color:cf5bcae060][/b:cf5bcae060][color=green:cf5bcae060]]);[/color:cf5bcae060]


Responder Citar

15/09/2004

Ricardoif

Obrigado a ajuda de todos!!!!!


Responder Citar