Jump to content

VB.Net - Reporduzir caracteres - fonte grande


Super Oliks
 Share

Recommended Posts

WinForms acaba por ser mais difícil porque tens muito mais possibilidades:

Escrever em:

- Imagem?

- TextBox?

- Ficheiro?

- No form?

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

O que deves fazer é mapear cada letra a uma matriz de "on-offs" para construir cada linha da richtext.

O conceito é simples, a concepção é manhosa para quem não tem muita experiência.

Por exemplo, "S" poderia traduzir-se em:

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Deixo-te ai uma "sugestão":

Public Function s() As String
        Return New String( _
        "  * * * * * * * *  " + "#" + _
        "  *                   " + "#" + _
        "  *                   " + "#" + _
        "  * * * * * * * *  " + "#" + _
        "                   *  " + "#" + _
        "                   *  " + "#" + _
        "  * * * * * * * *  " + "#")
    End Function

    Public Function o() As String
        Return New String( _
        "  * * * * * * * *  " + "#" + _
        "  *                *  " + "#" + _
        "  *                *  " + "#" + _
        "  *                *  " + "#" + _
        "  *                *  " + "#" + _
        "  *                *  " + "#" + _
        "  * * * * * * * *  " + "#")
    End Function


    Public Function l() As String
        Return New String( _
        "  *                   " + "#" + _
        "  *                   " + "#" + _
        "  *                   " + "#" + _
        "  *                   " + "#" + _
        "  *                   " + "#" + _
        "  *                   " + "#" + _
        "  * * * * * * * *  " + "#")
    End Function

Sim, basicamente fazes uma função para cada letra, é óbvio que podes fazer de outras maneiras, que até podem ser mais simples...

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        RichTextBox1.Clear()
        Dim text As New String("")

        For index As Integer = 0 To TextBox1.Text.Length - 1
            text &= CallByName(Me, TextBox1.Text(index), CallType.Method, Nothing).ToString()
        Next


        For iindex As Integer = 0 To 6
            For index As Integer = iindex To (TextBox1.Text.Length * 7) - 1 Step 7
                RichTextBox1.Text &= text.Split("#")(index)
            Next
            RichTextBox1.Text &= vbCrLf
        Next
    End Sub

Para processar as letras percorro a string que está na textbox1 e guardo a letra já convertida, depois faço um ciclo onde junto todas as linhas uma a uma de maneira a formar o texto.

Já agora deixo uma nota: usa um tipo de letra que tenha o tamanho das letras igual.

Link to comment
Share on other sites

Não propriamente.

Isto vê-se mais no underworld da pirataria.

Se abrires um famoso NFO vais notar que todos têm letras e bonecos fantásticos, baseados em ASCII Art.

Não podes simplesmente "aumentar a letra" para fazer um tipo de trabalho destes, que fique perfeitamente independente de plataforma, fonte ou tamanhos.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.