Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Font perso [ Archives / Texte ] (TiDaN326)

jeudi 25 septembre 2003 à 22:52:56 | Font perso

TiDaN326

Bonjour,

J'ai une font nommée Starcraft Normal.ttf
Je l'ai copié dans le répertoire Fonts de windows (bien sur)...
Mais comment je fais pour "l'exporter" avec mon programme ? En ce moment, si j'ouvre mon programme sur un autre ordi, wow ! Je me retrouve avec du texte en Arial, ce qui est assez ordinaire...
Merci !

Désoler si je pose une question qui a peut-être déja été posé, mais la fonction recherche me retourne a une belle erreur 404 alors :)

samedi 27 septembre 2003 à 19:34:22 | Re : Font perso

yvemoreau

salut

Peut-être inclure une ressource dans ton exe...

avec un bloc note tu écris ceci et tu le ferme...

TAFONT TEXT mafont.ttf

TAFONT=le nom interne de l'élément dans le fichier res.
nb:doit-être en majuscule
TEXT= le type de donné
nb:doit-être en majuscule
mafont.ttf = le fichier font que tu souhaite inclure dans le res.
le nom du fichier texte sera le nom de la res.

ensuite tu "ouvre avec" le compilateur de ressource de delphi
brcc32.exe
il devrais se trouvé par défaut dans
C:\Program Files\Borland\Delphi6\Bin

si tu ne l'as jamais utilisé il n'est pas dans ta liste de choix et tu dois parcourir manuellement ...

copie le res obtenu dans le répertoire de ton application
tu auras maintenant une ressource que tu inclueras dans ton programme à la compilation

implementation

{$R *.dfm}
{$R maressource.res}//c'étais le nom du fichier bloc note

//après au démarrage de l'application on vérifie si la
// font existe sinon on la créé.

procedure TForm1.FormCreate(Sender: TObject);
begin
if not(FileExists('C:\WINDOWS\Fonts\president.ttf'))then
begin
with TResourceStream.Create(hInstance,'TAFONT','TEXT') do
try
SaveToFile('C:\WINDOWS\Fonts\president.ttf');
finally
Free;
end;
end;

//autre code ?
end;

à noté que même si l'on change le nom du fichier de la font windows renomme automatiquement par son nom interne et donc ici: Si et Seulement Si president.ttf n'existe pas il sera créé même si l'on tente de créé abc.ttf ...

j'ai choisis une font true type
sinon il faudra trouvé le bon extension
avec l'option de recherche/fichier/par nom
tafont.a .b .c
jusqu'a ce que tu trouve son extension exacte
pour accélérer place lafont sur le bureau et ne
recherche que sur le bureau

bonne chance

yve

samedi 27 septembre 2003 à 21:58:40 | Re : Font perso

TiDaN326

Merci !

Je ne suis pas sur de tout comprendre... je suis un post-débutant... Je vais essayer de faire ce que tu m'as dit !

Merci encore... Salut :)

samedi 27 septembre 2003 à 22:31:21 | Re : Font perso

yvemoreau

pour approfondir sur le sujet...
comment créé un fichier ressource

c'est très bien fait ,disons que c'est là que j'ai appris !!!

yve

samedi 27 septembre 2003 à 22:31:57 | Re : Font perso
jeudi 2 octobre 2003 à 09:43:12 | Re : Font perso

RMD

Réponse acceptée !
@Yvemoreau : Es-tu sûr que la police sera accessible ? Le fait de copier une police dans le dossier Fonts ne semble pas suffir, il faut aussi qu'elle soit installée, non ?

Mais comme ceci, cela semble fonctionner (trouvé sur Trucomania) :
Pour utiliser une police sans avoir à l'installer dans Windows :
Pour la charger (dans OnCreate par exemple) :

procedure TForm1.FormCreate(Sender: TObject);
begin
AddFontResource('c:\FONTS\FUENTE.TTF');
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;

Et avant de sortir de l'application pour la détruire :

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
RemoveFontResource('D:\FONTS\FUENTE.TTF');
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;


RMD

www.Logiciels-RMD.com

jeudi 2 octobre 2003 à 22:51:14 | Re : Font perso

yvemoreau

oui c'est juste , le processus ne met pas à jour les fonts
lors du démarrage de l'application ,aux démarrages suivants la font est disponible .

je n'ai pas véfifier
AddFontResource();
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
mais tant mieux si ça fonctionne ,le problème étant définitivement corrigé !!!

on peut aussi utiliser un installateur qui placera la font directement dans c:\windows\fonts\ , ensuite au démarrage de l'application , il me semble que la font est automatiquement mise à jour ,si ma mémoire est bonne ...

au plaisir ...
yve

jeudi 2 octobre 2003 à 22:55:41 | Re : Font perso

TiDaN326

Mmh je vous remercie mais je suis vraiment débutant et j'apprécierais vraiment si vous pouviez me donner une chtite source pour l'opération de A à Z... :D

samedi 4 octobre 2003 à 18:40:10 | Re : Font perso

yvemoreau

bon ok , c'est pas trop long à faire ...

je ne suis peut-être pas un très bon "prof" alors ...

je travaille sous windows xp alors je sais pas pour les autres où il faudrais installé les fonts , on pourrait ajouté dépendamment sous quel système le programme s'exécute les chemins d'installations correcte pour la font ,mais ça c'est une autre histoire...

L'exemple est ici test Fonts

.....
yve

samedi 4 octobre 2003 à 23:20:12 | Re : Font perso

TiDaN326

Merci je vais essayer ca tout de suite et je t'en redonne des nouvelles !


1 2

Cette discussion est classé dans : programme, font, perso


Répondre à ce message

Sujets en rapport avec ce message

probleme dans mon programme [ par tarik ] monsieur kerad je crois que j'ai un bug dans mon programme ci-dessousprocedure TForm1.Button1Click(Sender: TObject);begintable1.open;try Table1.First Suppression... [ par VB7 ] salut, je voudrai savoir comment supprimer le contenu d'un dossier svp ?Merci d'avance Programme ouvert [ par ShaDoW ] salut je voudrais afficher tout les programmes ouvert dans une Tlist1 a fin de pouvoir fermer celui ci (un Killer quoi :)) kylix +execution de programme compilé sous Linux [ par Mad ] Salut !J'ai essayé Kylix qui est vraiment très bien. Le problème :comment executer son application après l'avoir compiler ? Y a-t'il une commande spéc Programme console et composant database [ par VTCFMAN ] Peut-on utiliser les composants Database dans un programme console avec ou sans module de données ?. Si non existe-t-il des des librairies permettant Erreur: Declaration forward ... [ par Lénaïc ] Avec le code ci-dessous j'ai une erreur "Déclaration forward ou external non satisfaite: 'TFrm_Perso.ComboAddFile'".Je n'arrive pas à trouver l'erreur Pb de visualisation du contenu d'un champ numérique dans une base de donnée Sqlbase [ par spooki ] Le programme est développé à partir d'objet QReport.Dans l'objet, j'ai inséré des champs numériques à partir d'une base sqlbase. Dans base slqBase, le recherche un programme de statistique [ par mounir ] outil de génération et de visualisation d'une série de nombres aléatoire suivant les lois uniformes binomiales poisson exponentielle normal et du chi2 Comment on fait pour ouvrir un fichier .EXE tout en ouvrant le programme et ensuite pour le sauvegarder ? [ par Zangdar ] cf : voir titre.www.zangdar.fr.st Faire executer un programme sans afficher de Tform [ par JCLK ] Je souhaite faire un programme turbo pascal simple, qui tourne sans afficher de fenetres. Pouvez-vous me dire comment faire. Pour l'instant la seule s


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,30 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.