Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2009
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Problema (o eso creo) con vectores dinamicos

Buenas haber si me doy Explicado

Tengo dos Formularios Uno Principal y otro Secundario.Desde el formulario Principal accedo
al Secundario de forma modal pasando por referencia un Objeto que contiene varios atributos:


Código:

TObjeto PasObjeto;

LlamaForm = new TFormSecundario(this,*PasObjeto);

//Mostramos el Formulario como modal
switch (LlamaForm->ShowModal())
{
case mrOk:
break;
case mrCancel:
break;
}

delete LLamaForm;


En el Formulario Secundario creo como atributos Globales varios vectores dinamicos:
y asigno el Objeto que paso a un atributo del Mismo Tipo

Código:
class TFormSecundario : public TForm
{
private:

TObjeto *PssObj

TStringList *Vector1;
AnsiString *Vector2;
short *Vector3;
char *Vector4 ;
.................................

public:

__fastcall TFormSecundario(TComponent* Owner,TObjeto &PO);

}

__fastcall TFormSecundario(TComponent* Owner,TObjeto &PO);
{
PssObj = &PO
}

Tanto el Objeto "Pasado" como los vectores ( los inicializo en el Evento FormActivate) operan perfectamente
una vez salgo del FormSecundario Elimino todos vectores y regreso al FormPrincipal.

Código:
delete Vector1;
delete Vector2;
....

Modalresult= Ok

Y es aqui cuando surge el problema al acceder de nuevo desde el FormPrincipal al Secundario
me da el siguiente error

Acces Violation at address XXXXXXX in module Vcl60.bpl

He probado varias cosas y he comprobado que a medida que convierto los vectores dinamicos en fijos me permite acceder
mas veces seguidas al Formulario Secundario sin darme error... Me Explico:
Si convierto AnsiString *Vector2; en AnsiString Vector[20];
me permite acceder 3 veces al Form antes de darme el error
Si tambien convierto short *Vector3; en short Vector{20];
me permite acceder 7 veces seguidas antes de darme el error
y asi sucesivamente.

Alguna Idea Gracias

Nota: Se que ese error se suele dar cuando no se Inicializa algun Objeto
o cuando se declara un vector dinamico no se inicializa y sin embargo se
utiliza, creo que no es el caso.
Responder Con Cita
 



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
vectores en delphi sultan OOP 2 02-11-2008 20:14:26
Comparar dos vectores Almd Internet 5 08-09-2008 15:14:51
vectores... mauriciofox Gráficos 0 25-02-2005 05:28:17
Problema con vectores dinámicos aluduena Varios 2 27-09-2004 23:09:19
Problema con Forms Dinamicos diegofhernando Varios 5 08-10-2003 03:09:26


La franja horaria es GMT +2. Ahora son las 11:10:39.


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