Delphi: Usando ListView como DBGrid

"Olhando no site linha de Código um outro ótimo site para Delphi, achei este tutorial então postei aqui para vocês pois achei muito interessante e funcional"





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.

Mude as Propriedades:

LoadParamOnConnect = True
LoginPrompt = False
Connected = True
SQLQuery1
Name = SqUsers
SQLConnection = SQLConnection1
SQL = select * from users order by login
Active = True

Adicione todos os Campos ao SQLQuery
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
SmallImages = ImageList1
RowSelect = True
ViewStyle = vsReport
Clique duas no Listview e inclua três colunas. Conforme mostrado abaixo.
Vamos muda as propriedades:
0 – TListColumn
Caption = Login
Width = 150
1 – TListColumn
Caption = Nome do Usuário
Width = 250
2 – TListColumn
Caption = Nível
Width = 55
Alignment = taCenter
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
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.
Abraços a todos e até proxima.

FONTE : Linha de Codigo

0 comentários:

Postar um comentário