La diferencia es que en tu caso debes crear un objeto de esa clase siendo que los datos a los que accedes no dependen realmente de un objeto en particular sino de la clase en sí.
Idealmente se tendría algo así:
Código Delphi
[-]
type
TGlobal = class
private
class var FUsuario: String; class function GetUsuario: String;
public
property Usuario: String read GetUsuario;
class procedure Inicializa;
end;
implementation
class function TGlobal.GetUsuario: String;
begin
Result := FUsuario;
end;
class procedure TGlobal.Inicializa;
begin
end;
Y, entonces, para usar esos datos lo haces directamente de la clase:
Código Delphi
[-]
Caption := TGlobal.Usuario;
Pero, como delphi no permitía las variables de clase, es que se simulan haciendo lo que dice
Paoti.
Desde luego que la clase, tal como la usas tú, instanciando un objeto, tampoco es que esté mal. Al final de cuentas cumple con el objetivo de evitar el uso de variables globales.
// Saludos