Animazione con bitmap

Moderator: Enrico Maria Giordano

Post Reply
User avatar
Pier Luigi
Posts: 58
Joined: Fri Oct 07, 2005 6:30 am
Location: Rome - Italy

Animazione con bitmap

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 42414
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 12 times
Been thanked: 48 times
Contact:

Post by Antonio Linares »

Pier,

Are you using XP themes ? Are the images painted transparently ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Pier Luigi
Posts: 58
Joined: Fri Oct 07, 2005 6:30 am
Location: Rome - Italy

Post by Pier Luigi »

Yes, I use XP themes and the image is painted transparently.

Pier Luigi
User avatar
Antonio Linares
Site Admin
Posts: 42414
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 12 times
Been thanked: 48 times
Contact:

Post 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 | Expand

METHOD Paint() CLASS TBitmap

   local aInfo := ::DispBegin()
   ...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Enrico Maria Giordano
Posts: 8736
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Animazione con bitmap

Post by Enrico Maria Giordano »

Con un esempio minimale del problema sarebbe più facile aiutarti.

EMG
User avatar
Antonio Linares
Site Admin
Posts: 42414
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 12 times
Been thanked: 48 times
Contact:

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Pier Luigi
Posts: 58
Joined: Fri Oct 07, 2005 6:30 am
Location: Rome - Italy

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 42414
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 12 times
Been thanked: 48 times
Contact:

Post by Antonio Linares »

Pier,

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

Antonio Linares
www.fivetechsoft.com
Post Reply