Seite 1 von 1

XbpBitmap():create([<oPS>])/:presSpace([<oPS>]) [erledigt]

Verfasst: Di, 30. Okt 2012 5:55
von AUGE_OHR
hi,

bislang habe ich mit oTiny:presSpace(oPS) gearbeitet.

Code: Alles auswählen

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

   IF aXbpSize[2] > 0
      oHuge := oBMP
      oTiny := XbpBitmap():New():Create()
      oTiny:Make(aXbpSize[1],aXbpSize[2])

      oPS := XbpPresSpace():new()
      // hier PresSpace zuordnen
      oTiny:presSpace(oPS)

      oHuge:Draw(oPS,{0,0,aXbpSize[1],aXbpSize[2]},,,GRA_BLT_BBO_IGNORE)
      oRet := oTiny
   ELSE
      oRet := oBMP
   ENDIF

RETURN oRet
nun versuche ich das ...

Code: Alles auswählen

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

   IF aXbpSize[2] > 0
      oHuge := oBMP

      oPS := XbpPresSpace():new()
      // schon bei o:create() PresSpace zuordnen
      oTiny := XbpBitmap():New():Create(oPS)
      oTiny:Make(aXbpSize[1],aXbpSize[2])

      oHuge:Draw(oPS,{0,0,aXbpSize[1],aXbpSize[2]},,,GRA_BLT_BBO_IGNORE)
      oRet := oTiny
   ELSE
      oRet := oBMP
   ENDIF

RETURN oRet
aber das haut nicht so hin wie es aussehen "sollte" ...
wer hat eine Idee ?

Re: XbpBitmap() :create( [<oPS >] ) / :presSpace( [<oPS>] )

Verfasst: Do, 22. Nov 2012 6:18
von AUGE_OHR
hi,

der oben gezeigte Code zu BMP2BMP ist falsch !

es gibt da die PDR 6271 / 6272 welche besagt man soll NICHT einen Presspace NACH einem XbpBitmap() anfordern soll sondern VORHER

Code: Alles auswählen


 // erst Presspace anfordern
 oPS   := XbpPresSpace():New():Create()
 // jetzt das Bitmap Objet 
 oTiny := XbpBitmap():New():Create()
 // dann das MAKE
 oTiny:Make(aXbpSize[1], aXbpSize[2])
 // und so klappt das auch mit Xbase++ v2.0.437
 oTiny:PresSpace(oPS)

Re: XbpBitmap():create([<oPS>])/:presSpace([<oPS>]) [erled

Verfasst: Do, 22. Nov 2012 8:42
von brandelh
Im ersten Code fehlt sowieso das oPS:create().
Ich merke mir das so, dass der PP das Blatt Papier ist auf das ich malen bzw. schreiben möchte.
Solange das Papier nicht fertig ist, kann ich nichts drauf schreiben ;-)

Re: XbpBitmap():create([<oPS>])/:presSpace([<oPS>]) [erled

Verfasst: Sa, 24. Nov 2012 2:48
von AUGE_OHR
brandelh hat geschrieben:Im ersten Code fehlt sowieso das oPS:create().
"könnte" hier ein Typo sein ...

aber das ganze Konstrukt "funktioniert" auch ohne oPS:create() (???) sonst hätte ich es ja vorher schon gemerkt.
Das ganze lieferte mir ja das gewünschte "Resultat" und ich hatte nie in Verdacht das da was nicht stimmt.

tatsächlich ist aber die Reihenfolge entscheidend ... was man in der v1.9x nicht "merkt" ...
brandelh hat geschrieben:Ich merke mir das so, dass der PP das Blatt Papier ist auf das ich malen bzw. schreiben möchte.
Solange das Papier nicht fertig ist, kann ich nichts drauf schreiben ;-)
ja das ist eine gute Eselsbrücke :thumbright: