Seite 1 von 1

Static über Bild bewegen -> flicker [erledigt]

Verfasst: Mo, 09. Jan 2017 2:51
von AUGE_OHR
ich habe auf der o:DrawingArea eine Static mit dem Hintergrund Bild.
als Child habe ich eine weitere Static wieder mit einem Bild (Taxi).
YellowCab_transparent.jpg
YellowCab_transparent.jpg (96.2 KiB) 2426 mal betrachtet
nun will ich die Child Static bewegen aber dabei "flickert" es ...

Code: Alles auswählen

FUNCTION Moveit(oDraw,aDraw,nStep)
LOCAL aSize    := oDraw:CurrentSize()
STATIC aPos    := { 0,0 }

DEFAULT nStep TO 10

   IF aPos[1] = 0
      aPos := ACLONE(aDraw)
      aPos[2] := 0
   ENDIF
   aPos[1] -= nStep
   IF aPos[1]  < aSize[1] * -1
      aPos[1] := aDraw[1] - aSize[1]
   ENDIF

   oDraw:SetPos(aPos)
RETURN NIL
wie kann ich das abstellen ?
MoveJPEG.zip
Source, XPJ, RES
(685.86 KiB) 196-mal heruntergeladen

Re: Static über Bild bewegen -> flicker [erledigt]

Verfasst: Di, 10. Jan 2017 2:43
von AUGE_OHR
das Problem ist bei o:SetPos(aPos) und auch bei o:SetCaption(x) wenn x = Bitmap.
mit einem Hintergrundbild fällt es mehr auf als bei einer normalen DrawingArea

also dachte ich mir "male" das ganze doch selbst. zunächst hatte ich eine

Code: Alles auswählen

CLASS Banner FROM XbpStatic
in der mache ich nun das
1.) mit GraBitBlt() einen "Snapshot" von der Parent Area ( o:FillBG() ) -> xBanner
2.) xBanner:draw()
3.) xPic:draw()
beide "malen" in den selben Presspace. soweit so gut und ich kann auch mit

Code: Alles auswählen

   xBanner:SaveFile("Test1")
das Bild abspeichern ... aber ich "sehe" nichts :evil:

nach einigen erfolglosen Versuchen ( nix oder flicker ) habe ich das "FROM XbpStatic"
raus genommen und eine "externe" Ownerdraw Static als Parent angelegt
5.) externe Ownerdraw Static als Parent
6.) oParent:invalidateRect() um das Ownerdraw zu aktivieten
nun kann ich die Animation sehen ohne ruckeln oder flicker \:D/

Upload des Source im Mitglieder Bereich