CABECALHO DO MSHFLEXGRID

ARCADYUM 17/12/2010 19:40:57
#359795
Pessoal,
Recentemente perguntei a comunidade sobre a diferença e as vantagens entre utilizar um MSHFLEXGRID e MSFLEXGRID. Considerações a parte resolvi utilizar um MSHFLEXGRID. Porém surgiu uma situação que já pesquisei no fórum e já realizei inúmeros testes em busca de uma solução e não consegui resultado satisfatório. Segue abaixo parte do código que estou utilizando para montar o cabeçalho do componente:

.ColHeader(0) = flexColHeaderOn
.ColAlignmentHeader(0) = 4
.ColWidth(0) = 200

.ColHeader(1) = flexColHeaderOn
.ColHeaderCaption(0, 1) = [Ô]CÓDIGO[Ô]
.ColWidth(1) = 0
.ColAlignmentHeader(1) = 4

.ColHeader(2) = flexColHeaderOn
.ColHeaderCaption(0, 2) = [Ô]CÓDIGO[Ô]
.ColWidth(2) = 1500
.ColAlignmentHeader(2) = 4

.ColHeader(3) = flexColHeaderOn
.ColHeaderCaption(0, 3) = [Ô]GRUPO[Ô]
.ColWidth(3) = 3950
.ColAlignmentHeader(3) = 1


.ColHeader(4) = flexColHeaderOn
.ColHeaderCaption(0, 4) = [Ô]COMPOSTO[Ô]
.ColWidth(4) = 1500
.ColAlignmentHeader(4) = 1


Após montar o cabeçalho eu preencho o componente com os dados necessários. O problema ocorre quando eu clico no cabeçalho. Ao clicar no cabeçalho o componente seleciona a ultima linha preenchida do grid. Alguém sabe me explica o por quê deste comportamento?
Gostaria que não ocorresse isso.
Aguardando respostas.

MARCELO.TREZE 17/12/2010 21:48:39
#359810
tente colocar estas propriedades e veja o resultado

MSHFlexgrid1.HighLight = flexHighlightWithFocus
MSHFlexgrid1.FocusRect = flexFocusNone
ARCADYUM 18/12/2010 06:24:34
#359825
Marcelo continua com o mesmo problema. Se eu clicar no cabeçalho a última linha preenchida do grid é selecionada
MARCELO.TREZE 18/12/2010 12:06:19
#359844
olha só clique com o botão direito sobre o mshflexgrid, e depois em propriedades.

faça as alterações sugeridas

da forma que sugeri quando clicar sobre o titulo da coluna a esta se destacara, e caso contrario somente a celula em que clicar ficara destacada.
ARCADYUM 19/12/2010 10:08:54
#359886
Marcelo,
Continua o problema, inclusive tentei até via código em tempo de execução e não resolveu ainda.
ARCADYUM 10/01/2011 10:19:24
#361722
Bom, vou aproveitar o tópico e fazer outra pergunta. é possível manter o cabeçalho do controle sempre visível?
Aguardando notícias.
IRENKO 10/01/2011 11:28:49
#361730
Resposta escolhida
Para o MSFLEXGRID, tente como mostra o exemplo abaixo:

Private Sub CabecalhodoGridAgenda()
[ô] configuar o GridAgenda
With GridAgenda
.GridLines = flexGridFlat
.FixedRows = 1
.FixedCols = 1 [ô]certo 0
.ScrollBars = flexScrollBarBoth
.AllowUserResizing = flexResizeColumns
.CellFontBold = True
.Cols = 6 [ô] Número de colunas(incluindo o cabecalho)
.Rows = 1 [ô] Número de linhas(com cabecalho)

.TextArray(0) = [Ô]Status[Ô]
.ColWidth(0) = 700 [ô] Largura da coluna 0
.ColAlignment(0) = 3

.TextArray(1) = [Ô]Código[Ô]
.ColWidth(1) = 780
.ColAlignment(1) = 3 [ô]flexAlignRightBottom

.TextArray(2) = [Ô]Nome do Paciente[Ô] [ô]5500
.ColWidth(2) = 5800 [ô]6200
.ColAlignment(2) = 1

[ô]
.TextArray(3) = [Ô]Data da Consulta[Ô]
.ColWidth(3) = 1800
.ColAlignment(3) = 3

[ô]
.TextArray(4) = [Ô]Hora da Consulta[Ô]
.ColWidth(4) = 1800
.ColAlignment(4) = 3

.TextArray(5) = [Ô]Realizado[Ô]
.ColWidth(5) = 1200
.ColAlignment(5) = 3

[ô]
End With
Dim I
[ô]coloca o cabeçalho em negrito
With GridAgenda
.Row = 0 [ô]Primeira linha do FlexGrid
For I = 0 To .Cols - 1
.col = I
.CellFontBold = True
.CellForeColor = Branco [ô]RGB(201, 16, 23) [ô]&HFFFFFF
.CellBackColor = &HC0C0C0 [ô]&H404040
.CellFontSize = 11
.CellFontName = [Ô]times new roman[Ô]
.RowHeight(0) = 315
Set .CellPicture = ImgList_Grid.ListImages(2).Picture
Next I
End With
End Sub
ARCADYUM 10/01/2011 15:14:19
#361758
Irenko,
Obrigado pela atenção. Mas acho que me expressei mal. O que acontece é que quando tenho uma grande quantidade de dados no grid e preciso verificar dados que estão mais abaixo o cabeçalho do Grid não acompanha a pesquisa. Em suma o cabeçalho é estático. Como não conheço todos os comandos do componente e não achei nada na internet sobre talvez você possam me dar uma dica.
Não abusando se puder me responder sobre a primeira dúvida também agradeceria.
Aguardando notícias.
IRENKO 11/01/2011 07:36:08
#361826
Eu realmente nã entendi bem a sua dúvida, mas vai anexo 03 exemplos praticos de montar um FlexGrid. Espero ter ajudado.
ARCADYUM 11/01/2011 09:02:40
#361831
Valeu irenko,
Mas eu estou utilizando o MSHFlexGrid, talvez seja isso que esteja havendo confusão. Mas os exemplos que você me enviou e os testes me mostraram que MSFlexGrid se comporta de forma diferente, apesar de apresentar o mesmo problema que solicitei inicialmente.
Fechando o tópico.
Tópico encerrado , respostas não são mais permitidas