Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Funciones en delphi (https://www.clubdelphi.com/foros/showthread.php?t=30405)

fmtidona 05-04-2006 14:29:40

Funciones en delphi
 
Este codigo me da error al compilarlo en la parte de la declaracion de la funcion, que estoy haciendo mal? gracias
Código Delphi [-]
unit aprendiendo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    function mul(x:integer):integer;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function mul(x:integer):integer;
begin
  mul:=(x*x);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a:integer;
begin

   a:=mul(3);
   label1.Caption:=inttostr(a);

end;

end.

marcoszorrilla 05-04-2006 14:40:18

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

  function mul(x:integer):integer;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function mul(x:integer):integer;
begin
mul:=(x*x);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
begin

a:=mul(3);
label1.Caption:=inttostr(a);
end;

end.

Un Saludo.

Bicho 05-04-2006 14:41:55

Hola, primero de todo, por favor usa las TAG, las etiquetas para envolver el código, en este caso la etiqueta [delphi], así será más legible para todos.

En cuanto a tú pregunta, has creado un a función en una instancia de la clase TForm, que en tu caso esta instancia la llamas TForm1, en la parte de declaración lo has hecho correctamente, pero en la parte de implementación no, debes asignarle la clase a la que pertenece esa función, ya que puede haber otras clases en la unit que tengan declarada una función con ese mismo nombre. Si te fijas, ocurre lo mismo con el evento OnClick del button1 que tienes en el formulario, fijate que en la parte de implementación aparece el TForm1. antes del nombre de la función, en este caso procedimiento. Sólo tienes que añadir TForm1. antes del nombre de la función en la parte de implementación.

Así tu código quedaría de la siguiente manera:
Código Delphi [-]
unit aprendiendo;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
function mul(x:integer):integer;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.mul(x:integer):integer;
begin
mul:=(x*x);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
begin

a:=mul(3);
label1.Caption:=inttostr(a);

end;

end.

Saludos


La franja horaria es GMT +2. Ahora son las 19:25:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi