Programación General > Visual FoxPro
Calcular Ancho De Textos
(1/1)
Widark:
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.
DrakerDG:
:comp: Copie esto del help en español:
--- Código: Text --- TXTWIDTH( ) (Función) Devuelve la longitud de una expresión de caracteres con respecto al ancho promedio de carácter de una fuente. Sintaxis TXTWIDTH(cExpresión [, cNombreFuente, nTamañoFuente [, cEstiloFuente]]) Tipos devueltos Numeric Argumentos cExpresión 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. 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. cNombreFuente Especifica el nombre de la fuente. Incluya cNombreFuente para devolver la longitud de una expresión de caracteres con una fuente específica. nTamañoFuente 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. cEstiloFuente 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: Carácter Estilo de fuente B Negrita I Cursiva N Normal O Contorno Q Opaco S Sombra - Tachado T Transparente U Subrayado 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. El comando siguiente muestra un mensaje con la fuente Courier normal de 24 puntos, centrado sobre la ventana principal de Visual FoxPro. @ 25,(WCOLS( )-TXTWIDTH(¡Hola!','Courier ',24)*; FONTMETRIC(6,'Courier ',24)/FONTMETRIC(6))/2 ; SAY '¡Hola!' FONT 'Courier ',24 Comentarios 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. 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.
--- Código: Text --- FONTMETRIC( ) (Función) Devuelve los atributos de fuente de las fuentes instaladas actualmente en el sistema operativo. Sintaxis FONTMETRIC(nAtributo [, cNombreFuente, nTamañoFuente [, cEstiloFuente]]) Tipos devueltos Numeric Argumentos nAtributo 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. La tabla siguiente muestra los valores de nAtributo y los atributos de fuente correspondientes devueltos. nAtributo Atributo 1 Altura del carácter en píxeles 2 Elevación del carácter (unidades sobre la línea base) en píxeles 3 Caída del carácter (unidades bajo la línea base) en píxeles 4 Interlineado (separación entre líneas) en píxeles 5 Interlineado extra en píxeles 6 Ancho promedio del carácter en píxeles 7 Ancho máximo del carácter en píxeles 8 Peso de la fuente 9 Cursiva (0 = no, distinto de cero = sí) 10 Subrayado (0 = no, distinto de cero = sí) 11 Tachado (0 = no, distinto de cero = sí) 12 Primer carácter definido en la fuente 13 Último carácter definido en la fuente 14 Carácter predeterminado (sustituido por los caracteres que no estén en la fuente) 15 Carácter para dividir palabras 16 Densidad y familia 17 Juego de caracteres 18 Saliente (ancho extra agregado) 19 Aspecto horizontal para dispositivo de fuente 20 Aspecto vertical para dispositivo de fuente 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. cNombreFuente Especifique el nombre de una fuente instalada. nTamañoFuente Especifique el tamaño del punto de la fuente especificada con cNombreFuente. cEstiloFuente 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. 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. Carácter Estilo de fuente B Negrita I Cursiva N Normal O Esquema Q Hueco S Sombra - Tachado T Transparente U Subrayado Comentarios 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.
Incluí esta tambien:
--- Código: Text --- WFONT( ) (Función) Devuelve el nombre, el tamaño o el estilo de la fuente actual de una ventana en Visual FoxPro para Windows. Sintaxis WFONT(nAtributoFuente [, NombreVentana]) Tipos devueltos Character y Numeric Argumentos nAtributoFuente Especifica el atributo de fuente que desea devolver. Si nAtributoFuente es 1, WFONT( ) devolverá el nombre de la fuente actual para la ventana activa o la especificada. Si nAtributoFuente es 2, WFONT( ) devolverá el tamaño de la fuente. Si nAtributoFuente es 3, WFONT( ) devolverá un código que identifica el estilo de fuente. 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. En la siguiente tabla se muestran los códigos de cada estilo de fuente: Carácter Estilo de fuente B Negrita I Cursiva N Normal O Contorno Q Opaco S Sombra - Tachado T Transparente U Subrayado NombreVentana 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. 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. 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. 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.
Y un ejemplo:
--- Código: Text --- Ejemplo de WFONT( ) (Función) 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. CLEARDEFINE WINDOW wFontChar; FROM 1,1 TO 3,35; FONT 'MS SANS SERIF',8; STYLE 'BI' && Define la ventana con fuente y estilo.ACTIVATE WINDOW wFontChar ? WFONT(1), WFONT(2), WFONT(3) && Ventana wFontChar.ACTIVATE SCREEN???? ' Características de fuente para la ventana wFontChar'??? WFONT(1,''), WFONT(2,''), WFONT(3,'') && Ventana principal de Visual FoxPro.? ? 'Características de fuente para la ventana principal de Visual FoxPro'WAIT WINDOWRELEASE WINDOW wFontCharCLEAR
Espero te sea útil :suerte:
Widark:
:gracias: DrakerDG!
Con lo que posteste hize lo siguiente:
--- Código: Text ---loTObjeto = PADC("", FSIZE(ALLTRIM(loCamposFijos(I,1))) + 3, "O") &&Relleno una variabla con el tamaño del campoThisForm.&loObjeto..Width = TXTWIDTH(loTObjeto,"Tahoma",8) * FONTMETRIC(6,"Tahoma",8) &&Calculo el ancho del Aunque no parece nada del otro mundo, pero padeci por esto, muchas gracias.
DrakerDG:
:D Es un placer :hola:
Navegación
Ir a la versión completa