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

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

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

Beitrag 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 ?
Zuletzt geändert von AUGE_OHR am Do, 22. Nov 2012 6:19, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

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

Beitrag 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)
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

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

Beitrag 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 ;-)
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

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

Beitrag 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:
gruss by OHR
Jimmy
Antworten