Ver Mensaje Individual
  #2  
Antiguo 20-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La verda, creo que no entendí nada. Siguiendo tu idea de los permisos, podrías usar una propiedad tipo arreglo:

Código Delphi [-]
type
  TVisibility = (vPublic, vPrivate, ... );

  TChapuza = record
    Visibility: TVisibility;
    Value: Variant;
  end;

  TChapucero = class
  private
    FEntries: array of TChapuza;

    function GetValue(I: Integer): Variant;
    procedure SetValue(I: Integer; const Value: Variant);
  public
    property Values[I: Integer]: Variant read GetValue write SetValue;
  end;

Es decir, internamente guardas cada valor junto con su 'visibilidad', y los métodos de acceso GetValue y SetValue se encargan de verificar la visibilidad y lanzar una excepción si la entrada correspondiente no tiene marcada la visibilidad 'adecuada'.

No me quedaría nada claro qué se entiende por adecuada, pues si quieres saberlo dependiendo de la unidad desde donde se accede, pues lo veo algo difícil, o terminarás con una sintaxis mucho más engorrosa que haber declarado variables.

No sé, creo que no entiendo lo que realmente buscas.

// Saludos
Responder Con Cita