FLEXGRID WORWRAP

RICOCARDOZO 06/06/2011 17:48:19
#376000
Olá a Todos
Estou tentando bolar uma quebra de linha em um flexgrid.
Baseado neste exemplo onde num fom coloquei um flex grid e um command buton:

Private Sub botao_Click()
Grade.Row = 0
Grade.Col = 0
Grade.CellFontBold = True
Grade.Text = [Ô]Orientações sobre as regras para consolidação dos débitos.[Ô]
Grade.ColWidth(0) = 3840

Grade.Row = 1
Grade.Col = 0
Grade.ColWidth(0) = Grade.Width - 400
Grade.Text = [Ô]Pessoas Jurídicas optantes pelas modalidades de parcelamento previstas [Ô] & _
[Ô]nos arts 1º ou 3º da Lei nº 11.941/2009 ou pelos arts. 1º ou 3º da MP nº 449/2008[Ô]
letras = Len(Texto)
Grade.RowHeight(1) = 500
Grade.WordWrap = True

End Sub

Com a função wordwrap ele funciona legal só que :
como calcular a altura da linha ,para que o texto ao chegar no final ele pule para a proxima .
Por exemplo uma linha = Grade.RowHeight(1) = 250
Duas linhas = 250 + 250+500 que é o q está no exemplo
Tres linhas = 750
RICOCARDOZO 06/06/2011 17:50:13
#376001
Como fica ao diminuir o form
LLAIA 06/06/2011 19:22:34
#376008
O objeto Form e Printer tem uma função chamada TextHeight que calcula a altura do texto. Teste aí

Grade.RowHeight(1) = Me.TextHeight([Ô]Seu texto[Ô]) 
LUIS.HERRERA 06/06/2011 19:37:23
#376010
Resposta escolhida
Rico eu faço assim:
coloca um label com
AutoSize = true
WordWrap = True

Coloca a fonte (tipo e tamanho) iguais no label e no grid.

Depois na hora de preencher seu grid, passa o texto para o label, pega a altura do label e passa para a linha que vai preencher, depois associa os dados nas respectivas colunas, repita o processo para cada linha, lembrando antes de limpar a label para voltar ao tamanho original, fica mais ou menos assim:

lblAlturaLinha.Width = .ColWidth(2)
lblAlturaLinha.Caption = txtDescricao.Text
grid.RowHeight(grid.RowSel) = lblAlturaLinha.Height + 30
Tópico encerrado , respostas não são mais permitidas