Ir para conteúdo
Fórum Script Brasil
  • 0

Me Ajudem A Fazer Um Editor De Html


Denis Bittencourt Muniz

Pergunta

E aí galera?

alguém pode me ajudar?

alguém sabe fazer o seguinte:

"Quando o usuario clicar no botão de inserir TAG , aparecerá na caixa de texto o TAG.Por exemplo: O usuario clica no botão de inserir tag <title></title> e na caixa de texto aparecerá <title></title>.OBS: O escrito aparecerá onde estiver o piscando o cursor!"

OBS: Não é esse código!Text1 = <title></title> e nem esse Text1.text = Text1.text & "<title></title>"

Desde já eu agradeço

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Ou cara muito obrigado mesmo,você não sabe tanto q agradeço,valeu,eu nunca cosegui por tag,e descobri q é codigo simples,valeu

FALOW p/6

Link para o comentário
Compartilhar em outros sites

  • 0
Ou cara muito obrigado mesmo,você não sabe tanto q agradeço,valeu,eu nunca cosegui por tag,e descobri q é codigo simples,valeu

FALOW p/6

De nada. Só que o código ali, efetivamente falando, não é para "pôr uma tag" e sim para definir o texto da seleção presente na textbox. É claro que isso terá diversas utilidades práticas e uma delas é o que você deseja. wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

aew cara, aproveitando o tópico, vocês podem me dqar um ajuda...

tipo, eu tnho este codigo

:

    Private Sub RTB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RTB.TextChanged
        cores()
        RTB.ForeColor = System.Drawing.Color.Black
        RTB.SelectionStart = cur
        RTB.SelectionLength = 0
    End Sub
    Dim cur As Integer
    Sub cores()
        cur = RTB.SelectionStart

        'html
        RTB.Find("<html>")
        If RTB.SelectionLength() > 0 Then
            RTB.SelectionFont = New Font(RTB.SelectionFont, FontStyle.Bold)
            RTB.SelectionColor = System.Drawing.Color.Red
        End If

        RTB.Find("</html>")
        If RTB.SelectionLength() > 0 Then
            RTB.SelectionFont = New Font(RTB.SelectionFont, FontStyle.Bold)
            RTB.SelectionColor = System.Drawing.Color.Red
        End If

        '<b>
        RTB.Find("<b>")
        If RTB.SelectionLength() > 0 Then
            RTB.SelectionFont = New Font(RTB.SelectionFont, FontStyle.Bold)
            RTB.SelectionColor = System.Drawing.Color.Blue
        End If

        RTB.Find("</b")
        If RTB.SelectionLength() > 0 Then
            RTB.SelectionFont = New Font(RTB.SelectionFont, FontStyle.Bold)
            RTB.SelectionColor = System.Drawing.Color.Blue
        End If

q serve pra localizar TAGS html e trocar as cores...só q num tm algum jeito deu melhorala...por q ta com muito bug...tipo ele só muda a cor da primeira TAG o texto, e mais aluns erros...

se alguém souber um jeito melhor, me da um toque aew

obs: Estou usando vb.net 2003

=) t+

Link para o comentário
Compartilhar em outros sites

  • 0

Então eu recomendo que você dê uma estudada no formato RTF, pois ele é formado mais ou menos como um HTML. Na propriedade rtf de um RichTextBox você pode definir o código bruto dele, sem ter que ficar selecionando o texto propriamente e formatando (eu já tentei desse jeito que você está fazendo e dá muita dor de cabeça).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Rtf é uma propriedade por isso o que você pode fazer com ela é definir um valor ou pegar o valor. Por exemplo:

msgbox(rtb1.rtf)
Ou:
rtb1.rtf = "{\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}{\colortbl;\red255\green0\blue0; \red0\green255\blue0;}\viewkind4\uc1\pard\f0\fs17 isto \'e9 \cf1um \cf0\cf2\b teste\cf0\b0\par}"
O segundo exemplo escreve "isto é um teste" com o "um" em vermelho e sem negrito e o "teste" em verde com negrito. O ponto-chave ali está na seguinte parte:
{\colortbl;\red255\green0\blue0; \red0\green255\blue0;}

Ali eu defino as duas cores RGB: (255, 0, 0) que é o vermelho e (0, 255, 0) que é o verde. Depois disso eu posso utilizá-las no texto, através das "tags": "\cf1" e "\cf2" (note que antes do "um" existe um "\cf1" [para o vermelho] e antes do "teste" existe um "\cf2" [para o verde]). Além disso, o "\b" ali indica que é negrito e o "\cf0" é o texto comum (preto). Sacou? wink.gif

Não tenho nenhum tutorial sobre isso, mas o todo-poderoso Google deve poder te indicar algo. Eu só sei dessas coisas porque já andei mexendo com o RTB há um tempo atrás enquanto modificava um componente para colorizar a sintaxe (acho que se você procurar por CodeBox, aqui no fórum, encontrará um post a respeito).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
então se eu quiser fazer o q eu qro fazer tongue.gif

eu vou ter q colocar um if pra ve se contm a palavra <html> nu RTB

e dai usa essa opçao pra colorir ela... ateh ai blza...

mais como eu faço esse if ?

malz a enxeçao de saco =X

t+

Necessariamente você não precisa de um if ali. Veja este exemplo:

    Dim palavras() As String = {"<html>", "</html>"}

    Private Sub RTB_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RTB.KeyDown
        Dim cabeçalho As String = "{\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}"
        Dim cores As String = "{\colortbl;\red0\green0\blue255; \red0\green255\blue0;}"
        Dim início As String = "\viewkind4\uc1\pard\f0\fs17"
        Dim texto As String = RTB.Text
        Dim curpos As Integer = RTB.SelectionStart
        Dim palavra As String

        For Each palavra In palavras
            texto = Replace(texto, palavra, "\cf1\b" & palavra & "\cf0\b0")
        Next palavra

        RTB.Rtf = cabeçalho & cores & início & texto & "\par}"
        RTB.SelectionStart = curpos

    End Sub

Note que RTB é a RichTextBox. Execute ele aí e veja o resultado.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
então se eu quiser fazer o q eu qro fazer tongue.gif

eu vou ter q colocar um if pra ve se contm a palavra <html> nu RTB

e dai usa essa opçao pra colorir ela... ateh ai blza...

mais como eu faço esse if ?

malz a enxeçao de saco =X

t+

Necessariamente você não precisa de um if ali. Veja este exemplo:

    Dim palavras() As String = {"<html>", "</html>"}

    Private Sub RTB_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RTB.KeyDown
        Dim cabeçalho As String = "{\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}"
        Dim cores As String = "{\colortbl;\red0\green0\blue255; \red0\green255\blue0;}"
        Dim início As String = "\viewkind4\uc1\pard\f0\fs17"
        Dim texto As String = RTB.Text
        Dim curpos As Integer = RTB.SelectionStart
        Dim palavra As String

        For Each palavra In palavras
            texto = Replace(texto, palavra, "\cf1\b" & palavra & "\cf0\b0")
        Next palavra

        RTB.Rtf = cabeçalho & cores & início & texto & "\par}"
        RTB.SelectionStart = curpos

    End Sub

Note que RTB é a RichTextBox. Execute ele aí e veja o resultado.

Abraços,

Graymalkin

SACHÊT laugh.gifdry.gifph34r.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Marcelo Galbe

Amigo Graymalkin... estou precisando fazer exatamente o que você citou: Preciso colorir, mudar, colocar em bold a sintaxe em um textbox (ou richtext) enquanto vou digitando. já fiz um que funciona bem... porem, a performance não é tão boa... queria algo como o editor do VB mesmo... conhece algum componente (ou codigo) que possa me ajudar.?

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, os códigos dos posts acima seriam o ponto de partida para criar algo legal com a RichTextBox. Não sei como você fez o seu modelo inicial, mas se você estiver selecionando o texto e formatando realmente a performance é bem ruim. Já trocando no código RTF creio que seja possível deixar a coisa mais "natural".

Ah, se cadastre aí no fórum e ajude a nossa comunidade a crescer, ok? ;)

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...