Já ouviu falar de um componente chamado UserControl ele é free e tem muitas
funcionalidades , dah uma pesquisada e vê se atende a sua necessidade. vlw

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de valdirdill
Enviada em: domingo, 8 de fevereiro de 2009 17:02
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Cadastro de Operadores do Sistema.

 

Olá,

Estou fazendo um módulo para cadastro de operadores no sistema, onde 
cada operador receberá níveis diferentes de poder para cada um dos 
módulos que compõe o sistema.

Entre outros campos, na tabela CadOperadores, existem os campos 
CAD_CLIENTES, CAD_FORNECEDORES, VENDAS, LCTO_CAIXA e RELATORIOS. São 
do tipo integer;

A idéia é que no programa, haja uma interface para que, ao se 
cadastrar um operador, possa se atribuir nível 1 ou nível 2 a cada um 
dos campos acima. 

Estou desenvolvendo a interface da seguinte forma: coloquei dois 
TlistBox. No primeiro, tem os seguintes "Items" inseridos: Cadastro 
de Clientes, Cadastro de Fornecedores, Vendas de Produtos, 
Lançamentos no Livro Caixa e Relatórios. O segundo não está em branco.

Existem botões permitindo que cada uma desses "Items" possam ser 
movidos do ListBox1 para o ListBox2 ou vice-versa.

Ao clicar no botão "Gravar" deve haver uma rotina que verifique onde 
está cada "Items". Se, por exemplo, "Lançamentos do Livro Caixa" 
estiver no ListBox1, o campo LCTO_CAIXA da tabela CadOperadores := 1; 
se estiver ListBox2, o campo LCTO_CAIXA da tabela CadOperadores := 2.

A dúvida é: como fazer isso, ou seja, verificar onde cada "Items" 
está e gravar o respectivo valor na tabela?

Até o momento a única idéia que me veio, seria:

For I := 0 to ListBox1.Items.Count-1 do
if ListBox1.Items[I] = 'Lançamentos do Livro Caixa" then
CDSOperadores.FieldByName('LCTO_CAIXA').asInteger := 1
else
CDSOperadores.FieldByName('LCTO_CAIXA').asInteger := 2;

Até que funcionaria, mas me parece um pouco trabalhoso demais. Será 
que não há uma maneira mais simples de se fazer essa rotina.
Lembro que citei apenas 5 campos da tabela, mas na verdade são mais 
50 e também quero fazer 3 níveis. Aí seriam 3 TListBox. Fazer 
esses "IFs" para cada campo e um for para cada TListBox? 

Qualquer dica ajuda. 
Obrigado
Valdir Dill





[As partes desta mensagem que não continham texto foram removidas]

Responder a