Installation de police [Résolu]

Signaler
Messages postés
20
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
26 juin 2008
-
Messages postés
20
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
26 juin 2008
-
salut

j'ai coder un programme, fprime disponible sur http:\mathatoto.chez-alice.fr.
Ce prog nécessite l'installation d'une police de caractère fprime.ttf qui devrait se copier automatiquement dans windows\fonts à l'installation de fprime.
J'ai des pb pour installer cette police depuis mon logiciel :

Parfois ça marche sans pb et la police est dispo immédiatement.
Parfois il faut redémarrer le système pour que la police soit prise en compte.
Parfois la police ne se copie pas du tout dans windows\fonts\

Y-a-t-il une technique infaïble ?

toto le windsurfer

2 réponses

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Bonjour

Je ne sais pas si cela va te convenir, mais au lieu d'installer la police TTF dans le repertoire de Windows, tu peux juste déclarer au système que tu as besoin de la police située dans tel repertoire :

procedure TForm1.FormCreate(Sender: TObject) ;
begin
  // On indique où se situe la police TTF à déclarer
  AddFontResource('X:\MonReperoire\MonFichier.TTF') ;

  // On informe le système qu'il doit mettre à jour ses polices
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;

procedure TForm1.FormDestroy(Sender: TObject; var Action: TCloseAction);
begin
  // On indique où se situe la police TTF à "oublier"
  RemoveFontResource('X:\MonReperoire\MonFichier.TTF');

  // On informe le système qu'il doit mettre à jour ses polices
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;

Si toutefois, tu souhaites toujours installer la police dans le reperoire fonts, il faut au préalable, vérifier que le fichier n'est pas déjà présent, puis ensuite appliquer de la même façon le code du FormCreate :

  AddFontResource('C:\WIndows\Fonts\FFrime.ttf') ;
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
Messages postés
20
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
26 juin 2008

formidable merci beaucoup

toto le windsurfer