Ver Mensaje Individual
  #2  
Antiguo 19-03-2010
Avatar de DarkMan
DarkMan DarkMan is offline
Miembro
 
Registrado: jul 2006
Posts: 102
Reputación: 18
DarkMan Va por buen camino
Creo que te refieres a que cada objeto creado tenga su propia instancia de variables, es decir, encapsular dichas variables dentro del objeto.

La declaración de un objeto va desde "type Objeto = class(TObject)" hasta "end;", contando con varias palabras reservadas "Private, Protected, Public y Published" que determinan bloques en los cuales se encapsulan variables, procedimientos o funciones.

Para ser más concreto en la explicación te expongo un ejemplo partiendo del código que tú has proporcionado y de deducciones mías:

Código Delphi [-]
 Type TObjeto = Class();
   Private
     Procedure SetIDCarpe(Valor: Integer);
     Procedure SetIDGestor(Valor: Integer);
     {private declarations}
   Protected
     {protected declarations}
   Public
     {public declarations}
   Published
    property IDCarpeta:Integer write SetIDCarpe;
    property IDGestor:Integer write SetIDGestor;
     {published declarations}
 end;

Supuse que SetIDCarpe y SetIDGestor hacen referencia a dos procedimientos que se encargan de almacenar el valor asignado a IDCarpeta e IDGestor respectivamente. El error tuyo viene a que (supongo) estás asignando dichos valores a estas variables globales que declaras en la Unidad:
Código Delphi [-]
var
  varIdCarpeta:Integer;
  varIdGestor:Integer;

Son variables globales (de una sola instancia), por lo que si creas dos formularios y manipulas una propiedad en uno, el valor de esta variable no se guardará para cada clase (excepto que sólo crees un formulario) y será el mismo para todas las clases creadas.

La solución está en incorporar dichas variables dentro de uno de los bloques que designan las palabras reservadas del objeto, por ejemplo:

Código Delphi [-]
...
    Public
      varIdCarpeta:Integer;
      varIdGestor:Integer;
     {public declarations}
...

De esta forma, cada vez que crees un objeto, se crearán instancias de dichas variables asociadas al objeto sin interferirse entre las distintas instancias de los formularios.

Espero que lo hayas entendido, es un poco complejo de explicar así de golpe si desconoces completamente su funcionamiento.

Un saludo.
__________________
"La recompensa de una buena acción está en haberla hecho"
Responder Con Cita