dans Voici le code que j'utilise et ça marche dans in firemonkey je viens de changer SO en FireMonkey, comment puis-je charger une police de la ressource et l'enregistrer temporaire en mémoire et l'utiliser directement à partir de là? P> J'ai vu ces pages: Installer la police dans FireMonkey a>, Comment utiliser des polices externes? P> < p> Selon MME em> la réponse, il semble qu'il n'y ait pas de solution pour cela problème dans FMX. Mais peut-être que nous pourrions charger la police si nous l'installons avant d'exécuter l'application. J'ai essayé presque tout, mais je ne peux toujours pas charger la police. P> p> vcl code>, je pourrais charger une police de la ressource et sans l'enregistrer, je pourrais l'utiliser à partir de la mémoire.
VCL code>: p>
bouton1.font.name code> à
bouton1.font.family code> mais malheureusement La police n'a pas changé. Je pense donc que ce code n'est pas compatible avec FireMonkey. P>
Mise à jour: h1>
3 Réponses :
Il y a aussi STYLOPSETTS.SSMSFamily: Propriété booléenne dans New Delphi et doit être définie sur FALSE pour avoir une famille de polices personnalisée travaillant. La même chose avec la taille, le style et le fontcolor. P>
Je pense que ce n'est pas la raison parce que lorsque je change myFontName code> dans
bouton1.font.name: = 'MyFontName'; code> à une police existante (comme Tahoma ou SEGOE UI), le change de police.
Essayez avec la taille de la police de bouton ;-)
Mettez Tbutton sur la tformologie par défaut, définissez la taille de la police sur 55, puis accédez à la case à cocher StyledSettings et à la case SSSIZE à basculer - puis jetez un coup d'œil à ce qui arrive au texte sur Tbutton lorsque vous basculez!
Je vois ce que tu veux dire. Mais mon problème ne concerne pas stynessets code>. Je peux changer la police comme je l'ai dit dans le premier commentaire.
En choisissant la nouvelle police de la famille dans le temps de conception, cela fonctionne. Si vous voulez faire la même chose dans le temps d'exécution, je pense que vous devriez utiliser des styles. Concevez un nouveau style de bouton à l'aide de TstyleLeBook et changez-le au moment de l'exécution :)
Ceci peut ou non aider. P>
Disclaimer em> p>
Cela nécessite des recherches supplémentaires que je ne suis pas encore entourée, mais je crois que c'est un bon point de départ. P>
lien pour la page MSDN: - collections de police personnalisées p>
Vous devez utiliser l'unité WinapI.D2D1 (vous aurez peut-être besoin de FMX.TextLayout et de FMX.CANVAS.D2D également) pour accéder à l'API DirectWrite. Vous pouvez utiliser cela pour vous rendre dans les usines DirectWrite qui vous permettront de définir et de charger une police à partir de disque. P>
Une fois que vous avez chargé la police AFAIK, il devrait ensuite être disponible sur l'ensemble de l'application et, espérons-le, tous les contrôles FireMonkey. Il est tout à fait possible que FireMonkey n'éroduit que des polices à la charge de l'application, de sorte que cela peut tous être pour rien. p>
Comme je l'ai dit, cela nécessite des recherches que je n'ai pas encore devenues, alors ne fonctionnez que si vous êtes également personnalisé de peindre votre contrôle (que je serai) et que je ne serai peut-être pas approprié. P>
Je pense avoir une réponse, qui n'était possible que grâce à beaucoup d'aide de Roy Nelson du personnel de soutien d'Embarcadero qui m'a pointé dans la bonne direction.
J'ai vérifié que cela fonctionne avec Berlin 10.1 (sans le Patch d'anniversaire appliqué) Sous Windows 10, 64 bits, mais je ne garantis pas que cela fonctionnera sur toutes les versions de compilateur / Versions Windows et toute perspicacité dont d'autres personnes ont à offrir seraient très intéressantes d'entendre. P>
Premier Désactivé, je pense que le problème d'insurmontable (actuellement) commence par la tentative d'utilisation Remplacement de AddFontMemResourceEx strong> avec UnregisterCanvasClasses; //this tells it to forget everything it knows
RegisterCanvasClasses; //this tells it to learn it again based on the current state of this system, which now includes our dynamically loaded font.
Oh, au fait, je pense que c'est une façon extrêmement inélégante de faire cela et je pousse que Embarcadero rend cette automatique pour toute police que vous installez dans les images / ressources d'un projet. Pour Mac et Windows. Et vous pouvez uppouver le rapport de bogue d'origine si vous êtes d'accord Quality.EmbarCadero.com/Browse/rSp-17030 .
Hmmm .. j'ai testé cela sur une machine Windows 7 64 bits et cela n'a pas fonctionné. Quelqu'un a des pensées? (Autre que "Oh, merde")
Je suppose que votre fonction réussit dans les cas VCL et FMX?
Bien sûr, il compile, car est syntaxiquement correct. La question est de retourner le statut de réussite dans les deux cas ou non? Veuillez vérifier les erreurs chaque fois que possible.
@Freeconsulting dans les deux
VCL code> et
FMX code>, la fonction renvoie
true code>. Je ne sais pas mais je pense que quelque chose ne va pas avec
FontSteport: entier; code> j'ai changé
integer code> à
DWORD code> mais rien ne s'est passé ( msdn.microsoft.com/en-us/library / Windows / Bureau / ... )
PCFONTS CODE> Le paramètre n'est pas important, il reçoit simplement nombre de polices ajoutées à partir de la ressource (doit être
> = 1 code> à son retour).
J'ai manqué d'idées, désolé. Mais j'aimerais souligner pour que les futurs lecteurs de la ressource de police de chargement fonctionnent correctement (voir révisions ) et le problème pourrait exister Dans une manipulation de la chaîne de type FMX TypeFace (peut-être pas énumérable b> police provoque une certaine influence).
Pourrait être associé: Stackoverflow.com/a/18413827/205376
Est-ce que quelqu'un a trouvé une solution ou une solution de contournement? - Je peux utiliser des polices personnalisées sur iOS et OS X, mais pas sur Windows à cause de ce problème.
@Hans je pense qu'il n'y a toujours pas de solution de loin en FM :(
@Sky Avez-vous trouvé une solution à cela pour Windows. J'ai pu trouver des solutions pour OSX, iOS et Android mais pas Windows ...
@lowrider n ° je n'ai pas :(