Static über Bild bewegen -> flicker [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

Static über Bild bewegen -> flicker [erledigt]

Beitrag 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) 2420 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
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: Static über Bild bewegen -> flicker [erledigt]

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