LoadFont

Archive.
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

LoadFont

Message par SPH »

Code : Tout sélectionner

If loadfont(1,"Andalus",50)
else
end
endif
Et bien, sous XP, alors que le code ne trouve pas cette fonte (présente sous mon vista), le END ne s'effectue pas (et je choppe alors une fonte classique qui doit etre de l'arial) !
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: LoadFont

Message par Ar-S »

Faut peut-être mettre

Code : Tout sélectionner

If LoadFont(1,"Andalus",50)=1
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: LoadFont

Message par SPH »

Ar-S a écrit :Faut peut-être mettre

Code : Tout sélectionner

If LoadFont(1,"Andalus",50)=1
Lol non
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: LoadFont

Message par gnozal »

SPH a écrit :

Code : Tout sélectionner

If loadfont(1,"Andalus",50)
else
end
endif
Et bien, sous XP, alors que le code ne trouve pas cette fonte (présente sous mon vista), le END ne s'effectue pas (et je choppe alors une fonte classique qui doit etre de l'arial) !
Ce n'est pas un bug.
Sous Windows, LoadFont() n'échoue jamais !
Windows essaie toujours de trouver une fonte, la plus proche possible de celle demandée.
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: LoadFont

Message par SPH »

Vivement la lectures de fontes locales alors (si fred a ce projet)
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: LoadFont

Message par gnozal »

SPH a écrit :Vivement la lectures de fontes locales alors
Deux possibilités (Windows)

Code : Tout sélectionner

;
; Load Font From DataSection
;
Import "User32.lib" 
  ;Windows NT/2000/XP/Vista: Included in Windows 2000 And later. 
  ;Windows 95/98/Me: Unsupported. 
  AddFontMemResourceEx(pFont,Size,Par,Count) 
  RemoveFontMemResourceEx(fHandle) 
EndImport 

Global fHandle.l,Fonts.l 

If OpenWindow(0, #PB_Ignore,#PB_Ignore,640,480, "Mein Font", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) 
  If CreateGadgetList(WindowID(0)) 
    fHandle = AddFontMemResourceEx(?MyFont,?EndOfMyFont-?MyFont,0,@Fonts) 
    LoadFont(1,"Digiface",14) 
    ButtonGadget(0, 10,10,80,24,"12345") 
    SetGadgetFont(0,FontID(1)) 
  EndIf 
  Repeat 
    EventID = WaitWindowEvent() 
    Select EventID 
    Case #PB_Event_Gadget 
      Select EventGadget() 
      Case 0: 
        RemoveFontMemResourceEx(fHandle) 
        SendMessage_(WindowID(0),#WM_CLOSE,0,0) 
      EndSelect 
    EndSelect 
    If EventID = #PB_Event_CloseWindow 
      Quit = 1 
    EndIf 
  Until Quit = 1 
EndIf 
End 

DataSection 
  MyFont: 
  IncludeBinary "Digiface.ttf" 
  EndOfMyFont: 
EndDataSection

Code : Tout sélectionner

;
; AddFontResource
;
EnableExplicit 
  
Define Result.l 
Define i.l 
  
Result = AddFontResource_("DIMITRI_.TTF") 
SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0) 
  
If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))  
  EditorGadget(0, 8, 8, 306, 133)  
  For i = 0 To 5  
    AddGadgetItem(0,i,"Line "+Str(i))  
  Next 
  
  SetGadgetFont(0,LoadFont(0,"DIMITRI",10)) 
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow  
EndIf  
  
RemoveFontResource_("DIMITRI_.TTF") 
SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0)
Fred
Site Admin
Messages : 2651
Inscription : mer. 21/janv./2004 11:03

Re: LoadFont

Message par Fred »

C'est pourtant documenté: http://www.purebasic.com/french/documen ... dfont.html
Sous Microsoft Windows, le gestionnaire de police de caractères essaiera toujours de trouver une police équivalente à celle demandée, si cette dernière n'est pas disponible. Par exemple, si vous essayez de charger la police "Tim Now Ronin" et qu'elle n'existe pas, une autre police sera chargée automatiquement, en fonction de sa taille, du style etc. Il est donc peu probable que cette commande échoue.
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: LoadFont

Message par SPH »

Fred a écrit :C'est pourtant documenté: http://www.purebasic.com/french/documen ... dfont.html
Sous Microsoft Windows, le gestionnaire de police de caractères essaiera toujours de trouver une police équivalente à celle demandée, si cette dernière n'est pas disponible. Par exemple, si vous essayez de charger la police "Tim Now Ronin" et qu'elle n'existe pas, une autre police sera chargée automatiquement, en fonction de sa taille, du style etc. Il est donc peu probable que cette commande échoue.
Et bien ca ne marche pas (mais je retesterais)
PS fred: avant de poster, j'avais testé toutes les possibilités mais ca n'a pas marché.
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: LoadFont

Message par gnozal »

SPH a écrit :
Fred a écrit :C'est pourtant documenté: http://www.purebasic.com/french/documen ... dfont.html
Sous Microsoft Windows, le gestionnaire de police de caractères essaiera toujours de trouver une police équivalente à celle demandée, si cette dernière n'est pas disponible. Par exemple, si vous essayez de charger la police "Tim Now Ronin" et qu'elle n'existe pas, une autre police sera chargée automatiquement, en fonction de sa taille, du style etc. Il est donc peu probable que cette commande échoue.
Et bien ca ne marche pas (mais je retesterais)
???
C'est pourtant la description de ton "bug"
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: LoadFont

Message par SPH »

j'ai testé plusieurs fois avec plusieurs fontes differentes mais je retesterais sur mes 2 ordis avec differentes fontes de differents formats
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: LoadFont

Message par kernadec »

bonsoir SPH
je connais pas cette fonte, je n'ai pas vista, mais sous XP,
c'est peut être un truc simple du genre le nom de la police....

il faut aller dans le répertoire des fontes c:\Windows\fonts
et respecter scrupuleusement le nom de la fonte inscrit dans l'onglet "Nom de la police"
exemple : pour la fonte WINGDING.TTF si on écrit LoadFont(0,"WINGDING",24)
elle ne fonctionne pas, Mais avec le nom de la police : LoadFont(0,"WingDings",24) c'est bon.
sinon, c'est peut être un problème de copyright.

Cordialement
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: LoadFont

Message par Backup »

si tu utilise Japbe , l'outil "Table ASCII" donne aussi le vrais nom des fontes intallées ;)
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: LoadFont

Message par SPH »

Non, ca ne marche vraiment pas. J'ai tout essayé et je me retrouve invariablement avec du arial.
J'ai essayé pleins de fontes avec toutes ces possibilités :
LoadFont(1,"Andalus",50)
LoadFont(1,"d:\jeu\Andalus",50)
LoadFont(1,"d:\jeu\andiso.fft,50)

pareil avec plusieurs autres fontes... (que je prenne le vrai nom ou le nom de fichier, ca ne marche que si la fonte est dans windows/fonts ET que windows la reconnait !
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: LoadFont

Message par Backup »

SPH a écrit : (que je prenne le vrai nom ou le nom de fichier, ca ne marche que si la fonte est dans windows/fonts ET que windows la reconnait !
ben oui il faut que ta fonte soit présente et installé sur le systeme d'exploitation... :)
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: LoadFont

Message par kernadec »

bonjour SHP
je suis sous xp, j'ai téléchargé la fonte "andalus" sur le site suivant:
http://cooltext.com/Download-Font-Andalus
testée avec le code suivant elle fonctionne sur XP.

Cordialement

Code : Tout sélectionner

;http://cooltext.com/Download-Font-Andalus

LoadFont(0,"Andalus",24)
LoadFont(1,"Arial",24)
If OpenWindow(0, 100, 200, 300, 200, "2D Drawing Test")
  If CreateImage(0, 300, 200)
    If StartDrawing(ImageOutput(0))
    DrawingFont(FontID(0))
      DrawText(10,50,"FONTE ANDALUS")
      DrawingFont(FontID(1))
      DrawText(10,90,"FONTE ARIAL")
      StopDrawing()
    EndIf
  EndIf
  ImageGadget(0, 0, 0, 0, 0, ImageID(0))

  Repeat
    EventID = WaitWindowEvent() 
  Until EventID = #PB_Event_CloseWindow
EndIf
Répondre