Desenvolvimento - Delphi
Delphi: Usando ListView como DBGrid
Neste artigo irei mostrar uma técnica muito simples de como usar um Listview para exibir dados de uma tabela.
por Walbert CastroOlá pessoal,
Inicialmente gostaria
de agradecer ao convite para participa da família Linha de Código. É sempre bom estar ao lado de pessaos do nosso meio apredendo
e trocando conhecimentos.
Como colunista pretendo participar fornecendo artigos, aplicativos e dicas que possam ser úteis
no nosso dia a dia. Para começar irei mostrar uma técnica muito simples de como usar
um Listview para exibir dados de uma tabela.
Mãos a obra.
Neste artigo vou utilizar Banco de Dados MySQL, mas nada impede que se possa usar outros tipos (Interbase/FireBird ou até mesmo o velho Paradox e Dbase).
Estrutura das Tabela
Tabela
users
Inclua alguns registros para teste.
Definindo um Data Module
No Delphi crie
uma nova aplicação e em File->New->Other
escolha Data Module, salve o nosso Data Module como Modulo
e na propriedade Name digite Dm.
Agora vamos à paleta de componentes na pagina dbExpress e inclua um SQLConnection
e um SQLQuery. Faça as seguintes alterações
nos componentes.
SQLConnection1 |
Configure uma conexão MySQL. |
SQLQuery1 |
Name
= SqUsers |
Seu Data Module deve esta como mostrado abaixo.
Configurando o Formulário
No form1 vamos incluir um ListView e ImageList (ambos da pagina Win32) . E mude as propriedades como mostrado abaixo.
ListView1 |
GridLines = True |
Clique duas no Listview e inclua três colunas. Conforme mostrado abaixo.
Vamos muda as propriedades:
0
– TListColumn |
Caption = Login |
1
– TListColumn |
Caption = Nome do Usuário |
2
– TListColumn |
Caption = Nível |
Agora nossas colunas estarão assim.
Agora clique duas vezes no ImageList1 e escolha os ícones que serão exibidos.
Vamos usar a imagem 0 para usuários com Nível igual A e a imagem 1 para usuários com Nível O.
Criando o procedimento
Agora vamos criar o procedimento responsável por mostrar os dados da tabela no ListView.
No editor de código na sessão public vamos declara o procedimento CriarLista e na sessão implementation adicione nosso Data Module (Modulo). Conforme mostrado abaixo.
Agora vamos ao código
procedure TForm1.CriarLista;
var
ListItem: TListItem; // Criamos uma variável para guarda
os itens do Listview
begin
// Limpa o Conteudo Existente no ListView
ListView1.Clear;
// Posicionamos no Primeiro Registro
Dm.SqUsers.First;
while not Dm.SqUsers.Eof do
begin
// Adicionamos um Item ao ListView
ListItem := ListView1.Items.Add;
// Verifica qual o Icone deve ser apresentado
if Dm.SqUsersnivel.Value = "A"
then
ListItem.ImageIndex := 0
else
ListItem.ImageIndex := 1;
// Adicionamos dados a Coluna Login
ListItem.Caption := Dm.SqUserslogin.Value;
// Adicionamos a Coluna Nome do Usuario
ListItem.SubItems.Add(Dm.SqUsersnome_usuario.Value);
// Adicionamos a coluna Nivel
ListItem.SubItems.Add(Dm.SqUsersnivel.Value);
// Mudamos para o proximo registro
Dm.SqUsers.Next;
end;
//Seleciona a primeira linha do ListView se existir dados
na tabela
if Dm.SqUsers.RecordCount > 0 then
Listview1.ItemIndex := 0;
end;
Agora no Evento OnShow do formulário vamos acrescenta no procedimento
procedure
TForm1.FormShow(Sender: TObject);
begin
CriarLista;
end;
Agora basta executa a aplicação para ver o resultado.
Conclusão
Abraços a todos e até proxima.
Aqui termino meu primeiro artigo, tentei mostrar de forma simples como exibir
dados de uma tabela num ListView. Dica que pode ser útil em pequenas
aplicações.