replace texto centrado

Iniciado por andrer03, 1 Febrero 2009, 19:41 PM

0 Miembros y 1 Visitante están viendo este tema.

Dessa

andrer03, Ninguno de nosotros somos adivinos, una cosa es como pantleaste la pregunta (refiriendote a una cadena) y otra es si el texbox2 tiene mas texto o es multiline, si no  explicas todo desde un principio nos "descolocas" (por lo menos a mi)
Quisiera ayudarte pero no entiendo la pregunta Saludos

 
Adrian Desanti

BlackZeroX

Cita de: andrer03 en  1 Febrero 2009, 22:16 PM
no por que hay mas texto en el texbox2 y si lo pongo centrado lo destrozo a todo y quiero hacer esto en  una linea de el texto cargado en el texbox2

Funcion:

Format()

te serviria?
The Dark Shadow is my passion.

seba123neo

es lo mas cutre que pude hacer, no me pidan mas, recien me levanto  :xD

Private Sub Command1_Click()
    Text1.Alignment = 0
    Text1.Text = "Cambiaste el Texto"
    Text1.Alignment = 2
End Sub

Private Sub Form_Load()
    Text1.Alignment = 2
    Text1.Text = "Holaaaaaaaaa"
End Sub


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

el_c0c0

si no es como dice seba123neo, ponele los bordes en flat (al text), y mandale corchetes con labels atras
'-     coco
"Te voy a romper el orto"- Las hemorroides

andrer03

#14
bueno he pensado esto
               
[                                                     ]  ->maximo de letras  q se puede ingresar entre los margenes [] es 30

un ejemplo las palabra que quiero centrar es: hola ->que tiene 4 letras

entoces calculo los espacios que tengo que añadir para que la palabra quede centrada

si el maximo de letras que permite es 30 y la palabra a remplazar tiene 4 letras

30-4=26espacios

entonces si divido 26/2 = 13espacios para la izquierda y otros 13 para la derecha

entonces quedaria asi.

[1234567890123HOLA1234567890123]

los numero que puse serian espacios

asi con espacios los margenes se mantendrian en su lugar y se centraria la palabra a remplazar con los espacios calculados para la derecha y para la izquierda

bueno compañeros no se si la lie mas o menos pero es como lo razone :) lo que no se es el codigo espero que me ayuden de nuevo ^^















Novlucker

#15
Algo así ...

Código (vb) [Seleccionar]
Dim Centrar as Integer
Dim Espacios as String

Centrar = (30 - Len(text1.text))/2
Espacios = String(Centrar," ")
text2.text = Espacios & text1.text & Espacios


Esta podría ser la base, solo tienes que agregarle un par de condicionales para evaluar si realmente deben de agregarse espacios o también si el número de lugares libres en pricipio es impar y por lo tanto no se puede dividir entre dos así como así  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

<[(x)]>

holas

Ya que estamos

La única función que usaría yo, space.

Y tu teoría funciona bien con palabras con caracteres pares. Si tratas con '123',  el resultado de los espacios es 14 osea 14*2=28  y 3 de la cadena nos queda 31. y en otros casos puede llegar a quedarte 29.

Otro detalle a destacar que cada carácter ocupa un espacio determinado y eso puede cagarte algo. Hay una fuente que todos sus caracteres ocupan lo mismo pero no me la acuerdop.


La funcion Space devuelve espacios, su cantidad es dada por su argumento.

Código (vb) [Seleccionar]

strPrueba=Space(10)


strPrueba tendría el valor: "          "


54¬u|)()5

<[(x)]>

Novlucker

La función space cumple la misma función que string

String(x," ") == Space(x)

Saludos  :-*
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

andrer03

gracias por tu ayuda Novlucker ya lo porobe y lo adacte con la funcion  replace y funcion bien  ;D

Dim Centrar As Integer
Dim Espacios As String

Centrar = (30 - Len(Text1.Text)) / 2
Espacios = String(Centrar, " ")
Text2.Text = "[" & Espacios & Text1.Text & Espacios & "]"

'titulo
largo = Len(Text2.Text)
busco = "->"
For i = 0 To largo Step 1
busco = busco & " "
Next
txt3.Text = Replace(txt3.Text, "[", " ")
txt3.Text = Replace(txt3.Text, "]", " ")
txt3 = Replace(txt3.Text, busco, "-> " & Text2.Text)


bueno con eso consegui remplazarlo donde quiero y centrado mas o menos tampoco tiene que ser al milimetro con esto me conformo :D thx for all