SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: NextorJoc en Miércoles 26 de Mayo de 2004, 22:50

Título: Ayudaaaa Facìl
Publicado por: NextorJoc en Miércoles 26 de Mayo de 2004, 22:50
:huh:  Hola, a todos, gracias por entrar aqui.

Mi pregunta es: ¿como hago para que un label cambie el tamaño del alto dependiendo de la cantidad de lineas?

Me explico, yo tengo un label en el cual se va a ingrear un texto de n caracteres, cuando el texto alcanza al limite, pasa al siguiente renglon, como hago para que el label ò textbox se  agrande de acuerdo con las lineas que contenga, por favor lo nesecito





Gracias
Título: Re: Ayudaaaa Facìl
Publicado por: Juanolo en Jueves 27 de Mayo de 2004, 00:01
Hola NextorJoc.
Podrías utilizar el siguiente código como base:

Código: Text
  1.  
  2. Private Sub VerificaAltura()
  3.     Label1.Height = Entero(TextWidth(Label1.Caption) _
  4.     / Label1.Width) * TextHeight(Label1.Caption)
  5. End Sub
  6.  
  7. Private Function Entero(nUm As Single)
  8.     'Redondea al número entero superior
  9.     If nUm - Int(nUm) > 0 Then
  10.         Entero = Int(nUm) + 1
  11.     Else
  12.         Entero = Int(nUm)
  13.     End If
  14. End Function
  15.  
  16.  

La función textwidth te da el ancho de la cadena.
La función Entero la cree para que el número de líneas sea el entero superior de la división del ancho de la cadena por el ancho del label (puede que exista una de norma, pero no la hallé).
Nota Importante: La función Textwidth te indica el ancho de la cadena, pero considerando el tipo de letra del form. Luego, debes tener la precaución de que ambos tipos de letra sean iguales.
Además, ten en cuenta que sólo es una idea para comenzar. Seguramente te encontrarás conque la idea trabaja demasiado al límite en cuanto a la altura, por lo que quizás te convenga agregar un par de twips por línea. Por otro lado, sequramente tendrás problemas cuando sea un gran número de líneas, a causa de que los espacios en blanco que queden al correrse una palabra larga a la línea inferior no será considerado como ancho adicional por la función Textwidth. Ahí también le puedes agregar un poco de tolerancia al ancho del label.

Bueno... Pero si fuera perfecto te quitaría toda la entretención.

Ojalá te inspire.
 :hola:
Título: Re: Ayudaaaa Facìl
Publicado por: Juanolo en Jueves 27 de Mayo de 2004, 00:11
Lo probé y está entretenido.

Ahí te va el proyectillo.

 :hola:
Título: Re: Ayudaaaa Facìl
Publicado por: NextorJoc en Miércoles 2 de Junio de 2004, 17:02
Nuchisimas gracias muchachos, de nuevo, grcias, lo voy a probar.
Igualmente, decubri untilizando el ocx Form 2.0 que hay un label en el que le pongo autozise y me lo agranda de acuerdo a las lineas que contenga el texto.






Gracias igual y lo voy a probar. :hola: