EXIBIR TEXTO FORMATADO

KZAN 19/12/2003 09:30:49
#1702
Olá amigos,

Preciso exibir num form um texto com formatação de fonte e parágrafo.
Alguém poderia me ajudar?

desde já agradeço
USUARIO.EXCLUIDOS 19/12/2003 09:53:04
#1707
Resposta escolhida
Dê mais detalhes. Vai escrever em qual objeto? RichTextBox?
USUARIO.EXCLUIDOS 22/12/2003 11:29:23
#2012
Bom. Pra começar, vamos lá:

Num form, dois RTBox: um chamado RTB e outro RichTextBox1. Esse último com visible=false. Dois botões: um chamado "Negrito" e outro chamado "Italico" (adivinha por que?)

Private Sub Form_Activate()
RTB.SelStart = Len(RTB.Text)
End Sub

Private Sub Italico_Click()
If RTB.SelText "" Then 'se tiver algo selecionado
If Italico.Value = 1 Then
RTB.SelItalic = True
Else
RTB.SelItalic = False
End If
End If
RTB.SetFocus
End Sub

Private Sub Negrito_Click()
If RTB.SelText "" Then 'se tiver algo selecionado
If Negrito.Value = 1 Then
RTB.SelBold = True
Else
RTB.SelBold = False
End If
End If
RTB.SetFocus
End Sub

Private Sub RTB_KeyDown(KeyCode As Integer, Shift As Integer)
RTB.SelStart = Len(RTB.Text)
RTB.SelLength = 1
If Negrito.Value = 1 Then
RTB.SelBold = True
Else
RTB.SelBold = False
End If
If Italico.Value = 1 Then
RTB.SelItalic = True
Else
RTB.SelItalic = False
End If
RTB.SelStart = Len(RTB.Text)
End Sub

Private Sub RTB_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then 'parágrafo
RTB.Visible = False
RichTextBox1.TextRTF = RTB.TextRTF
KeyAscii = 0
RTB.Text = RTB.Text & vbCr & vbTab
'agora, restauramos as formatações
For qqu = 1 To Len(RichTextBox1.Text)
RichTextBox1.SelStart = qqu
RTB.SelStart = qqu
RichTextBox1.SelLength = 1
RTB.SelLength = 1
If RichTextBox1.SelBold = True Then RTB.SelBold = True
If RichTextBox1.SelItalic = True Then RTB.SelItalic = True
Next
RTB.Visible = True
RTB.SelStart = Len(RTB.Text)
RTB.SetFocus
End If
End Sub



Faça os testes e reporte os bugs. Apenas lembrando: transformar o RTB num editor de textos não é tarefa pra um fim-de-semana...

Dá pra fazer rotinas pra justificar o texto também (à  esquerda, centro, direita e total). é só seguir a lógica das rotinas acima.
Tópico encerrado , respostas não são mais permitidas