Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-02-2024
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 18
Poder: 0
_Io Va por buen camino
Error al crear objeto dentro de una clase

Hola.

Tengo un problema y sinceramente no sé porque pasa, a ver si vosotros dais con la tecla.

Tengo esta clase, generada automáticamente desde un fichero wsdl:

Código Delphi [-]

AltaFactuSistemaFacturacion = class(SistemaFacturacionAltaFact)
  private
    FRegistroAltaFacturas: Array_Of_FacturasEmitidasType;
  public
    destructor Destroy; override;
  published
    property RegistroAltaFacturas: Array_Of_FacturasEmitidasType  Index (IS_UNBD) read FRegistroAltaFacturas write FRegistroAltaFacturas;
  end;

Cuando intento crear el objeto directamente desde un formulario, mediante cualquier evento, pulsar botón, create, etc.
funciona sin pegas.
Código Delphi [-]

procedure TForm1.UnProcedimieunto;
  var AltaFSF :SistemaFacturacionAltaFact
begin
....
  AltaFSF:=SistemaFacturacionAltaFact.create;
.......
end;


Pero si lo intento hacer dentro de una clase, me da error al ejecutar, lo compila perfectamente.
En este ejemplo, creo el objero de cMyClase y en el momento que llamo a UnMetodo, da error
de acces violation.

Código Delphi [-]

type

   cMyClase = class (TComponent)
   private
      AltaFSF :SistemaFacturacionAltaFact
   public
      procedure UnMetodo;
   end;

implementation

procedure cMyClase.UnMetodo;
begin
....
  AltaFSF:=SistemaFacturacionAltaFact.create;
.......
end;


Sabéis el motivo ??


Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 01-02-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo he probado un ejemplo sencillo con lo mismo que has puesto tú y me funciona sin problemas, como debe ser.
Está claro que algún código que no has puesto no funciona correctamente.


En estos casos lo más sencillo es, crear un pequeño programa de ejemplo con lo mínimo y donde se reproduzca el error, y adjuntarlo al mensaje para que los demás puedan probarlo y ver dónde está el problema.


La mayoría de las veces:
a) Al crear el ejemplo nos damos cuenta de algún error "tonto" que hemos cometido (a mi me pasa).
b) Los demás ven rápido el despiste.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 01-02-2024
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 18
Poder: 0
_Io Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Yo he probado un ejemplo sencillo con lo mismo que has puesto tú y me funciona sin problemas, como debe ser.
Está claro que algún código que no has puesto no funciona correctamente.


En estos casos lo más sencillo es, crear un pequeño programa de ejemplo con lo mínimo y donde se reproduzca el error, y adjuntarlo al mensaje para que los demás puedan probarlo y ver dónde está el problema.


La mayoría de las veces:
a) Al crear el ejemplo nos damos cuenta de algún error "tonto" que hemos cometido (a mi me pasa).
b) Los demás ven rápido el despiste.
Hola.

Pues más razón que un santo.

He hecho un ejemplo muy simple y ha funcionado.

Pero también he conseguido reproducir el fallo.

Este código compila sin problemas, pero al ejecutar el método CreaObjeto, da error
Código Delphi [-]
type

  myClass = class (TComponent)
  private
    AltaFactuSistemaFacturacion :AltaFactuSistemaFacturacion;
  public
    procedure CreaObjeto;
  end;


implementation

procedure myClass.CreaObjeto;
begin
  try
    AltaFactuSistemaFacturacion:= AltaFactuSistemaFacturacion.Create;
  finally
    AltaFactuSistemaFacturacion.Free;
  end;
end;



Y Este código funciona, el problema estaba en el nombre de la variable, que coincidia con el tipo de datos.
Código Delphi [-]
type

  myClass = class (TComponent)
  private
    AltaFSF :AltaFactuSistemaFacturacion;
  public
    procedure CreaObjeto;
  end;


implementation

procedure myClass.CreaObjeto;
begin
  try
    AltaFSF:= AltaFactuSistemaFacturacion.Create;
  finally
    AltaFSF.Free;
  end;
end;

Muchas Gracias !!!!
Responder Con Cita
  #4  
Antiguo 01-02-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por _Io Ver Mensaje
Y Este código funciona, el problema estaba en el nombre de la variable, que coincidia con el tipo de datos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Crear un Objeto dentro de un Panel sancarlos OOP 24 21-07-2008 14:59:51
Crear Objeto por su nombre de clase jlrbotella OOP 2 08-01-2008 23:44:37
Crear objetos dentro de otro objeto. Nieto OOP 5 28-11-2007 23:09:12
Clase, objeto, tipo? [Gunman] OOP 3 04-01-2006 16:11:32
Error al crear una instancia de clase jplj OOP 2 15-02-2005 11:52:07


La franja horaria es GMT +2. Ahora son las 00:34:24.


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