• Jueves 25 de Abril de 2024, 21:56

Autor Tema:  Calcular Ancho De Textos  (Leído 3679 veces)

Widark

  • Miembro MUY activo
  • ***
  • Mensajes: 246
    • Ver Perfil
Calcular Ancho De Textos
« en: Sábado 24 de Septiembre de 2005, 00:11 »
0
Como les baila?

Quisiera saber como puedo calcular el ancho de los textos dependiendo el tamaño del campo :unsure:, es como lo que ocurre cuando se arrastran los campos desde el DataEnvironmet al formulario, que vienen con el Width segun el campo que le corresponde. He visto la funcion TXTWIDTH() y FONTMETRIC(), pero no entiendo (mi ingles definitivamente no esta nada bien)  bien su finalidad pienso que alguna combinacion de ellos puede dar lo que busco, pero :(. Cualquier comentario, guia, referencia lo agradecere mucho.
[:], Yo si se lo que es trabajar duro, por que lo he visto.
http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
NoSolocodigo --> Blog de Articulos

DrakerDG

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
    • http://drakerdg.xbot.es/wordpress/
Re: Calcular Ancho De Textos
« Respuesta #1 en: Sábado 24 de Septiembre de 2005, 15:03 »
0
:comp: Copie esto del help en español:

Código: Text
  1.  
  2. TXTWIDTH( ) (Función)
  3.  
  4. Devuelve la longitud de una expresión de caracteres con respecto al ancho promedio de carácter de una fuente.
  5.  
  6. Sintaxis
  7.  
  8. TXTWIDTH(cExpresión [, cNombreFuente, nTamañoFuente [, cEstiloFuente]])
  9.  
  10. Tipos devueltos
  11.  
  12. Numeric
  13.  
  14. Argumentos
  15.  
  16. cExpresión
  17.  
  18. Especifica una expresión de tipo carácter cuya longitud devuelve TXTWIDTH( ). Si sólo incluye cExpresión, se devuelve la longitud de la expresión de tipo Character para la fuente actual de la ventana principal de Visual FoxPro o de la ventana de resultado activa. Una fuente no proporcional siempre devuelve un valor igual al número de caracteres de cExpresión.
  19.  
  20. Incluya los argumentos opcionales cNombreFuente, nTamañoFuente y cEstiloFuente para determinar la longitud de una expresión de caracteres con una fuente, un tamaño de fuente o un estilo de fuente específicos.
  21.  
  22. cNombreFuente
  23.  
  24. Especifica el nombre de la fuente. Incluya cNombreFuente para devolver la longitud de una expresión de caracteres con una fuente específica.
  25.  
  26. nTamañoFuente
  27.  
  28. Especifica el número que corresponde al tamaño en puntos de la fuente. Incluya nTamañoFuente para devolver la longitud de una expresión de caracteres con un tamaño de fuente concreto.
  29.  
  30. cEstiloFuente
  31.  
  32. Especifica un estilo especial de fuente para la expresión de caracteres. cEstiloFuente es un código de estilo de fuente especificado por un carácter o un conjunto de caracteres. Se utilizará el estilo de fuente Normal si no se incluye cEstiloFuente. Éstos son los caracteres para cada estilo de fuente:
  33.  
  34. Carácter Estilo de fuente
  35. B Negrita
  36. I Cursiva
  37. N Normal
  38. O Contorno
  39. Q Opaco
  40. S Sombra
  41. - Tachado  
  42. T Transparente
  43. U Subrayado
  44.  
  45.  
  46. Puede incluir más de un carácter para especificar una combinación de estilos de fuente. Por ejemplo, BI especifica un estilo de fuente Negrita y Cursiva.
  47.  
  48. El comando siguiente muestra un mensaje con la fuente Courier normal de 24 puntos, centrado sobre la ventana principal de Visual FoxPro.
  49.  
  50. @ 25,(WCOLS( )-TXTWIDTH(¡Hola!','Courier ',24)*&#59;
  51.    FONTMETRIC(6,'Courier ',24)/FONTMETRIC(6))/2 &#59;
  52.    SAY '¡Hola!' FONT 'Courier ',24
  53.  
  54. Comentarios
  55.  
  56. TXTWIDTH( ) devuelve el número de caracteres que ocupa una expresión de caracteres cExpresión, basando en el ancho promedio de carácter de una fuente especificada (el ancho promedio de carácter de una fuente se llama fóxel). Utilice FONTMETRIC(6) para determinar el ancho promedio de carácter de una fuente.
  57.  
  58. Si no incluye una fuente en TXTWIDTH( ), el valor que devuelve TXTWIDTH( ) está determinado por la fuente actual de la ventana principal de Visual FoxPro si el resultado se dirige a la ventana principal de Visual FoxPro cuando se ejecuta TXTWIDTH( ). Si el resultado se está dirigiendo a una ventana definida por el usuario, el valor devuelto viene determinado por la fuente actual de la ventana.
  59.  
  60.  
  61.  

Código: Text
  1.  
  2. FONTMETRIC( ) (Función)
  3.  
  4. Devuelve los atributos de fuente de las fuentes instaladas actualmente en el sistema operativo.
  5.  
  6. Sintaxis
  7.  
  8. FONTMETRIC(nAtributo [, cNombreFuente, nTamañoFuente [, cEstiloFuente]])
  9.  
  10. Tipos devueltos
  11.  
  12. Numeric
  13.  
  14. Argumentos
  15.  
  16. nAtributo
  17.  
  18. Determina el atributo de fuente devuelto por FONTMETRIC( ). Si omite cNombreFuente, nTamañoFuente y cEstiloFuente, FONTMETRIC( ) devolverá un atributo para la fuente actual de la ventana de resultado activa.
  19.  
  20. La tabla siguiente muestra los valores de nAtributo y los atributos de fuente correspondientes devueltos.
  21.  
  22. nAtributo Atributo
  23. 1 Altura del carácter en píxeles
  24. 2 Elevación del carácter (unidades sobre la línea base) en píxeles
  25. 3 Caída del carácter (unidades bajo la línea base) en píxeles
  26. 4 Interlineado (separación entre líneas) en píxeles
  27. 5 Interlineado extra en píxeles
  28. 6 Ancho promedio del carácter en píxeles
  29. 7 Ancho máximo del carácter en píxeles
  30. 8 Peso de la fuente
  31. 9 Cursiva (0 = no, distinto de cero = sí)
  32. 10 Subrayado (0 = no, distinto de cero = sí)
  33. 11 Tachado (0 = no, distinto de cero = sí)
  34. 12 Primer carácter definido en la fuente
  35. 13 Último carácter definido en la fuente
  36. 14 Carácter predeterminado (sustituido por los caracteres que no estén en la fuente)
  37. 15 Carácter para dividir palabras
  38. 16 Densidad y familia
  39. 17 Juego de caracteres
  40. 18 Saliente (ancho extra agregado)
  41. 19 Aspecto horizontal para dispositivo de fuente
  42. 20 Aspecto vertical para dispositivo de fuente
  43.  
  44.  
  45. Para obtener más información sobre los valores numéricos devueltos por FONTMETRIC( ), consulte la función TEXTMETRIC en la Referencia del programador de Microsoft Windows.
  46.  
  47. cNombreFuente
  48.  
  49. Especifique el nombre de una fuente instalada.
  50.  
  51. nTamañoFuente
  52.  
  53. Especifique el tamaño del punto de la fuente especificada con cNombreFuente.
  54.  
  55. cEstiloFuente
  56.  
  57. Especifique un código de estilo de fuente para la fuente especificada con cNombreFuente. Si omite cEstiloFuente, FONTMETRIC( ) devolverá el atributo para el estilo de fuente Normal.
  58.  
  59. cEstiloFuente puede ser un carácter o una combinación de caracteres mostrada en la tabla de estilo de fuente siguiente. Por ejemplo, la combinación BI indica el estilo de fuente Cursiva Negrita.
  60.  
  61. Carácter Estilo de fuente
  62. B Negrita
  63. I Cursiva
  64. N Normal
  65. O Esquema
  66. Q Hueco
  67. S Sombra
  68. - Tachado
  69. T Transparente
  70. U Subrayado
  71.  
  72.  
  73. Comentarios
  74.  
  75. FONTMETRIC( ) devuelve atributos de fuente para la fuente actual en la ventana de resultado activa. WFONT( ) se puede utilizar para determinar la fuente de la ventana actual.
  76.  
  77.  
  78.  

Incluí esta tambien:

Código: Text
  1.  
  2. WFONT( ) (Función)
  3.  
  4. Devuelve el nombre, el tamaño o el estilo de la fuente actual de una ventana en Visual FoxPro para Windows.
  5.  
  6. Sintaxis
  7.  
  8. WFONT(nAtributoFuente [, NombreVentana])
  9.  
  10. Tipos devueltos
  11.  
  12. Character y Numeric
  13.  
  14. Argumentos
  15.  
  16. nAtributoFuente
  17.  
  18. Especifica el atributo de fuente que desea devolver.
  19.  
  20. Si nAtributoFuente es 1, WFONT( ) devolverá el nombre de la fuente actual para la ventana activa o la especificada.
  21.  
  22. Si nAtributoFuente es 2, WFONT( ) devolverá el tamaño de la fuente.
  23.  
  24. Si nAtributoFuente es 3, WFONT( ) devolverá un código que identifica el estilo de fuente.
  25.  
  26. El código de estilo de fuente es un carácter o un conjunto de caracteres que corresponde al estilo de fuente actual. Por ejemplo, si el estilo de fuente actual es Negrita Cursiva, WFONT(3) devolverá BI.
  27.  
  28. En la siguiente tabla se muestran los códigos de cada estilo de fuente:
  29.  
  30. Carácter Estilo de fuente
  31. B Negrita
  32. I Cursiva
  33. N Normal
  34. O Contorno
  35. Q Opaco
  36. S Sombra
  37. - Tachado  
  38. T Transparente
  39. U Subrayado
  40.  
  41.  
  42. NombreVentana
  43.  
  44. Especifica el nombre de la ventana cuya fuente, tamaño de fuente o estilo de fuente actuales desea determinar. En Visual FoxPro, también puede incluir el nombre de una barra de herramientas. Incluya la cadena vacía para devolver la fuente, el tamaño de fuente o el estilo de fuente actuales de la ventana principal de Visual FoxPro.
  45.  
  46. NombreVentana puede ser el nombre de una ventana definida por el usuario creada con DEFINE WINDOW o una ventana de edición de texto o memo.
  47.  
  48. También puede incluir el nombre de una ventana del sistema (Sesión de datos, Seguimiento, Depuración, etc.). WFONT( ) puede devolver atributos de fuente únicamente para una ventana del sistema que se haya abierto y esté actualmente visible u oculta. Si la ventana del sistema especificada está cerrada, Visual FoxPro genera un mensaje de error.
  49.  
  50. WFONT( ) devuelve la fuente, el tamaño de fuente o el estilo de fuente actuales de la ventana de resultado activa si se omite NombreVentana.
  51.  
  52.  
  53.  

Y un ejemplo:

Código: Text
  1.  
  2. Ejemplo de WFONT( ) (Función)
  3.  
  4. En el ejemplo siguiente se crea una ventana definida por el usuario llamada wFontChar. La ventana se activa y se muestran las características de su fuente en la ventana. Las características de la fuente se muestran luego en la ventana principal de Visual FoxPro.
  5.  
  6. CLEAR
  7. DEFINE WINDOW wFontChar&#59;
  8.    FROM 1,1 TO 3,35&#59;
  9.    FONT 'MS SANS SERIF',8&#59;
  10.    STYLE 'BI'  && Define la ventana con fuente y estilo.
  11. ACTIVATE WINDOW wFontChar
  12. ? WFONT(1), WFONT(2), WFONT(3)  && Ventana wFontChar.
  13. ACTIVATE SCREEN
  14. ?
  15. ?
  16. ?
  17. ? ' Características de fuente para la ventana wFontChar'
  18. ?
  19. ?
  20. ? WFONT(1,''), WFONT(2,''), WFONT(3,'')  && Ventana principal de Visual FoxPro.
  21. ?
  22. ? 'Características de fuente para la ventana principal de Visual FoxPro'
  23. WAIT WINDOW
  24. RELEASE WINDOW wFontChar
  25. CLEAR
  26.  
  27.  
  28.  

Espero te sea útil :suerte:
Saludos desde Guatemala, C. A.
Electrobotics

Widark

  • Miembro MUY activo
  • ***
  • Mensajes: 246
    • Ver Perfil
Re: Calcular Ancho De Textos
« Respuesta #2 en: Sábado 24 de Septiembre de 2005, 17:43 »
0
:gracias: DrakerDG!

Con lo que posteste hize lo siguiente:
Código: Text
  1. loTObjeto = PADC("", FSIZE(ALLTRIM(loCamposFijos(I,1))) + 3, "O") &&Relleno una variabla con el tamaño del campo
  2. ThisForm.&loObjeto..Width = TXTWIDTH(loTObjeto,"Tahoma",8) * FONTMETRIC(6,"Tahoma",8) &&Calculo el ancho del
  3.  
Aunque no parece nada del otro mundo, pero padeci por esto, muchas gracias.
[:], Yo si se lo que es trabajar duro, por que lo he visto.
http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
NoSolocodigo --> Blog de Articulos

DrakerDG

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
    • http://drakerdg.xbot.es/wordpress/
Re: Calcular Ancho De Textos
« Respuesta #3 en: Domingo 25 de Septiembre de 2005, 01:32 »
0
:D Es un placer :hola:
Saludos desde Guatemala, C. A.
Electrobotics