[Delphi] Usando ListView como DBGrid.pdf

download [Delphi] Usando ListView como DBGrid.pdf

of 6

Transcript of [Delphi] Usando ListView como DBGrid.pdf

  • 07/08/13 Delphi: Usando ListView como DBGrid

    www.linhadecodigo.com.br/artigo/581/delphi-usando-listview-como-dbgrid.aspx 1/6

    Delphi: Usando ListView como DBGridNeste artigo irei mostrar uma tcnica muito simples de como usar um Listview para exibir dados de uma tabela.

    por Walbert Castro

    Ol pessoal,

    Inicialmente gostaria de agradecer ao convite para participa da famlia Linha de Cdigo. 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 comear irei mostrar uma tcnica muito simples de como usar um Listview

    para exibir dados de uma tabela.

    Mos 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 aplicao 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

    umSQLQuery. Faa as seguintes alteraes nos componentes.

    Configure uma conexo MySQL.

    Mude as Propriedades:

    018 9 1 2

  • 07/08/13 Delphi: Usando ListView como DBGrid

    www.linhadecodigo.com.br/artigo/581/delphi-usando-listview-como-dbgrid.aspx 2/6

    SQLConnection1 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 Formulrio

    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 trs colunas. Conforme mostrado abaixo.

    Vamos muda as propriedades:

    0 TListColumn

    Caption = Login

    Width = 150

    Caption = Nome do Usurio

  • 07/08/13 Delphi: Usando ListView como DBGrid

    www.linhadecodigo.com.br/artigo/581/delphi-usando-listview-como-dbgrid.aspx 3/6

    1 TListColumn Width = 250

    2 TListColumn

    Caption = Nvel

    Width = 55

    Alignment = taCenter

    Agora nossas colunas estaro assim.

    Agora clique duas vezes no ImageList1 e escolha os cones que sero exibidos.

    Vamos usar a imagem 0 para usurios com Nvel igual A e a imagem 1 para usurios com Nvel O.

    Criando o procedimento

    Agora vamos criar o procedimento responsvel por mostrar os dados da tabela no ListView.

    No editor de cdigo na sesso public vamos declara o procedimento CriarLista e na

    sessoimplementation adicione nosso Data Module (Modulo). Conforme mostrado abaixo.

  • 07/08/13 Delphi: Usando ListView como DBGrid

    www.linhadecodigo.com.br/artigo/581/delphi-usando-listview-como-dbgrid.aspx 4/6

    Agora vamos ao cdigo

    procedure TForm1.CriarLista;

    var

    ListItem: TListItem; // Criamos uma varivel 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;

  • 07/08/13 Delphi: Usando ListView como DBGrid

    www.linhadecodigo.com.br/artigo/581/delphi-usando-listview-como-dbgrid.aspx 5/6

    // 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 formulrio vamos acrescenta no procedimento

    procedure TForm1.FormShow(Sender: TObject);

    begin

    CriarLista;

    end;

    Agora basta executa a aplicao para ver o resultado.

    Concluso

    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 aplicaes.

  • 07/08/13 Delphi: Usando ListView como DBGrid

    www.linhadecodigo.com.br/artigo/581/delphi-usando-listview-como-dbgrid.aspx 6/6

    Abraos a todos e at proxima.