JrRobson 0 Denunciar post Postado Fevereiro 3, 2007 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........ Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Fevereiro 4, 2007 Você está usando algum tipo de Timer??? teria como postar um pedaço do fonte para que possamos analisar??? flw aew! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Fevereiro 4, 2007 Você tá usando o delphi 7 (ou superior?)No inicio do procedimento de desenho, coloque um doublebufered:=true; e no final doublebufered:=false;se for um delphi mais antigo ou ficar muito lento, use o sistema de pesquisa do forum procurando por "backbuffer" Compartilhar este post Link para o post Compartilhar em outros sites
JrRobson 0 Denunciar post Postado Fevereiro 4, 2007 Você tá usando o delphi 7 (ou superior?)No inicio do procedimento de desenho, coloque um doublebufered:=true; e no final doublebufered:=false;se for um delphi mais antigo ou ficar muito lento, use o sistema de pesquisa do forum procurando por "backbuffer"Tá mas quem chama essa propriedade o TImage ou o Form, tentei com os dois e dá a mensagem de erro de identificador não encontrado, preciso de chamar alguma classe .....vou adicionar o código em exemplo bem simples ....unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, AutomataControl, ExtCtrls;type TForm2 = class(TForm) ScrollBox1: TScrollBox; Image1: TImage; // componentes que criei representa um estado em forma de circulo AutomataControl1: TAutomataControl; AutomataControl2: TAutomataControl; AutomataControl3: TAutomataControl; procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure desenhaTransicaoTela(EstInicio,Estfim:TautomataControl); procedure FormShow(Sender: TObject); procedure NovaTransicao; private { Private declarations } public EstInicio,EstFim:TAutomataControl; { Public declarations } end;var Form2: TForm2;implementation{$R *.dfm}procedure TForm2.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);var AuxPos:TPOint;begin AuxPos.X:=TAutomataControl(Sender).Left + x; AuxPos.Y:=TautomataControl(Sender).Top + y; if (sender is TAutomataControl) then begin if EstInicio = nil then begin EstInicio:=TAutomataControl(Sender); EstInicio.SetFPosDentroElipse(AuxPos); end else begin EstFim := TAutomataControl(Sender); EstFim.SetFPosDentroElipse(AuxPos); DesenhaTransicaoTela(EstInicio,EstFim); NovaTransicao; end; end;end;procedure TForm2.desenhaTransicaoTela(EstInicio, Estfim:TAutomataControl);var posI,posF:TPoint;begin with Image1.Canvas do begin Pen.Width:=1; Pen.Color:=ClBackGround; posI:=EstInicio.GetFPosDentroElipse; posF:=EstFim.GetFPosDentroElipse; MoveTo(PosI.x,PosI.Y); LineTo(PosF.x,PosF.Y); end;end;procedure TForm2.FormShow(Sender: TObject);begin NovaTransicao;end;procedure TForm2.NovaTransicao;begin estInicio:=nil; EstFim:=nil;end;end. Compartilhar este post Link para o post Compartilhar em outros sites
JrRobson 0 Denunciar post Postado Fevereiro 4, 2007 Aqui pessoal pesquisei a acabei no evento onshow chamando Scrollbox.doubleBuffered :=true a tela parou de piscar só que ficou lento ..... Compartilhar este post Link para o post Compartilhar em outros sites