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]