Ver Mensaje Individual
  #3  
Antiguo 21-10-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Realmente no sé si estoy entendiendo el sentido de hacer eso, pero no creo que usar singleton logre el efecto que buscas. Claramente te impediría crear dos instancias de la clase pero esta continuaría siendo visible y por tanto podrías utilizar su nombre de forma directa...

Una chapuza para limitar el ámbito del nombre de la clase podría ser declarar la clase en la interface de una unidad:
Código Delphi [-]
unit UnitClass;

interface

type
  TClase = class
  private
    FCaption: string;
    //...
  public
    //...
    property Caption: string read FCaption write FCaption;
  end;

implementation

end.

La variable en otra:
Código Delphi [-]
unit UnitVar;

interface

uses UnitClass;

var
  Clase: TClase;

implementation

initialization
  Clase := TClase.Create

end.

Y solo incluir la unidad que declara la variable:
Código Delphi [-]
...
implementation {$R *.dfm}


uses UnitVar;

{ No podrían acceder a TClase por que:
var
  Clase2: TClase;  // identificador no declarado
}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Clase.Caption := 'Hola a todos';
  ShowMessage(Clase.Caption);
end;

end.
Pero como te dije arriba, no sé si estoy captando la idea...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita