MSFLEXGRID E SCROLLBAR

SPYDREX 09/04/2010 12:11:09
#338937
Gente, já tentei de todo jeito resolver isso.

Tenho um flexgrid onde não consigo que apareça o scrollbar nele, os registros ultrapassam a tela e não consigo selecioná-los, alguém pode me ajudar ?

O Trecho do código é o seguinte:

-- Inicio ---
Private Sub CarregaGrid(param As String)
Dim coluna As Integer
Dim linha As Integer
Dim largura_coluna() As Single
Dim largura_campo As Single

gridProduto.Rows = 2
gridProduto.Cols = 6

[ô] define linhas fixas igual a um e não usa colunas fixas
gridProduto.FixedRows = 1
gridProduto.FixedCols = 0


Connect

Select Case param
Case [Ô]Codigo[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto WHERE produtos.codinterno LIKE [ô]%[Ô] & txtCodigo & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Case [Ô]Nome[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto WHERE produtos.nome LIKE [ô]%[Ô] & txtNome & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Case [Ô]Todos[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto[Ô], CON, adOpenStatic, adLockOptimistic
End Select

[ô] define o numero de linhas e colunas e cria uma matrix com o total de registros a exibir
gridProduto.Rows = 1
gridProduto.Cols = RS.Fields.Count
ReDim largura_coluna(0 To RS.Fields.Count - 1)

[ô] exibe os cabeçalhos das colunas
For coluna = 0 To RS.Fields.Count - 1
gridProduto.TextMatrix(0, coluna) = RS.Fields(coluna).Name
largura_coluna(coluna) = TextWidth(RS.Fields(coluna).Name)
Next coluna

[ô] exibe o valor de cada linha

linha = 1

Do While Not RS.EOF

gridProduto.Rows = gridProduto.Rows + 1

For coluna = 0 To RS.Fields.Count - 1

If IsNull(RS.Fields(coluna).Value) Then
gridProduto.TextMatrix(linha, coluna) = [Ô][Ô]
Else
gridProduto.TextMatrix(linha, coluna) = RS.Fields(coluna).Value
End If

[ô] verifica o tamanho dos campos
If IsNull(RS.Fields(coluna).Value) Then
largura_campo = 0
Else
largura_campo = TextWidth(RS.Fields(coluna).Value)
End If

If largura_coluna(coluna) < largura_campo Then largura_coluna(coluna) = largura_campo

Next coluna

RS.MoveNext

linha = linha + 1

Loop

regContador = CStr(RS.RecordCount)

If gridProduto.Rows > 2 Then
Me.Caption = [Ô]Buscar Produto - [Ô] & regContador & [Ô] produtos encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Produto - [Ô] & regContador & [Ô] produto encontrado[Ô]
End If

Disconnect

[ô] define a largura das colunas no grid
For coluna = 0 To gridProduto.Cols - 1
gridProduto.ColWidth(coluna) = largura_coluna(coluna) + 240
Next coluna

gridProduto.ScrollBars = flexScrollBarBoth
gridProduto.TopRow = gridProduto.Rows - 1
gridProduto.Rows = 14
gridProduto.FixedRows = 1
gridProduto.WordWrap = True

End Sub

--- Fim ---

Grato.

Jose Carlos Ribeiro
JANDER 09/04/2010 12:53:09
#338940
antes do end sub retira a linha [Ô] gridProduto.Rows = 14[Ô]
SPYDREX 09/04/2010 13:36:58
#338943
Citação:

:
antes do end sub retira a linha [Ô] gridProduto.Rows = 14[Ô]



Nada feito, não apareceu o scrollbar
EDERMIR 09/04/2010 16:22:38
#338963
Você pode mostrar a tela da sua aplicação ANTES e depois de povoar o GRID?

é possível que a ÁREA do grid seja maior que a tela.
SPYDREX 09/04/2010 16:28:33
#338964
Citação:

:
Você pode mostrar a tela da sua aplicação ANTES e depois de povoar o GRID?

é possível que a ÁREA do grid seja maior que a tela.



Obrigado eu resolvi de outra forma.
JANDER 13/04/2010 12:33:41
#339191
meu camarada informa como vc resolveu seu problema para que possamos todos saber.
SPYDREX 16/07/2010 16:36:05
#347581
Citação:

:
meu camarada informa como vc resolveu seu problema para que possamos todos saber.



Eu tinha uma rotina que centralizava o formulário na tela, e ela estava dando problema, removi e o problema foi sanado.

Grato.
Tópico encerrado , respostas não são mais permitidas