Je développe un petit programme de base de donnée sur MacOS avec purebasic.
J'ai commencé avec la version 5.42 (32bit) et je viens de passer pour 5.70 (64bit).
et là problème, impossible d'aller chercher une image dans une base de données et de l'afficher dans un contrôle. Il semble que la fonction catchimage soit inopérante.
voici la partie du code concerné
Code : Tout sélectionner
; je modifie une image
If GetGadgetItemText(BFDMEcontenuliste,GetGadgetState(BFDMEcontenuliste),1)="Image"
HideGadget(DFDmodifenregistrementCONT,#True)
HideGadget(BFDsaisieimgCont,#False)
plFileImageSize=DatabaseColumnSize(GVappliencours,GetGadgetState(BFDMEcontenuliste)+1)
If plFileImageSize > 0
glImageMemory = AllocateMemory(plFileImageSize)
GetDatabaseBlob(GVappliencours,GetGadgetState(BFDMEcontenuliste)+1, glImageMemory, plFileImageSize)
plFileImage = CatchImage(#PB_Any, glImageMemory, plFileImageSize)
If plFileImage
If ImageWidth(plFileImage)>ImageHeight(plFileImage) ;paysage
factor.f=ImageWidth(plFileImage)/ImageHeight(plFileImage)
imgW=350
imgH=imgW/factor
EndIf
If ImageWidth(plFileImage)<ImageHeight(plFileImage) ;portrait
factor.f=ImageHeight(plFileImage)/ImageWidth(plFileImage)
imgH=350
imgW=imgH/factor
EndIf
ResizeImage(plFileImage,imgW,imgH)
SetGadgetState(BFDSIMGdonneImg, ImageID(plFileImage))
FreeImage(plFileImage)
ResizeGadget (BFDSIMGdonneImg,(370-imgw)/2,(370-imgh)/2,imgw,imgh)
EndIf
EndIf