Funcoes c/ Mesmo Nome
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);
1ª
*****
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;
2ª
*****
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
As duas são chamadas da seguinte forma:
n:=3;
x:=zer(n,5);
1ª
*****
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;
2ª
*****
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
Curtidas 0
Respostas
Gandalf.nho
14/09/2004
Você deve usar a diretiva [b:b507a17e44]overload[/b:b507a17e44] após a declaração de cada função.
GOSTEI 0
Rômulo Barros
14/09/2004
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]); result:=s; end;
2ª
*****
function zer(v: string; z: integer=2): string; Overload; var s: string; begin FmtStr(s, ´¬.´+IntToStr(z)+´d´, [StrToInt(v)]); result:=s; end;
Dependendo do tipo de parâmetro a ser passado.. o delphi saberá qual das duas functions chamará.
:lol: :lol: :lol:
GOSTEI 0
Marcelo Saviski
14/09/2004
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]
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]
GOSTEI 0
Ricardoif
14/09/2004
Obrigado a ajuda de todos!!!!!
GOSTEI 0