PureBasic

Forums PureBasic
Nous sommes le Dim 22/Sep/2019 19:46

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: 4.31 certaine API pose problème
MessagePosté: Jeu 18/Juin/2009 20:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 25/Aoû/2004 6:31
Messages: 2594
Localisation: Eragny
currieux je viens de passer a la version 4.31 et ces fonctions que j'utilisais en 4.30 ne fonctionne plus

Code:
Procedure AddFontRessource(FontFileName.s)
  AddFontResource_(FontFileName.s)
  SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE, #NUL, #NUL)
EndProcedure

Procedure RemoveFontRessource(FontFileName.s)
  RemoveFontResource_(FontFileName.s)
EndProcedure

ces fonctions permettent d'installer et de désinstaller une font


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Jeu 18/Juin/2009 20:47 
Hors ligne

Inscription: Ven 31/Oct/2008 16:51
Messages: 110
J'ai peut-être une solution (un peu bancale, certes, mais efficace) :

tu fais une DLL avec PB 4.30, et tu appelles tes fonctions compilées dans 4.31 ! :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Ven 19/Juin/2009 11:00 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Jan/2004 0:26
Messages: 2433
Localisation: Nantes
Je ne sais pas pourquoi çà plante chez toi parcequ'avec ma version 4.31 (x86) les fonctions que tu cites fonctionnent bien (unicode ou pas d'ailleurs) :

Debug AddFontResource_("ProggyCleanSZBP.ttf")
retourne 1 si la police existe bien sûr.


Testé sur Vista SP1.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Lun 10/Aoû/2009 11:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 25/Mar/2007 13:44
Messages: 510
Localisation: Toulouse, France
J'ai eu le meme probleme :( . Pour le resoudre j'ai utilisé AddFontResourceEx:
Code:
Procedure LoadFontFromFile(Font, FontFile.s, FontName.s, FontSize, FontStyle=0)
  library = OpenLibrary(#PB_Any, "gdi32.dll")
  If library
    FR_PRIVATE = Val("$10")
    Result = CallFunction(library, "AddFontResourceExA", FontFile, FR_PRIVATE, 0)
    CloseLibrary(library)
    SendMessage_(#HWND_BROADCAST, #WM_FONTCHANGE, 0, 0)
    If Result
      Result = LoadFont(Font, FontName, FontSize, FontStyle)
      If Font <> #PB_Any
        ProcedureReturn Font
      Else
        ProcedureReturn Result
      EndIf
    Else
      ProcedureReturn 0
    EndIf
  Else
    ProcedureReturn 0
  EndIf
EndProcedure


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Lun 10/Aoû/2009 17:01 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 25/Aoû/2004 6:31
Messages: 2594
Localisation: Eragny
merci beaucoup je vais essayer !! :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Lun 10/Aoû/2009 19:27 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Jan/2004 0:26
Messages: 2433
Localisation: Nantes
Salut Thyphoon,

Sinon tu peux toujours importer les fonctions dont tu as besoin.

Code:
Import "Gdi32.lib"
   CompilerIf #PB_Compiler_Unicode
      AddFontResource_(FontFileName.p-unicode) As "_AddFontResourceW@4"
      RemoveFontResource_(FontFilename.p-unicode) As "_RemoveFontResourceW@4"
   CompilerElse
      AddFontResource_(FontFileName.p-ascii) As "_AddFontResourceA@4"
      RemoveFontResource_(FontFilename.p-ascii) As "_RemoveFontResourceA@4"
   CompilerEndIf
EndImport

Procedure AddFontRessource(FontFileName.s)
   
   Protected NbFontsAdded = AddFontResource_(FontFileName)
   
   If NbFontsAdded > 0
      SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE, #NUL, #NUL)
   EndIf
   
   ProcedureReturn NbFontsAdded
   
EndProcedure

Procedure RemoveFontRessource(FontFileName.s)
   
   ProcedureReturn RemoveFontResource_(FontFileName)
   
EndProcedure

#FONTNAME = "ProggyClean.fon"

Debug AddFontRessource(#FONTNAME)
Debug RemoveFontRessource(#FONTNAME)


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye