Buscar

Usercontrol - controle os usuários na aplicação - parte 1

nome

Exio

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

UserControl - Controle de Usuários: Uma milagre para sua aplicação, uma grande benefício para você

1 - Introdução

    Muitas vezes perdemos um tempo imenso projetando regras de acesso de usuários em nossos aplicativos. Além de procurar arranjar uma forma dos usuários acessarem o aplicativo, devemos estabelecer uma forma de como armazenar essas informações em um banco de dados, ou no registro do Windows. Para acabar com esse problema, surge o conjunto de componentes chamado UserControl. Nas linhas que se seguirão nesse artigo, estarei tentando mostrar em detalhes, o uso desse maravilhosos conjunto de componentes.

2 - Download e Instalação

    O download dos arquivos pode ser feito no endereço www.usercontrol.net . No site, você deverá clicar no link Baixar (o link está presente no final da página principal). Ou clique aqui para acessar o link rapidamente. Após executar o download do arquivo, descompacte-o no diretório de sua preferência. O processo de instalação é simples. Você não conta com um instalador, mas pode contar com um arquivo de ajuda muito bem feito por  Eduardo de Freitas NunesPressione aqui para saltar para o link onde o tutorial de instalação poderá ser baixado. Eu recomendo que você baixe esse tutorial. Os passos para instalação apresentados abaixo, está de forma muito simplificada, mas funciona.

2.1 - Passos para Instalação

a) Execute o Delphi e clique no item de menu Tools; avance até o item Enviroment Options. Quando a janela se abrir, clique na aba Library. Na opção Library Path, clique no botão Add e adicione os caminhos das pastas: Source e Package dentro da pasta principal UserControl2.20RC2.
OBS: Como recomendação, também adicione a pasta Indy que está localizada dentro da pasta Delphi\Source\Indy.
b) Executados os detalhes no item anterior, vamos executar a instalação propriamente dita dos componentes. Você deverá instalar um pacote contendo componentes comuns, e deverá ao menos instalar um dos conectores disponíveis na pasta Connectors, ou instalar todos se assim achar necessário. Dentro da pasta UserControl, abra a pasta Packages e abra os arquivos *.dpk (pckMD5.dpk, pckUCDataConnector.dpk,pckUserControl_DT.dpk e pckUserControl_RT.dpk) Compile primeiro o pckMD5.dpk, seguindo dopckUCDataConnector. Após compile o arquivo pckUserControl_DT. Aqui poderá existir o problema de versão do conjunto de componentes Indy. É recomendável o uso da versão 10, porém se você não tiver, não tem problema. Tente compilar, se algum problema existir, retire da seção REQUIRES do arquivo pckUserControl_RT.dpk as declarações do Indy e compile novamente; os pacotes corretos serão adicionados automaticamente. Depois de tudo compilado clique sobre o arquivo pckUserControl_DT e pressione o botão Install.
c) Finalizada a instalação dos componentes, você deverá instalar os conectores. Esses conectores é que ligam a sua base de dados ao componente UserControl. Abra a pasta que contém o conector que você usa e instale-o - para isso basta selecionar o arquivo *.dpk e compilá-lo. Você poderá instalar todos os conectores ou somente aqueles que você mais usa.

3 - Primeiros passos - Criando a aplicação de Exemplo

    Após ter executado o processo de instalação do seu novo conjunto de componentes, você terá a sua disposição, duas abas na paleta de componentes do Delphi: UC Main e UC Connectors. Na paleta UC Main, existem 7 componentes, sendo eles respectivamente: UserControl, UCSettings, UCControls, UCXPStyle, UCAppMessage, UCIDle e MailUserControl). Na aba UC Connectors, você terá somente aqueles conectores que foram instalados.

    Para que possamos entender o funcionamento desse maravilhoso conjunto de componentes, vamos criar uma pequena aplicação.

3.1 - Criando um Banco de Dados

Você poderá criar o banco de dados usando o programa que preferir. Eu uso a versão do IBExpert Free. Esse procedimento eu não irei explicar. Mas você pode criar um banco de dados contendo a seguinte estrutura:

Clique aqui para baixar o arquivo contendo a estrutura do banco de dados

peço desculpas a vocês, mas quando criei o arquivo esqueci-me de adcionar essa parte:

/******************************************************************************/
/****                             Primary Keys                             ****/
/******************************************************************************/

ALTER TABLE BANCOS ADD CONSTRAINT PK_BANCOS PRIMARY KEY (CODIGO_B);
ALTER TABLE CIDADES ADD CONSTRAINT PK_CIDADES PRIMARY KEY (CODIGO);
ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO);
ALTER TABLE PRODUTOS ADD CONSTRAINT PK_PRODUTOS PRIMARY KEY (CODIGO_P);

3.2 - Sistema de Exemplo

   
Para não perder muito tempo, clique aqui para baixar o arquivo rar contendo os arquivos de banco de dados e também de aplicativo. Nesse pequeno aplicativo, foram adicionados um data module contendo um componente SQLConnection da paleta DbExpress com o Name cnxUC; um componente TUCDBXConn da paleta UCConnectors com a propriedade Name definida para MyConn e um componente UserControl da paleta UC Main, tendo a sua propriedade Name definida para ucMyControl.

    Execute as configurações para o componente SQLConnection (isso não faz parte do escopo desse tutorial). Na propriedade Connection do componente TUCDBXConn, defina o SQLConnection (cnxUC). Clique no componente UserControl e na propriedade DataConnector defina o TUCDBXConn (MyConn).
Executando esses procedimentos, você somente executou a parte mais simples de tudo. Agora, vamos começar a entender algumas propriedades do componente UserControl.

4 - Entendendo e Definindo as propriedade do Componente UserControl da Aplicação

    Quando você adiciona um componente UserControl em sua aplicação, ele cria em sua base de dados algumas tabelas que armazenarão diversos dados - mensagens, logins, contas de usuários e direitos adicionais por exemplo. Isso tudo é criado automaticamente. Mas como isso é criado? É criado no primeiro momento em que o componente é executado. Ele criará uma conta de Administrador e uma Senha que poderão ser definidas por você, ou poderá ser o próprio Usuário e a Senha definidas como padrão no componente. Você primeiro se responsabilizará por efetuar a conexão normal com seu banco de dados, depois você pede que o UserControl entre em ação.

Abaixo, estarão listadas as propriedades principais do componente UserControl e o que cada uma faz.

About: apresenta uma caixa contendo os agradecimentos e os créditos de desenvolvimento;

ApplicationID: armazena o nome do projeto. Pode ser o mesmo nome do executável ou um nome definido pelo usuário;

AutoStart: booleana. Quando True faz a conexão automática, e cria a estrutura inicial do UserControl;

DataConnector: é o nome do conector. Um dos conectores disponívies na paleta UC Connectors.

TableRights
: Onde você definirá os nomes dos campos e o nome da tabela de Direitos do Usuário.

TableUsers
: Você definirá os nomes dos campos e o nome da tabela que armazenará os dados dos usuários que acessam o sistema.

EncryptKey
: Quando as informações são registradas no banco de dados, elas sofrem uma encriptação. Caso ocorra algum acesso ao banco de dados por um usuário não-autorizado, ele não saberá quais são as senhas do usuários ou quais são os direitos de acesso. Nessa propriedade, você define um valor de 0 até 65535 complexa.

LogControl
: contém diversas sub-propriedades. A propriedade Active quando definida para True, armazena o registro de Log do usuário na tabela de log, definida na propriedade TableLog. A sub-propriedade InitialLogin armazena o nome do usuário privilegiado (administrador), a senha e o endereço de e-mail. A propriedade InitialRights contém os direitos do administrador quando acessa o sistema.


Num momento mais apropriado, outros propriedades serão apresentadas.

Veja nessa figura quase todas as propriedades que foram expandidas do componente UserControl.

Voltando a nossa aplicação...
ATENÇÃO: Deixe a propriedade AutoStart definida para TRUE.

no evento OnCreate do DataModule, adicione o comando de conexão:

procedure TdmUC.DataModuleCreate(Sender: TObject);
begin
   cnxUC.Connected := True;
end;

    Execute a aplicação, na primeia "rodada", o usercontrol lhe fornecerá uma caixa informando a senha de usuário privilegiado - aquela definida anteriormente em InitialLogin. Veja que ele também informa que você deverá fornecer as permissões para esse usuário. Pressione o botão Ok e a caixa de login aparecerá...

Mensagem inicial



Primeiro login



    Digite a senha e usuário e pressione Ok. Num primeiro momento parece que nada aconteceu. Mas no fundo e de forma muito transparente, o UserControl criou todas as tabelas principais. Nada aconteceu no menu que criamos, porque não linkamos algumas propriedades no UserControl.
 
5 - Fazendo acontecer

    No dataModule, clique sobre o componente UserControl (ucMyControl) e clique sobre a propriedade UsersProfile, no item MenuItem selecione Form1.CadastrodePerfil1. Clique sobre a propriedade UsersForm e no item MenuItem defina Form1.CadastrodeUsurios1. Na propriedade ControlRight, clique no item MainMenu e selecione o Menu principal do Form1 (Form1.MainMenu1).

    Execute a aplicação, (provavelmente a janela informando a senha do usuário privilegiado seja apresentada novamente. Se isso acontecer, não se preocupe. Nas próximas conexões isso não ocorrerá novamente, até porque todos os itens do menu já estarão devidamente linkados ao componente UserControl) e no item de menu Sistema, clique sobre a opção: Cadastro de Usuários.

Por enquanto é só isso. Já no próximo tutorial, estaremos chamando as janelas de perfil de usuário, log de usuários, senha de usuários e janelas de mensagens internas.

Abraços a todos e espero que gostem desse primeiro tutorial do UserControl. Não esqueçam de visitar o site e também contribuir com o desenvolvimento desses componentes.

Exio



Publicidade

Vote no artigo




Quantidade de votos: 1 voto
Aceitação: 20%


Detalhes do artigo

Categoria: Componentes
Adicionado dia: 15/03/07
Por: Exio
Visualizado: 127120 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009