QUEBRA LINHA NO FLEXGRID

JLSMA 03/01/2013 01:17:22
#416653
Boa Noite
Gostaria de verificar se é possível fazer com que o título do flexgrid fique em duas linhas tipo quebra automatico da linha como no excel.
por exemplo gostaria que no cabeçalho da coluna 13 ficasse 2 informações como DEVE
1.000,00
sendo o valor o total desta coluna

tentei desta forma mas não funcionou

If SomaDeveFlex > 0 Then
.TextMatrix(0, 13) = [Ô]DEVE[Ô] & Chr(13) & SomaDeveFlex
Else
.TextMatrix(0, 13) = [Ô]DEVE[Ô]
End If
aumentei a altura do cabeçalho com desta forma .RowHeight(0) = 400, não quero aumentar mais largura da coluna que esta com .ColWidth(13) = 700

Obrigado

Jair
LUIS.HERRERA 03/01/2013 09:25:10
#416661
Resposta escolhida
Jair tem sim. Porém para fazer isso deve ser antes de visualizar o grid.

Eu faço assim para as linhas na hora de preencher, não fiz nada para o cabeçalho, mas é a mesma coisa.

Cria uma label oculta com a mesma fonte (tipo e tamanho) da usada no cabeçalho do seu grid.
Coloca o Width da label igual a largura inicial da coluna e deixa a largura fixa (ou seja não pode ser autoajustável).
O último ajuste no label é deixar suas linhas automáticas e com a quebra também, para aumentar em função do conteúdo (texto inserido).
Na hora de preencher o grid, coloca o Redraw dele como false.
Coloca o valor do título da coluna no label.
Pega o valor do Height da label e passa para a altura desta coluna + 30 para não deixar o texto colado na linha inferior.

Por último volta o Redraw do grid para True e assim exibir o conteúdo. Esta dica faz o carregamento do grid ser mais rápido, pois não desenha linha a linha na tela.

Nota: O único problema desse recurso, é que vai depender muito do texto inserido na label, pois a quebra seguirá o padrão do componente em função do conteúdo, ex: espaços em branço, pontos, vírgulas, etc...

Com isso cada linha, se usado para todas, fica com um tamanho diferente em função do seu conteúdo.
GANDA.NICK 03/01/2013 09:35:00
#416663
olá

veja também o [txt-color=#e80000]WordWrap [/txt-color]


Me.MSFlexGrid1.WordWrap = True
Me.MSFlexGrid1.RowHeight(0) = 400
Me.MSFlexGrid1.TextMatrix(0, 13) = [Ô]DEVE[Ô] & vbCrLf & [Ô]534534534[Ô]



té +
JLSMA 03/01/2013 12:44:11
#416682
Obrigado LUIS HERRERA e GANDA_NICK

deu certo aqui com as dicas, obrigado Jair

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