Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-08-2012
linuxtin linuxtin is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 30
Poder: 0
linuxtin Va por buen camino
Problema con constructor..

Hola a todos! Me estoy volviendo loco no puedo crear el objeto de la clase TPersona desde otro form, acá les dejo el código de la clase.


Código Delphi [-]
unit Persona;



interface
uses SysUtils, Classes;

type

  TPersona=Class
   private

      idPersona:string;
      apellido:string;
      nombre:string;
      dni:string;
      fechaNacimiento:TDate;
      provincia:string;
      ciudad:string;
      codigoPostal:integer;
      direccion:string;
      codigoArea:integer;
      telefono:string;



   public

    constructor Create; overload;
    constructor Create(Apellido:string;Nombre:string);overload;





   published

   property SetGetApellido: string read apellido write apellido;
   property SetGetNombre: string read nombre write nombre;






END;


implementation


constructor TPersona.Create(Apellido: string; Nombre: string);
begin


      apellido:=Apellido;
      nombre:=Nombre;
end;


constructor TPersona.Create;
begin

end;

end.


y en el form lo llamo de esta manera




Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
    persona:TPersona;

begin

         persona:=TPersona.Create('Juan','Pedro');
         Edit3.Text:=persona.SetGetApellido;



end;

end
.



Si alguien me puede dar una mano, desde ya muchas gracias!!
Responder Con Cita
  #2  
Antiguo 08-08-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola linuxtin, no dices que error te sale, en uses debes añadir la unit Persona que supongo lo haces. Otra cosa que veo, apellido y nombre tienen el mismo nombre que tus parametros del constructor (delphi no hace diferencia entre mayusculas y minusculas) cambia los nombres.

Código Delphi [-]
constructor TPersona.Create(aApellido: string; aNombre: string);
begin
  apellido:=aApellido;
  nombre:=aNombre;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 08-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola linuxtin.

Proba de este modo:
Código Delphi [-]
unit uPersona;

interface

uses SysUtils, Classes;

type
  TPersona=Class
   private
    idPersona:string;
    FApellido:string;
    FNombre:string;
    //...
   public
    constructor Create(Apellido:string; Nombre:string);
    //... 
   published
    property Apellido: string read FApellido write FApellido;
    property Nombre: string read FNombre write FNombre;
    //...
  end;

implementation

constructor TPersona.Create(Apellido: string; Nombre: string);
begin
  FApellido:= Apellido;
  FNombre:= Nombre;
end;

//...

end.

Código Delphi [-]
...
implementation

uses uPersona;

procedure TForm1.Button1Click(Sender: TObject);
var
  Persona: TPersona;
begin
  Persona:= TPersona.Create('TRUENO','PEPE');
  ShowMessage(Persona.Nombre+' '+Persona.Apellido);
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 08-08-2012
linuxtin linuxtin is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 30
Poder: 0
linuxtin Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola linuxtin.

Proba de este modo:
Código Delphi [-]
unit uPersona;

interface

uses SysUtils, Classes;

type
  TPersona=Class
   private
    idPersona:string;
    FApellido:string;
    FNombre:string;
    //...
   public
    constructor Create(Apellido:string; Nombre:string);
    //... 
   published
    property Apellido: string read FApellido write FApellido;
    property Nombre: string read FNombre write FNombre;
    //...
  end;

implementation

constructor TPersona.Create(Apellido: string; Nombre: string);
begin
  FApellido:= Apellido;
  FNombre:= Nombre;
end;

//...

end.

Código Delphi [-]
...
implementation

uses uPersona;

procedure TForm1.Button1Click(Sender: TObject);
var
  Persona: TPersona;
begin
  Persona:= TPersona.Create('TRUENO','PEPE');
  ShowMessage(Persona.Nombre+' '+Persona.Apellido);
end;

Saludos.


Gracias chicos!! Efectivamente era eso, pensé que estaba mal declarado algo.

Como ven declarada la clase? Algo que esta mal?

Gracias !!
Responder Con Cita
  #5  
Antiguo 08-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por linuxtin Ver Mensaje
Como ven declarada la clase? Algo que esta mal?
Hola.

No... Pero podrías agregar algunos detalles a efectos de optimizar el ingreso de los valores:
Código Delphi [-]
...
type
  TPersona=Class
   private
    idPersona:string;
    FApellido:string;
    FNombre:string;
    //...
    function GuardarApellido: Boolean;
    function GuardarNombre: Boolean;
    procedure SetApellido(const Value: string);
    procedure SetNombre(const Value: string);
    //
   public
    constructor Create(aApellido:string; aNombre:string);
    //...
   published
    property Apellido: string read FApellido write SetApellido stored GuardarApellido;
    property Nombre: string read FNombre write SetNombre stored GuardarNombre;
    //...
  end;

implementation

constructor TPersona.Create(aApellido: string; aNombre: string);
begin
  Apellido:= aApellido;
  Nombre:= aNombre;
end;

function TPersona.GuardarApellido: Boolean;
begin
  Result:= FApellido <> '';
end;

function TPersona.GuardarNombre: Boolean;
begin
  Result:= FApellido <> '';
end;

procedure TPersona.SetApellido(const Value: string);
begin
  if Value <> FApellido then
    FApellido:= Value;
end;

procedure TPersona.SetNombre(const Value: string);
begin
  if Value <> FNombre then
    FNombre:= Value;
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con el constructor de una clase Ledian_Fdez C++ Builder 1 05-04-2010 13:59:23
Constructor de forms lafirma OOP 6 07-11-2006 15:15:55
Implementar el constructor de una clase Alcolea OOP 2 14-06-2006 07:39:05
Constructor kalimero OOP 8 07-09-2005 18:00:11
constructor y destructor gustavo2 OOP 11 23-04-2004 21:23:20


La franja horaria es GMT +2. Ahora son las 00:09:47.


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
Copyright 1996-2007 Club Delphi