Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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 12-02-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Problemas al crear un objeto en tiempo de ejecución

Buenas de nuevo...
tengo el siguiente problemilla a la hora de ejecutar la aplicación que estoy desarrollando. El problema es el siguiente:
tengo unos componentes llamados TVaComm para el manejo del puerto serie y he de crearlos en tiempo de ejecución xq a priori no sé cuantos necesitaré. Para ello tengo una tabla de una estructura q entre sus campos cuenta con uno de estos elementos. Intento crearlos del siguiente modo:

Modems[N].PuertoSerie.create(self);

siendo Modems la estructura q he nombrado antes, N el índice, y PuertoSerie el nombre del campo de la estructura de tipo TVaComm. Cuando se ejecuta esa línea me da el siguiente error:

"First chance exception at $7C812A5B. Exception class EAccessViolation with message 'Access violation at address 0047B331 in module 'HORUS.exe'. Read of address 00000000'. Process HORUS.exe (2384)"

Alguien puede decirme q estoy haciendo mal a la hora de crear el objeto???

Muchas gracias!!!
Responder Con Cita
  #2  
Antiguo 12-02-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
Hola vejerf,

La sintaxis de las llamadas a constructores es
Código Delphi [-]
Objeto := Clase.Constructor;
creo que lo estás poniendo mal, sería una cosa así:
Código Delphi [-]
Modems[N].PuertoSerie := ClasePuertoSerie.Create(Self);

Saludos
__________________
Sotoca Web
Responder Con Cita
  #3  
Antiguo 12-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si vas a usar Objetos y además necesitas hacerlo en tiempo de ejecución, te sugiero una búsqueda de TObjectList en el foro.

Tal y como existe array of integer, para tipos de datos simples (integer, char, etc), existe el TObjectList para objetos.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 12-02-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Muchas gracias por vuestras respuestas!!!
Con la respuesta de fdelamo lo he solucionado... era un problema de sintaxis... es q del dia a la mañana me he encontrado programando delphi sin saber... y eso es lo q tiene...
En cuanto a tu respuesta Lepe lo mismo es hasta mas elegante que lo q yo hago... pero x ahora como me funciona con lo otro creo q es suficiente...

Muchas gracias!!!
Responder Con Cita
  #5  
Antiguo 13-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si te funciona no lo toques .... jejeje.

El caso es que... digamos te abstraes de ciertas tareas, te quita de problemas y además el código es más elegante y claro.

Por ejemplo buscar un TAVcom (no recuerdo bien el nombre), pero con TObjectList tienes un método IndexOf (igual que un TStringList) para buscar uno de esos objetos.

También te olvidas de agrandar y acortar el array, ya que encapsula ese comportamiento.

No tendrás que mirar si uno de esos apunta a nil porque ya se ha liberado de memoria, porque también lo controla.

Con esto no quiero decir que cambies tu código, solo que lo tengas en cuenta para la próxima vez, hay hilos a modo de tutorial, de como usar un TObjectList

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 13-02-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Pues sabes q me ha gustao la idea esa del TObjectList aunq x mucho q me haya gustao no voy a modifica el código jeje... más vale prevenir ... pero sí q lo tendré en cuenta pa el futuro. Se agradece mucho la colaboración Lepe... la verdad es q estoy aprendiendo tela gracias a los miembros del foro ...

Muchas gracias y prometo seguir dando la lata con mis preguntas jeje
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 al tratar de crear varios componentes en tiempo de ejecucion ilichhernandez Conexión con bases de datos 2 13-11-2005 19:03:26
Objeto seleccionado en tiempo de ejecucion Javier Sotillos OOP 1 30-09-2005 09:09:38
Crear consultas en tiempo de ejecución rochi Varios 2 27-02-2005 16:42:44
Crear un DSN en tiempo de ejecucion neyvan Conexión con bases de datos 7 21-05-2004 17:41:45
Poner en tiempo ejecución un objeto dentro de cesar_picazo Varios 1 27-03-2004 16:25:32


La franja horaria es GMT +2. Ahora son las 20:01:09.


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