Ver Mensaje Individual
  #5  
Antiguo 25-05-2006
IsidoroM IsidoroM is offline
Registrado
 
Registrado: may 2006
Posts: 2
Reputación: 0
IsidoroM Va por buen camino
Buenas,

conseguí ocultar la propiedad ConnecionString de la siguiente manera:

Código Delphi [-]
type
  TADOConnectionEclipse = class(TADOConnection)  // Ocultar ConnectionString y ConnectionObject
  private
    FConnectionString: WideString;
    function GetConnectionString: WideString;
  protected
  public
    property ConnectionObject;
  published
    property ConnectionString read GetConnectionString;
  end;

sobreescribiendo la funcion GetConnectionString por el código que me devuelva un texto diferente al de conexión.

El problema fué que cuando creaba un objeto de esta manera:
Código Delphi [-]
var
  ace:TADOConnectionMio;
begin
  ace:=TADOConnectionMio.Create(Self);
y llamaba a ace.ConnecionString el resultado era el esperado: me enseñaba el resultado que le había dado a la propiedad, pero si hago esto:
Código Delphi [-]
var
  ace:TADOConnectionMio;
begin
  ace:=TADOConnection.Create(Self);
y ejecuto ace.ConnectionString, me ejecuta la función read del objeto TADOConnection mostrándome el valor real del ConnectionString.

He mirado en el tema del foro que comenta Neftali donde comentan: "El nivel de visibilidad de una propiedad o método no puede degradarse, sólo aumentarse", por lo que sería imposible realizar lo que quiero de esta manera.
Responder Con Cita