For the complete documentation index, see llms.txt. This page is also available as Markdown.

Evitando problemas de cintilação (Flickering)

Na maioria das vezes, uma exibição de tela completa consiste em vários objetos distintos e sobrepostos, desenhados de trás para frente.

Resolvemos esse problema da mesma forma que um artista faria. Trabalhamos em uma tela na memória (chamada de Contexto de Dispositivo - DC). Esta tela é como se fosse uma tela virtual. Funciona mais ou menos assim: Primeiramente devemos selecionar a área a ser pintada (neste caso queremos pintar em toda a tela, para isso usamos o comando "Exponha tudo". Depois você "pinta" ou "desenha" todas as coisas que deseja nesta tela virtual, e depois disso exibe-a de uma só vez (usando o comando "Atualize a tela").

Rotina para que se execute o programa:
  Carregue as bibliotecas padrão.
  Limpe a tela usando a cor laranja claríssimo.
  Atribua "http://osmosian.com/page01.png" para uma URL denominada caminho.
  Crie uma imagem usando o caminho.
  Pinte a imagem.
  Atualize a tela.
  Itere.  
    Adicione 1 para um contador.
    Mova a imagem 10 pixels para a direita.
    Aguarde 3 milissegundos. 
    Exponha tudo. \ -> Seleciona a tela inteira para ser pintada
    Pinte a caixa desta tela com a cor laranja claríssimo e a cor laranja claríssimo.
    Pinte a imagem.
    Atualize a tela.
    Atribua a caixa desta tela à caixa deste contexto.
    Se o contador for 20, pare.
  Reitere.
  Aguarde pela tecla Esc.
  Desmanche todos os eventos.
  Destrua a imagem.
  Feche o programa.

Atualizado