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 04-12-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 20
Jan_polero Va por buen camino
Error con TStringList

Hola a todos¿Sabe alguien por qué me da un error al intentar hacer un Add con un StringList?:
El código es:

//Código Delphi

public
ObjInv: TStringList; //declaro el StringList en La seccion Public del form
.
.
.
procedure TFInventario.FormCreate(Sender: TObject);
begin
//la creo
ObjInv := TStringList.Create;
end;

//fin

y en un procedimiento que he creado tengo la línea:

ObjInv.Add(Item.NombreItem); //Añando esta propiedad,que es string
esto me produce una excepción:'Acces violation at adress...'.Pero el problema debe ser antes pq al comentar la línea me aparece el mismo error al hacer un Count.Debo de asignar mal la StringList.¿Alguna solución?
Gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 04-12-2004
Sinaloense Sinaloense is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
Sinaloense Va por buen camino
Debería ser :

ObjInv.Create;

en vez de:

ObjInv := TStringList.Create;
Responder Con Cita
  #3  
Antiguo 04-12-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Hola,

Primero que nada los invito a utilzar las etiquetas DELPHI del foro que permiten una mejor visualización del código. Segundo, podrías probar:
Código Delphi [-]
   varStrList := TStringList.Create;
   ...
   varStrList.Append('Mi cadena');
   ...
   FreeAndNil(varStrList);
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #4  
Antiguo 04-12-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 20
Jan_polero Va por buen camino
Sigue apareciendo el mismo error

Gracias por responder.
Lo que ocurre es que después de cambiarlo me sigue saltando la misma excepción...
Responder Con Cita
  #5  
Antiguo 04-12-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
¿Probaste con un ejemplo simple como el que te mandé?

Tal vez deberías exponer el código que usás para ver donde falla.

Saludos!
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #6  
Antiguo 04-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Sinaloense
Debería ser :

ObjInv.Create;

en vez de:

ObjInv := TStringList.Create;
Desde luego que no. La segunda forma es la correcta.

// Saludos
Responder Con Cita
  #7  
Antiguo 05-12-2004
Sinaloense Sinaloense is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
Sinaloense Va por buen camino
Nop, la forma que puse es la correcta

La probe antes y funciona muy bien.
Responder Con Cita
  #8  
Antiguo 05-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Parece que hace falta aquí repasar los conceptos básicos de las clases en Delphi.

La ayuda de Delphi, al la letra, dice:


Cita:
Empezado por Ayuda de Delphi
A constructor is a special method that creates and initializes instance objects. The declaration of a constructor looks like a procedure declaration, but it begins with the word constructor. Examples:

constructor Create;
constructor Create(AOwner: TComponent);

Constructors must use the default register calling convention. Although the declaration specifies no return value, a constructor returns a reference to the object it creates or is called in.

A class can have more than one constructor, but most have only one. It is conventional to call the constructor Create.

To create an object, call the constructor method on a class type. For example,

MyObject := TMyClass.Create;
Más adelante dice:


Cita:
Empezado por Ayuda de Delphi
When a constructor is called using an object reference (rather than a class reference), it does not create an object. Instead, the constructor operates on the specified object, executing only the statements in the constructor's implementation, and then returns a reference to the object. A constructor is typically invoked on an object reference in conjunction with the reserved word inherited to execute an inherited constructor.
// Saludos
Responder Con Cita
  #9  
Antiguo 06-12-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por Jan_polero
Pero el problema debe ser antes pq al comentar la línea me aparece el mismo error al hacer un Count
Pero un count a que?? a item o a objinv, por cierto ya item esta creado cuando lo llamas
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
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


La franja horaria es GMT +2. Ahora son las 17:56:33.


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