Fichier TTF en datasection

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Fichier TTF en datasection

Message par Ekim »

Bonsoirs à tous

Je fais face à un nouveau problème, je m'explique, est-il possible de charger en Datasection un "font" quelconque afin de charger directement dans l'un de gadget de la même façon que l'on charge une image ou un son en ("CatchImage/CatchSound");
ou si vous avez une méthode façon bricolage en tête, je suis preneur)))

merci d'avance les kings ;)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Fichier TTF en datasection

Message par djes »

Il n'y a pas de commande catchfont(), mais rien ne t'empêche de sauvegarder le fichier inclus en binaire dans un dossier de ton choix (temp...) et de le charger normalement avec un loadfont()
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Fichier TTF en datasection

Message par boby »

Bonjour, la doc comprend un exemple de ce que tu veux faire, par fois il est bon de prendre 30 secondes pour la lire un peut.
Christophe
Messages : 43
Inscription : lun. 22/oct./2018 19:34
Localisation : Haisnes (62)

Re: Fichier TTF en datasection

Message par Christophe »

Bonjour,

Il y a cette astuce avec les API

Code : Tout sélectionner

OpenLibrary(0,"gdi32.dll")
CallFunction(0,"AddFontMemResourceEx",?Font,?End_Font-?Font,0,@"1")
CloseLibrary(0)


LoadFont(0,"bombing",28, #PB_Font_HighQuality) ; Mettre ici le nom de la font "clique droit sur la font et apercu" non pas le nom du fichier

OpenWindow(0,0,0,200,80,"Font", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
TextGadget(0,50,20,80,40,"Essai") : SetGadgetFont(0,FontID(0))

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow

DataSection
  font:
  IncludeBinary "c:\temp\bombing.ttf"  ; Mettre ici ton fichier ttf ou otf
  end_font:
EndDataSection
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Fichier TTF en datasection

Message par Ekim »

boby a écrit :Bonjour, la doc comprend un exemple de ce que tu veux faire, par fois il est bon de prendre 30 secondes pour la lire un peut.
C'est justement cet exemple précisément qui m'a donné l'idée d'un tel projet, celui d’éviter de charger un fichier externe et encore moins de créer un fichier en extérieur pour ensuite le recharger :lol:

mais je ne devrais pas être aussi dur avec @body :lol: car il est vrai que j'aurai peut être dû pour le coup être moins subtile et précisé (sans) rappelé la réelle fonction d'une "DataSection" en excluant la possibilité d'inclure une URI histoire d'être 100% en "interne" et d'y exploiter toute la capacité d'une tel fonction :lol:


@Christophe, effectivement ton idée est très intéressante car on peut réellement y bricoler quelques chose, mais je salut surtout ta réel motivation à faire avancer le schmilblick car enfin de compte, on ne retient que le concret et non le superficiel
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: Fichier TTF en datasection

Message par boby »

Si ça peut t'aider, il y a ce sujet qui pourait peut être t'interesser sur le forum US
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Fichier TTF en datasection

Message par Ekim »

Impeccable sa fonctionne), @Christophe t'es le meilleur et très utile à la communauté "Basicienne" si je puis dire :lol:
malheureusement le code est trop long pour le partager ici du fait du fichier inclut en Quad en DataSection :oops:

du coup, est il possible d'inclure une lib en DataSection encore une fois pour ensuite la faire fonctionner sans l'écrire nullpart sur le disque??

Je sais, vous allez me prendre pour un maniaque de "Data" sauf que si j’insiste c'est qu'il y a un réel avantage et un atout qui serait dommage de ne pas exploiter pleinement :lol:
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: Fichier TTF en datasection

Message par Ekim »

@boby

oui c'est bon j'ai pu bricoler l'idée du grand @Christophe, merci quand même pour ta dévotion :wink:
Répondre