Seite 1 von 1

falscher Objektstatus [ERLEDIGT]

Verfasst: Fr, 15. Jun 2018 9:24
von Manfred
das klappte unter der 1.90er noch

Code: Alles auswählen

STATIC FUNCTION BMP2BMP(oBMP,aXbpSize)

LOCAL oHuge, oTiny, oPS, oRet
   IF aXbpSize[2] > 0
      oHuge := oBMP
      //Create a small bitmap to fit in our XbpStatic
      oTiny := XbpBitmap():New():Create()
      oTiny:Make(aXbpSize[1],aXbpSize[2]) <------------ Fehler bei 2.0

      oPS := XbpPresSpace():new()
      oTiny:presSpace(oPS)
      //Copie and resize the huge bitmap to the small bitmap
      oHuge:Draw(oPS,{0,0,aXbpSize[1],aXbpSize[2]},,,GRA_BLT_BBO_IGNORE)
      oRet := oTiny
   ELSE
      oRet := oBMP
   ENDIF

RETURN oRet
in der 2.0er erscheint am Pfeil eine Fehlermeldung falscher Objektstatus
fos.PNG
fos.PNG (19.9 KiB) 5091 mal betrachtet

Re: falscher Objektstatus

Verfasst: Fr, 15. Jun 2018 12:20
von Wolfgang Ciriack
Da hast du wohl eine falsche BMP2BMP function.
Bei mir sieht die so aus:

Code: Alles auswählen

FUNCTION BMP2BMP( oBMP, aXbpSize,ltransparency)
LOCAL oHuge, oTiny, oPS, oRet, nBits, nPlanes

DEFAULT ltransparency TO .T.

IF aXbpSize[ 2 ] > 0
   oHuge := oBMP
   nBits := oBMP:bits
   nPlanes := oBMP:planes

   // erst Presspace anfordern
   oPS   := XbpPresSpace():New():Create()
   // jetzt das Bitmap Objet
   oTiny := XbpBitmap():New():Create()
   IF ltransparency  // transparentClr beachten
      oTiny:transparentClr := oBMP:transparentClr
   ENDIF

   // dann das MAKE
   oTiny:Make(aXbpSize[1], aXbpSize[2], nPlanes, nBits)
   // und so klappt das auch mit Xbase++ v2.0.437
   oTiny:PresSpace(oPS)

   //Copie and resize the huge bitmap to the small bitmap
   oHuge:Draw( oPS, { 0, 0, aXbpSize[ 1 ], aXbpSize[ 2 ] },,, GRA_BLT_BBO_IGNORE  )
   oRet := oTiny
ELSE
   oRet := oBMP
ENDIF
RETURN oRet

Re: falscher Objektstatus [ERLEDIGT]

Verfasst: Fr, 15. Jun 2018 13:00
von Manfred
Danke Wolfgang,
das war der Fehler. Jetzt klappt es.....