21-08-2008
|
Miembro
|
|
Registrado: sep 2006
Posts: 15
Reputación: 0
|
|
Efectivamente, la respuesta que te dieron es correcta! Debes llamar al constructor. Si no implementas uno nuevo, llamará al de la superclase. Por tanto el código quedaría algo así:
Cita:
unit Unit11;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables,Unit2;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
usuario:TUsuario;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
usuario:=TUsuario.Create;
usuario.poner(Edit1.Text);
end;
end.
|
Del mismo modo, el error se produjo al llamar a un objeto de la clase (un TEdit), sin haber creado una instancia de TUsuario. Si hubieras puesto una cadena constante, habría "colado":
Cita:
unit Unit11;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables,Unit2;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
usuario:TUsuario;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
usuario.poner('hola');
end;
end.
|
Un saludo.
|