Anda di halaman 1dari 4

Microsoft FlexGrid Control 5.

0 Guia Rpido
Este texto visa apresentar algumas caractersticas bsicas e propriedades para o uso do MSFlexGrid 5.0, componente presente na instalao padro do Visual Basic. Nem de longe pretendemos esgotar as possibilidades de uso mas com essas informaes e um pouco de esprito de pesquisa voc pode conseguir grandes resultados com esse componente to presente em aplicaes de banco de dados. O que um grid ? Um grid nada mais do que uma estrutura de l nhas e colunas muito parecida com uma planilha onde i podemos exibir informaes de uma maneira muito prtica e eficiente em programas escritos em VB, principalmente aplicaes de banco de dados. Abaixo exemplo de um form VB usando um grid do tipo FlexGrid.

Como adiocionar um grid em meu form ? A primeira coisa a fazer inserir o componente MSFlexGrid 5.0 em seu projeto. V em Project / Components no menu principal e escolha o componente como mostrado na figura abaixo . Aps a confirmao em OK o componente FlexGrid pode ser visto na caixa de ferramentas conforme figura j abaixo :

Para inserir o objeto no form proceda como qualquer compontente : clic no componente na barra de ferramentas e desenhe no form. Um componente parecido com o da figura abaixo estar em seu form. Via de regra todas as propriedades comuns a qualquer componente esto tamb m disponveis para o FlexGrid tais como name, top, width etc . O mesmo vale para os principais eventos : click , doubleclick etc

Existem propriedades especficas em um FlexGrid que no encontro em outros componentes ? Sim. Algumas propriedades so especficas desse componente at mesmo por sua caracterstica de linhas x colunas . Abaixo listamos algumas delas ( design time ) : Cols : Indica a quantidade de colunas que o Grid ter FixedCols : Indica a quantidade de colunas fixadas (parecida com aquelas que carregam as letras das colunas numa planilha Excel e que no podem ser editadas ) FixedRows : Indica a quantidade de Linhas fixadas (parecida com aquelas que carregam o s nmeros das linhas numa planilha Excel e que no podem ser editadas ) Rows : Fixa a quantidade total de linhas que o grid ter.

Em Run Time temos algumas outras propriedades como as listadas abaixo : Col : Indica a coluna atual, aquela que estou utilizando Row : Indica a linha atual, aquela que estou utilizando ColWidth(nro da coluna) : seta o tamanho da coluna nro N, em pixels Text : seta o valor da clula representada em col x row

O que preciso fazer para trabalhar com o FlexGrid ? Usar um grid basicamente significa em linhas gerais configura-lo e em seguida alimentar as informaes . A procedure abaixo indica um conjunto de instrues m nimo para configurar um grid. O exemplo abaixo constri um grid com trs colunas : nome , endereo e telefone . Ele possui uma linha e uma coluna fixadas onde esto os t tulos e numeradores de linhas. Private Sub ConfiguraGrid() 'Seta o numero de linhas e colunas iniciais do grid MSFlexGrid1.Cols = 4 MSFlexGrid1.Rows = 2 'Seta quantas linhas e colunas das definidas anteriormente sero 'fixed MSFlexGrid1.FixedCols = 1 MSFlexGrid1.FixedRows = 1 MSFlexGrid1.Col = 0 'Seta os tamanhos de cada coluna do grid em pixels MSFlexGrid1.ColWidth(0) = 500 MSFlexGrid1.ColWidth(1) = 3000 MSFlexGrid1.ColWidth(2) = 2000 MSFlexGrid1.ColWidth(3) = 1300 'Seta as informaes do Fixed Row MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 1 MSFlexGrid1.Text = "Nome " MSFlexGrid1.Col = 2 MSFlexGrid1.Text = "Endereo" MSFlexGrid1.Col = 3 MSFlexGrid1.Text = "Telefone" End Sub

Para alimentar os dados em um grid basta inserir seqencialmente uma massa de informaes em um loop. Imagine um recordset com algumas informaes definido conforme abaixo :

Public db As Database Public tb As Recordset

Private Sub AbreBanco() Set db = DBEngine.OpenDatabase("c:\ricardo\bd1.mdb") Set tb = db.OpenRecordset("Contatos") End Sub

A procedure abaixo insere os dados desse recordset em um grid. Private Sub ExibeGrid() Posiciona o grid na linha 1 MSFlexGrid1.Row = 1 Posiciona o recordset no primeiro registro tb.MoveFirst Cria um loop no recordset. Enquanto no for fim de arquivo Do While Not tb.EOF Posiciona o grid na coluna 1 da linha selecionada MSFlexGrid1.Col = 1 Escreve nessa celula o nome MSFlexGrid1.Text = tb!nome Posiciona o grid na coluna 2 da linha selecionada MSFlexGrid1.Col = 2 Escreve nessa celula o endereo MSFlexGrid1.Text = tb!endereco Posiciona o grid na coluna 3 da linha selecionada MSFlexGrid1.Col = 3 Escreve nessa celula o telefone MSFlexGrid1.Text = tb!telefone Desloca para o proximo registro do recordset Tb.MoveNext Adiciona uma nova linha no grid MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1 Posiciona nessa linha ( lembrando que as linhas comeam em zero ! MSFlexGrid1.Row = MSFlexGrid1.Rows - 1 Loop End Sub

Como posso pegar a informao que est num grid ? Tudo o que voc precisa fazer posicionar a linha e coluna desejada e pegar o contedo pela propriedade text. Imagine que voc clicou numa clula do grid. Nesse momento a propriedade col e row recebem exatamente o numero da linha X coluna clicada. Basta ento resgatar o contedo pela propriedade text do grid.. O exemplo abaixo manda uma mensagem indicando o contedo da linha nome + endereo + telefone que voc clicar :

Private Sub MSFlexGrid1_Click() Dim texto As String texto = "" MSFlexGrid1.Col = 1 texto = texto + MSFlexGrid1.Text + " " MSFlexGrid1.Col = 2 texto = texto + MSFlexGrid1.Text + " " MSFlexGrid1.Col = 3 texto = texto + MSFlexGrid1.Text + " " MsgBox (texto) End Sub

Anda mungkin juga menyukai