"Agora neste topico estarei mostrando varias formas de se usar o dbgrid, deixa-lo zebrado, ordenar os dados ao clica no titulo de cada campos etc, resumindo esta aula ajuda voce a conhecer o util componente DBGRID"Utilize este procedimento para apresentar os dados de um banco de dados em formato de grade, em linhas e colunas.Procedimentos a serem executados:u File->Use Unit e escolha a tela onde se encontram as tabelas. Selecione o componente DBGrid, e altere a propriedade DataSource (origem dos dados) de acordo com a tabela a ser apresentada na grade. Escolha para este exemplo Ds_Tab_Clientes. u De um duplo-clique sobre o DBGrid e clique no botao Add all Fields u Selecione os campos que nao farao parte da grade e clique no botao Delete Selected para remove-los. Caso a grade faca parte de uma tela padrao, so sera possivel remover o campo atraves da janela Object Treeview. Para deixar o DBGrid Zebrado:No evento OnDrawColumnCell do DBGrid digite os seguintes comandos: If Odd(dm.tab_Clientes.RecNo) and (dm.tab_Clientes.State <> dsInsert) then begin //Lembre-se de colocar a unit DB na clausula uses na unit da tela. DBGrid1.Canvas.Brush.Color := clMoneyGreen; // muda a cor do pincel DBGrid1.Canvas.FillRect(Rect); // Preenche o fundo com a cor especificada DBGrid1.DefaultDrawDataCell(Rect,Column.Field,State);// desenha as celulas da grade end; Para ordenar os dados da grade ao clicar no titulo do campo: a ordenacao sera feita atraves da propriedade de tabela IndexFieldNames, que define o nome do indice para a classificacao, conforme o campo clicado na grade (Column.FieldName) u Crie na tela padrao uma variavel global chamada Ascendente do tipo Boolean para que todas as telas de cadastro passem a utiliza-la.u No evento OnShow, da tela padrao, digite: Ascendente := False;u Em FrmCadCliente, no evento OnTitleClick do DBGrid digite: Ascendente:= not Ascendente ; If Ascendente thenDm.tab_Clientes.IndexFieldNames := Column.FieldName + ' ASC' else Dm.tab_Clientes.IndexFieldNames := Column.FieldName + ' DESC'; OBS: Nao digite os comandos na unit da tela padrao, somente na de cadastro. "Artigo traduzido da versao em ingles do Delphi Basics. A palavra-chave FOR inicia um ciclo de controle, que e executado um numero finito de vezes. A variavel e definida como o resultado da expressao 1.Se o resultado for inferior ou igual ao resultado da segunda expressao (quando especificada), assim, a instrucao e executada. A variavel e entao incrementada por 1 e o processo e repetido ate que o valor da variavel exceder o valor de expressao 2.Para a tecnica downto, o valor da variavel e verificado como sendo maior do que ou igual a segunda expressao, e o seu valor e decrementado no final do laco for. As expressoes podem resultar em qualquer tipo ordinal Integers, Characters ou Enumerations. A Declaracao for pode compreender uma unica linha, ou um conjunto de instrucoes com um bloco de inicio (begin) / fim (end)."Confira alguns exemplos da utilizacao do laco For no Delphi:Integer com loop em For// Full Unit code.// // You must store this code in a unit called Unit1 with a form// called Form1 that has an OnCreate event called FormCreate.unit Unit1;interfaceuses SysUtils, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implementation{$R