Árvore de páginas

Função: GetFontPixWidths

Retorna uma matriz com a largura em pixels de uma determinada fonte.

GetFontPixWidths ( < cFontName>, < nTamanho>, [ lBold], [ lItalic], [ lUnderline] ) --> aRet

 

NomeTipoDescriçãoObrigatórioReferência
cFontNameCaracterIndica o nome da fonte instalada no Smart Client.X 
nTamanhoNuméricoIndica o tamanho da fonte.X 
lBoldLógicoIndica se a fonte está em negrito.  
lItalicLógicoIndica se a fonte está em itálico.  
lUnderlineLógicoIndica se a fonte está sublinhada.  

 

aRet
    (vetor)
  • Retorna a lagura em pixels, dos caracteres ASCII 1-254, da fonte instalada no Smart Client. Se a fonte não existir, o retorno será vazio.
  • Utilize esta função somente nos programas executados através do Smart Client.
  • Os parâmetros de formatação (lBold, lItalic e lUnderline) tem como padrão o valor falso (.F.)
     
Importante
  • Função disponível, na linguagem AdvPL, a partir da build 7.00.060322A. 
  • O uso em excesso (por exemplo: Loops) pode interferir na performance do sistema operacional, devido ao tráfego de informações entre o Application Server e o Smart Client. Para que isso não ocorra, não tente obter a lista com o tamanho de todos os caracteres das fontes instaladas, somente obtenha as fontes necessárias para o seu programa.

    Além disso, armazene a matriz de retorno em uma variável estática, para que não tenha que chamar a função várias vezes no código-fonte.

Exemplo
#DEFINE CRLF Chr(13)+Chr(10)
#DEFINE TAB  Chr(9)

User Function Exemplo()
	Local aFontList := Nil, aPixWidths := Nil
	Local cFont := "Arial", cMensagem := ""
	Local lFont := .F.
	Local nCount := 0  


	aFontList := GetFontList()
	AEval(aFontList, {|aFontList|IIf(aFontList == cFont, lFont  := .T.,)})  

	If !(lFont)
		Return MsgStop("Não foi possível encontrar a fonte utilizada no teste")  
	EndIf

	//+----------------------------------------------------------------------------+
	//|Exemplifica o uso da função GetFontPixWidths                                |
	//+----------------------------------------------------------------------------+
	aPixWidths := GetFontPixWidths(cFont, 12, .F., .F., .F.)
	nTotal := Len(aPixWidths)

	For nCount := ASC("A") To ASC("Z")
		If nCount % 4 == 0
			cMensagem += Chr(nCount) + "=" + cValToChar(aPixWidths[nCount]) + " pix" + CRLF
		Else
			cMensagem += Chr(nCount) + "=" + cValToChar(aPixWidths[nCount]) + " pix" + TAB    
		EndIf
	Next nCount

	//+----------------------------------------------------------------------------+
	//|Apresenta uma mensagem com os resultados obtidos                            |
	//+----------------------------------------------------------------------------+
	MsgInfo(cMensagem, "Exemplo do GetFontPixWidths")
Return

 

Exemplo da função GetFontPixWidths
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

 

  • Sem rótulos