Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A ver si aclaramos un poco:

Una forma de manejar variables de ámbito global sin ser propiamente globales, es encapsularlas en una clase como propiedades estáticas, esto es, como propiedades que no dependen de ningua instancia particular y que, por tanto, pueden usarse sin tener que crear un objeto de la clase.

El punto es que hasta delphi 2010, creo, no había propiedades estáticas -como sí las hay en otros lenguajes. Entonces, para simularlas, se hacía lo que propone Paoti. La variable a la que se accede desde la clase está restringida al ámbito privado de la unidad en la que se declara y, por tanto y es lo importante, no es accesible directamente desde fuera, lo cual, proporciona un cierto grado de control sobre dicha variable. Cosa que no ocurre si simplemente se usa una variable declarada en la sección interface. La variable queda "expuesta" a todo mundo.

Si tal variable se pone "dentro" de la clase, entonces no sería posible usarla sin instanciar un objeto de la clase. Dicho de otra forma, ya no sería una propiedad estática de la clase.

// Saludos
Responder Con Cita
  #2  
Antiguo 29-07-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Interesante pauti.

Pero no entiendo el por qué de este código:
Código Delphi [-]
// desde un formulario 2
procedure TForm2.btn1Click(Sender: TObject);
var
  myGlobal : TGlobales;
begin
  Caption := myGlobal.Usuario;
end;

......

// desde un formulario 1
procedure TForm1.btn1Click(Sender: TObject);
var
  myGlobal : TGlobales;
begin
myGlobal.Usuario := 'Paoti';
end;

Cuando simplemente se podría hacer así, según una clase de muestra que he escrito:

Código Delphi [-]
    TGlobalVars = class
        private
            class var FVar1: String;
        public
            class property Var1: String read FVar1 write FVar1;
            // o simplemente:
            class var Var2: String;
    end;

// -------------------------------------------------------//
implementation

procedure TForm2.Button1Click(Sender: TObject);
begin
    TGlobalVars.Var1 := Edit1.Text;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
    ShowMessage(TGlobalVars.Var1);
end;
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
Respuesta


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
variables globales pulpin C++ Builder 2 03-04-2008 04:09:28
Uff. variables globales en php.ini Nati PHP 1 26-06-2007 09:02:49
variables globales henrygale Varios 9 06-04-2007 00:47:05
Variables Globales Abel Garcia Firebird e Interbase 8 26-09-2005 15:20:59
Variables globales en PHP JulioGO PHP 3 08-04-2005 14:36:57


La franja horaria es GMT +2. Ahora son las 19:08:44.


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