Re: [delphi-br] TDBCtrlGrid: Evento OnPaintPanel sendo chamado infinitamente

2010-09-06 Por tôpico Jhosef Marks
procedure TfrmClientePrincipal.ctrAgendaPaintPanel(DBCtrlGrid: TDBCtrlGrid;
Index: Integer);
begin
  if DBCtrlGrid.datasource.dataset.FieldByName('STATUS').AsString = 'C'
then begin
DBCtrlGrid.Color := $00D2D2FF;
  end else begin
DBCtrlGrid.Color := clWindow;
  end;
end;

Att,

*Jhosef Marks de Carvalho*
*Blog: **http://www.jhosefmarks.com.br* http://www.jhosefmarks.com.br*
Jesus está voltando

*
*E se o meu povo, que se chama pelo meu nome, se humilhar, e orar, e buscar
a minha face e se converter dos seus maus caminhos, então eu ouvirei dos
céus, e perdoarei os seus pecados, e sararei a sua terra. (2 Cr 7:14) *



Em 6 de setembro de 2010 15:08, Rubem Rocha
rubem.ro...@dtmanaus.com.brescreveu:



 Kd o código do evento

 Sds.

 De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto:
 delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em
 nome de Jhosef Marks
 Enviada em: segunda-feira, 6 de setembro de 2010 13:59
 Assunto: [delphi-br] TDBCtrlGrid: Evento OnPaintPanel sendo chamado
 infinitamente


 Boa tarde a todos, tenho um TDBCtrlGrid com poucos registros (em torno de
 uns 10).

 No evento OnPaintPanel, eu fiz uns ifs para que de acordo com o status do
 registro fosse pintado de uma cor...

 Acontece que isso está travando o meu formulário... pois a função está
 sendo
 chamada infinitamente...

 Alguém já uso esse componente e teve algum problema?

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] TDBCtrlGrid: Evento OnPaintPanel sendo chamado infinitamente

2010-09-06 Por tôpico Dirlei
Quando você muda a propriedade color, o evento OnPaintPanel é chamado
novamente, o que gera uma sequência infinita de chamadas recursivas.

Você precisa atribuir nil ao evento OnPaintPanel no início da
implementação e reatribuir ctrAgendaPaintPanel no final para evitar isso
(de preferencia usando try..finally).

Mas acho que você não quer mudar a cor do DBCtrlGrid inteiro dependendo
do Status (pelo código, me parece que é isso que q vc está fazendo).
Deve haver algum objeto em tempo de execução que represente o painel do
registro corrente no grid. Se houver, é a cor desse painel que você
precisa mudar.

[]'s


-- 
Dirlei Dionísio

Novo artigo: Sorteio de ingresso para o Dev In Rio
http://MaisQueBomCodigo.blogspot.com


Em Seg, 2010-09-06 às 15:14 -0300, Jhosef Marks escreveu:
 procedure TfrmClientePrincipal.ctrAgendaPaintPanel(DBCtrlGrid: TDBCtrlGrid;
 Index: Integer);
 begin
   if DBCtrlGrid.datasource.dataset.FieldByName('STATUS').AsString = 'C'
 then begin
 DBCtrlGrid.Color := $00D2D2FF;
   end else begin
 DBCtrlGrid.Color := clWindow;
   end;
 end;
 
 Att,
 
 *Jhosef Marks de Carvalho*
 *Blog: **http://www.jhosefmarks.com.br* http://www.jhosefmarks.com.br*
 Jesus est voltando
 
 *
 *E se o meu povo, que se chama pelo meu nome, se humilhar, e orar, e buscar
 a minha face e se converter dos seus maus caminhos, ento eu ouvirei dos
 cus, e perdoarei os seus pecados, e sararei a sua terra. (2 Cr 7:14) *
 
 
 
 Em 6 de setembro de 2010 15:08, Rubem Rocha
 rubem.ro...@dtmanaus.com.brescreveu:
 
 
 
  Kd o cdigo do evento
 
  Sds.
 
  De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto:
  delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em
  nome de Jhosef Marks
  Enviada em: segunda-feira, 6 de setembro de 2010 13:59
  Assunto: [delphi-br] TDBCtrlGrid: Evento OnPaintPanel sendo chamado
  infinitamente
 
 
  Boa tarde a todos, tenho um TDBCtrlGrid com poucos registros (em torno de
  uns 10).
 
  No evento OnPaintPanel, eu fiz uns ifs para que de acordo com o status do
  registro fosse pintado de uma cor...
 
  Acontece que isso est travando o meu formulrio... pois a funo est
  sendo
  chamada infinitamente...
 
  Algum j uso esse componente e teve algum problema?
 
  [As partes desta mensagem que no continham texto foram removidas]
 
   
 
 
 
 [As partes desta mensagem que no continham texto foram removidas]