Array
(
)

Como fazer uma classe ESPECIAL no Delphi 2005?

Ildefonso
   - 29 nov 2005

Olá, Senhores. Está é pra ferrar. Então, por favor, que a ler encaminhe para os ´doutores da lei´.

Usando o Delphi 2005, quero uma classe que controle a conexão com o banco de dados e seja pública a ponto de ser usada nas propriedades dos componentes de dados da BDP...
#Código


type
TBDados = class(System.ComponentModel.Component)
{$REGION ´Designer Managed Code´}
strict private
/// <summary>
/// Required designer variable.
/// </summary>
Components: System.ComponentModel.Container;

_Conn: Borland.Data.Provider.BdpConnection;
spc_VerifyUser: Borland.Data.Provider.BdpCommand;
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure InitializeComponent;
{$ENDREGION}
strict protected
/// <summary>
/// Clean up any resources being used.
/// </summary>
procedure Dispose(Disposing: Boolean); override;

strict private
FUserID: Integer;
FUserName: String;
FUserKey: String;
FUserGrants: String;


public

function get_Conn: Borland.Data.Provider.BdpConnection;
function get_UserID: Integer;
procedure set_UserID(const Value: Integer);
function get_UserName: String;
procedure set_UserName(const Value: String);
function get_UserKey: String;
procedure set_UserKey(const Value: String);
function get_UserGrants: String;
procedure set_UserGrants(const Value: String);

constructor Create; overload;
constructor Create(Container: System.ComponentModel.IContainer); overload;

function VerifyUser(User, Key: String; SetUser: Boolean): Integer;
procedure ClearUser;

property Conn: Borland.Data.Provider.BdpConnection read get_Conn;

property UserID: Integer read get_UserID write set_UserID;
property UserName: String read get_UserName write set_UserName;
property UserKey: String read get_UserKey write set_UserKey;
property UserGrants: String read get_UserGrants write set_UserGrants;
end;

function BDados: TBDados;

var
BD: TBDados;


Notem que eu deixei uma variável e uma função que deveriam ser de visão pública. Quando uso em código elas estão a disposição...
   tbUsers.SelectCommand.Connection := BD.Conn;
... por exemplo.
Mas eu preciso que as propriedades dos componentes vejam esta variável ou objeto para ser atribuído já no Object-Inspector, tal como outro componente BdpConnection qualquer.

A outra saída seria criar componentes que fornecessem dados diretos aos componentes de tela (tal como um TextBox e suas propriedades DataBind).

Por favor, é uma emergência!!!
Os próprios editores da revista poderiam consultar o pessoal envolvido com a Borland, visto que está questão é 100¬ de interesse OOP !!!
Sei que isso é possível porque vi fazerem no VisualStudio (aliás, os DataBinds já estavam presente no VB6... imaginem). Estou lutando conta uma ´gang´ que tenta fazer nossos patrões imporem o VB como linguagem em um novo projeto. REPITO: É UMA EMERGÊNCIA.


Apreensivo e esperançoso...

Coração Abalado (her... :roll:)
quero dizer:

Ricardo Ildefonso.