Ver Mensaje Individual
  #12  
Antiguo 21-08-2008
HySTD HySTD is offline
Miembro
 
Registrado: sep 2006
Posts: 15
Reputación: 0
HySTD Va por buen camino
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.
Responder Con Cita