Ir para conteúdo
Fórum Script Brasil
  • 0

Instalar Fonte (Resolvido)


Mauro Jr

Pergunta

Bom... Instalei uma fonte diferente das padrões do Windows no meu computador,

quero que o caption dos labels e demais componentes utilizem esta fonte independente da máquina que a aplicação for rodar, portanto, os componentes devem utilizar esta fonte mesmo se ela não estiver instalada na máquina do cliente.

Como faço isso? sad.gif

Abraços!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Prezado Mauro

Acho que você poderia proceder assim:

1) Forneça a fonte junto com o seu executável, ou seja coloque dentro da pasta onde estará o seu executãvel na instatalção.

2) Use a função abaixo para verificar se a fonte já está instalada

no seu computador

Function FonteExiste(Fonte:STring):Boolean;

begin

with Screen.Fonts do

Result := IndexOf(Trim(Fonte)) > 0;

end;

3) Use a função copy para copiar oarquivo de sua fonte do diretório onde ela está instalada para o C:\Windows\Fonts, caso a fonte não esteja instalada.

Exemplo:

Se sua fonte se chama Mauro.ttf

Procedure TForm1.Button1Click(Sender:Tobject);

begin

If FonteExiste('Mauro.ttf') then

//Nãofaz nada

Else

Copy("c:\(local onde está sua fonte"),"c:\Windows\Fonts\Mauro.ttf");

end;

observações:

1) o evento está escrito no click do botão,mas seria apenas para você testar,

porém normalmente se colocaria no oncreat, você não acha?

2) Estou escrevendo isto do trabalho sem o delphi,sem testar e faz muito tempo que usei isto. Pode ser que exista algum detalhe aí em cima que esteja faltando

em relação a funçãocopy, talvez.

3) Com certeza no lugar de C:\(locao onde está sua fonte), vocêdeverá usar algo que identifique onde sua aplicação foi instalada já que na hora de instalar pode ser até que você permita que ele insatale em qualquer diretório.

Traduzindo: talvez você deva usar algodo tipo application.exename.

Se nãoestiver 100% a galera maravilhosa deste forum certamente vai consertar e ajudar.Pelo meno serve como vzero(ponto de partida)

Espero que quebre um galho.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Nobre amigo Paulo smile.gif, valeu pela força e empenho! biggrin.gif

Dei uma pesquisada, e descobri uma maneira de se instalar a fonte na máquina cliente:

procedure TForm1.FormCreate(Sender: TObject);

var

vExisteFonte : Boolean;

begin

//* Verifica se a fonte existe

with Screen.Fonts do

vExisteFonte := IndexOf(Trim('NomeFonte')) > -1;

if not vExisteFonte then

//* Instala a fonte no Windows

AddFontResource(PChar(GetCurrentDir + '\NomeFonte.TTF'));

end;

//* Esta rotina está escrita no evento OnCreate do Form

Abraços,

Mauro

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...