Page 1 of 1

Animazione con bitmap

Posted: Thu Aug 16, 2007 8:15 am
by Pier Luigi
In un programma ho inserito una breve animazione utilizzando una serie di bitmap unitamente alla funzione SetBmp. Funziona egregiamente, ma durante l'animazione, l'immagine "sfarfalla", "lampeggia" (non so come definirla). E' possibile eliminare questo fenomeno?

Grazie.
Pier Luigi

Posted: Thu Aug 16, 2007 8:23 am
by Antonio Linares
Pier,

Are you using XP themes ? Are the images painted transparently ?

Posted: Thu Aug 16, 2007 8:32 am
by Pier Luigi
Yes, I use XP themes and the image is painted transparently.

Pier Luigi

Posted: Thu Aug 16, 2007 8:50 am
by Antonio Linares
Pier,

I guess that you mean "flickering". If yes, then Class TBitmap already uses "double buffer" painting technique to avoid the flickering.

Please check if your source\classes\bitmap.prg file contains these lines:

Code: Select all

METHOD Paint() CLASS TBitmap

   local aInfo := ::DispBegin()
   ...

Re: Animazione con bitmap

Posted: Thu Aug 16, 2007 9:46 am
by Enrico Maria Giordano
Con un esempio minimale del problema sarebbe piĆ¹ facile aiutarti.

EMG

Posted: Thu Aug 16, 2007 11:37 am
by Antonio Linares
Dear Enrico,

Your mail server has blocked ours again:
<e.m.giordano@alice.it>:
85.33.2.53 does not like recipient.
Remote host said: 550 5.7.1 213.149.226.3 has been blocked by abuseat
Giving up on 85.33.2.53.

so the forums can't notify you again. You could get a new gmail account

Posted: Thu Aug 16, 2007 5:00 pm
by Pier Luigi
Antonio,

It is ok! I used one old version of Bitmap class :oops:

One question:

I would want the resize of a bitmap.
Can I use the function ::DispBegin() with WndSetSize() to avoid the "flickering" ?

For example:

aInfo := oBmp:DispBegin()
WndSetSize( oBmp:hWnd, nWidth, nHeight, .t. )
...

Regards
Pier Luigi

Posted: Thu Aug 16, 2007 5:08 pm
by Antonio Linares
Pier,

The double buffer painting is only required at the Paint() method. If you resize the control, it should not flick