Erro em uma função simples.

23/05/2003

2

Ainda estou me iniciando no Delphi, e estou com dificuldade em utilizar uma função.
Para exemplificar, eis o código de uma pequena função, mas que está me retornando o erro ´Too many actual parameters´ na linha onde chamo por ela.
Alguém pode me auxiliar? (Utilizo o Delphi 6).

unit teste;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Mask, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Edit1Exit(Sender: TObject);
private
function dobro1:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
{$R *.dfm}

function Dobro1(valor:integer):integer;
begin
result := valor * 2;
end;

procedure TForm1.Edit1Exit(Sender: TObject);
var
Total : integer;
Numero :integer;
begin
Numero := strTOint(Edit1.Text);
Total := dobro1(Numero); //Ocorre erro nesta linha: ´Too many actual parameters´.
Edit2.Text := intTOstr(Total);
end;

end.


Responder

Posts

23/05/2003

Ggean

Facil, alenxandre7, verifique que vc quando declarou na secao private vc nao deixou nenhum parametro

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Edit1Exit(Sender: TObject);
private
function dobro1:integer;//AQUI Ó
{ Private declarations }
public

Declare Function Dobro1(numero:integer):integer;

aí na hora de fazer a funcao adcione o Tform1.
assim

function Tform1.Dobro1(valor:integer):integer;
begin
result := valor * 2;
end;

Espero que resolva.
Um abraco meu caro.
Gean carlos.


Responder

23/05/2003

Rmfb

Olhei.... Olhei...... e olhei o seu código e nao encontrei erro algum.

Entao, resolvi copiá-lo e testá-lo na minha máquina.

Copiei e teste... DEU TUDO CERTO... AÍ NAUM TEM NADA ERRADO. :x :x
:x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x


Responder

23/05/2003

Aroldo Zanela

Colega,

A resposta do GGean está correta, ou seja, da mesma maneira que você define o ´esqueleto´ da função na interface, ela deve ser implementada.

Errado:
function dobro1:integer;


Correto:
Function Dobro1(numero:integer):integer



Responder

26/05/2003

Rmfb

Entretanto, com um pouquinho + bem pouqinho mesmo de lógica, vc entederia que eu coloquei direto na secao IMPLEMENTATION........... Precipticao por sua parte.


Responder