Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Com Canvas


Guest - Robson -

Pergunta

Guest - Robson -

Pessoal, está acontecendo o seguinte tenho um TImage onde Desenho linhas entre os componentes dipostos(elipses) só que a cada vez que desenho em tempo de execução o Timage dá um piscada.

Como faço para isso não acontecer?

Obrigado.........

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

opa

tenta assim, primeiro no evento OnCreate do Form

você coloca

DoubleBuffered := True;

se só isso não resolver o que acho pouco provável

então deve ter no TImage essa mesma propriedade

então você faz o mesmo...

Image1.DoubleBuffered := True;

to sem o delphi aqui...

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
cara não deu certo..........

não existe essa propriedade para o TImage ......

Valeu..

opa

tente colocar no Evento OnCreate do Form DoubleBuffered := True; talvez funcione...

Se não funcionar ou não for o que deseja responda a pergunta do Micheus talvez

seja o que você precisa!

Eu sempre usei o DoubleBuffered mas em alguns casos pode não funcionar rs

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Micheus desculpe pela demora em te responder.........

Sim eu quardo os pontos inicial e final de cada linha que chamo de transição em um vetor.

Quando movo um componente calculo novamente os pontos que envolvem esse componente a chamo um método que lê o vetor de transicoes e redesenha na tela cada transicao...

Coloquei o DoubleBuffered := true no meu scrollbox que armazena o Timage no evento onShow do Form

Deu certo só que ficou lento.

Abraços...........

Link para o comentário
Compartilhar em outros sites

  • 0
Sim eu quardo os pontos inicial e final de cada linha que chamo de transição em um vetor.

Quando movo um componente calculo novamente os pontos que envolvem esse componente a chamo um método que lê o vetor de transicoes e redesenha na tela cada transicao...

Robison, acho que esse assunto é referente ao seu outro post, certo?

Eu não saberia como resolver o problema que vem se desenrrolando por aqui. Mas já que você mantém um tipo de estrutura que lhe indica o que e onde algo deve ser desenhado, permitam-me sugeri algo que já utilizei em outra oportunidade, que se bem me lembro não gerava este efeito de piscar. Era um esquema para desenha fluxogramas/portas lógicas. Derrepente vale o teste. :)

O princípio é o seguinte: você define e cria um canvas no form onde estará adicionado o seu ScrollBox, então cria um procedimento para desenhar seus elementos gráficos no scrollbox utilizando aquele canvas (observe, não é utilizado outra coisa além do scrollbox). Um exemplo:

type
  TForm1 = class(TForm)
    ScrollBox1: TScrollBox;
  private
    ScrollCanvas :TCanvas;
    procedure DesenhaDiagrama;
  end;
...

procedure TForm1.FormCreate(Sender: TObject);
begin
  ScrollCanvas := TCanvas.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ScrollCanvas.Free;
end;

// aqui va o procedimento que lê a estrutura de dados e procede ao 
// desenho por ela representado
procedure TForm1.DesenhaDiagrama;
begin
  ScrollCanvas.Handle := GetDC(ScrollBox1.handle);
 // desenha os diagramas
  ...
  ScrollCanvas.Rectangle(10, 10, 200, 150);  // desenhando apenas um retângulo
  ...
  ReleaseDC(ScrollBox1.handle, ScrollCanvas.Handle);
end;

// aqui, quando o form for redesenhado, redesenha o diagrama
procedure TForm1.FormPaint(Sender: TObject);
begin
  DesenhaDiagrama;
end;

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...