Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2008
Avatar de totote
totote totote is offline
Miembro
 
Registrado: oct 2006
Posts: 150
Poder: 18
totote Va por buen camino
Lightbulb Agregar Parametro a Create

Buenas gente, cómo puedo hacer para agregar un parametro a un constructor, la idea es, yo tengo varios formularios en el cual se le asigna un código, lo que quiero hacer es que cuando creo el formulario a parte del parametro de siempre :P le pase un número que va a ser el código que le asigno, lo que habia hecho era esto:

Código Delphi [-]
type
  TfrmBase = class(TForm)
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    Cod: Integer;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent; ID: Integer); override;
  end;

constructor TfrmBase.Create(AOwner: TComponent; ID: Integer);
begin
  inherited;
  Cod:= ID;
end;

Pero me da el error :
Declaration of 'Create' differs from previous declaration

Agradeceria cualquier tipo de ayuda.

Saludos
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS
Responder Con Cita
  #2  
Antiguo 11-08-2008
Avatar de totote
totote totote is offline
Miembro
 
Registrado: oct 2006
Posts: 150
Poder: 18
totote Va por buen camino
Smile

Bueno chusmeando un poco de código de delphi encontre la solucion, en ves de modificar el create, creo otro constructor y el código sería así:

Código Delphi [-]
type
  TfrmBase = class(TForm)
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    Cod: Integer;
  public
    { Public declarations }
    constructor CreateNew(AOwner: TComponent; ID: Integer); virtual;
  end;

constructor TfrmBase.CreateNew(AOwner: TComponent; ID: Integer);
begin
  inherited Create(AOwner);
  Cod:= ID;
end;

De esa manera me funcionó.

Saludos
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS
Responder Con Cita
  #3  
Antiguo 11-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
si haces override, lo que estas es 'reescribiendo' una funcion anterior, por lo que la nueva función debe tener la misma estructura. Prueba de poner 'overload', creando asi dos tipos de constructores (uno sin id, el otro con) (no podras usar el inherited, tendras que usar Create(AOwner))
Responder Con Cita
  #4  
Antiguo 11-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Veo q te adelantaste . Lo más correcto, igualmente, es el 'overload' te dejo la ayuda de delphi

Cita:
A method can be redeclared using the overload directive. In this case, if the redeclared method has a different parameter signature from its ancestor, it overloads the inherited method without hiding it. Calling the method in a descendant class activates whichever implementation matches the parameters in the call.
If you overload a virtual method, use the reintroduce directive when you redeclare it in descendant classes. For example,

Última edición por coso fecha: 11-08-2008 a las 14:16:59.
Responder Con Cita
  #5  
Antiguo 11-08-2008
Avatar de totote
totote totote is offline
Miembro
 
Registrado: oct 2006
Posts: 150
Poder: 18
totote Va por buen camino
Grax coso por la data y te consulto de donde sacaste la info para tenerla de referencia para la proxima jeje.

Saludos y nuevamente Grax
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS
Responder Con Cita
  #6  
Antiguo 11-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
X) pues de la OOP, aunque ahora hay tantas palabrejas (estaba leyendo lo de virtual y reintroduce) que ya uno se pierde La cita es de la ayuda del Delphi

Última edición por coso fecha: 11-08-2008 a las 14:26:20.
Responder Con Cita
Respuesta



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
Pregunta ? Create !! pmtzg Varios 1 31-01-2008 17:23:22
Orientacion con Create(self) pmtzg Varios 1 28-01-2008 22:34:01
Funcion Create de SQL GerTorresM SQL 3 07-09-2007 13:00:43
Create Function rickymarti Firebird e Interbase 1 02-12-2004 10:37:00
Can't create socket juanchi Internet 1 09-10-2003 17:58:57


La franja horaria es GMT +2. Ahora son las 06:13:23.


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