Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 16-02-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 18
noob Va por buen camino
Pienso que mi singleton no funciona porque puedo declarar más de una variable de mi clase singleton:

Unit1:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Clase2: TClase2;
    Clase2b: TClase2;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Clase2 := TClase2.Create;
  Clase2b := TClase2.Create; // No debería dejarme crear esta instancia porque se supone que es un singleton
end;

end.

Unit2:

Código Delphi [-]
unit Unit2;

interface

type
  TClase2 = class
              private
                Contenido: String;
                function ObtenerContenido: String;
                procedure EstablecerContenido(Contenido: String);
              public
                class function NewInstance: TObject; override;
                procedure FreeInstance; override;
                property PropContenido: String read ObtenerContenido
                                               write EstablecerContenido;
            end;

implementation

var Clase2: TClase2; //Nota como esta variable se mantiene "oculta"

function TClase2.ObtenerContenido: String;
begin
  Result := Contenido;
end;

procedure TClase2.EstablecerContenido(Contenido: String);
begin
  Self.Contenido := Contenido;
end;

class function TClase2.NewInstance: TObject;
begin
  if (NOT Assigned(Clase2))
     then begin
            Clase2 := TClase2 (inherited NewInstance);
            // algo más que deba hacer....
          end;
  result := Clase2;
end;

procedure TClase2.FreeInstance;
begin
  Clase2 := nil;
  inherited FreeInstance;
end;

end.

Última edición por noob fecha: 16-02-2009 a las 22:59:56.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calentamiento global Crandel La Taberna 0 20-01-2008 16:13:14
Hook global pepelaalfa API de Windows 2 08-12-2005 18:24:27
Variable global jluisx OOP 3 27-10-2005 22:31:22
variable global existe en php ? sarga PHP 1 27-06-2004 17:47:07
Procedimiento global Carlos Arevalo Varios 2 17-11-2003 18:55:00


La franja horaria es GMT +2. Ahora son las 15:02:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi