Fiz uma POG aqui... =) Joguei um Shape com alClient e mudei a cor dele conforme a minha necessidade.... rs
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 16:10, Rubem Rocha <rubem.ro...@dtmanaus.com.br>escreveu: > > > Jhosef, esse seu problema até já foi relatado uma vez no site > QualityCentral, da Embarcadero ( > http://qc.embarcadero.com/wc/qcmain.aspx?d=3534). > > As propriedades Color e SelectedColor são usadas pelo TDBCtrlGrid quando a > sua exibição é feita pelo próprio componente. O fato dessas propriedades > serem usadas pelo controle para exibição dos painéis, e o fato de você estar > referenciando uma dessas propriedades (Color) no evento, faz com que o mesmo > seja disparado várias vezes, causando essa recursão. > > Tenha em mente que quando você usa o evento OnPaintPanel, é o código neste > evento que é responsável pela 'pintura' dos painéis do TDBCtrlGrid, e não > mais o próprio componente. Ou seja, é você que é o responsável por essa > exibição customizada, e não mais o componente, cabendo ao mesmo apenas > chamar o evento codificado por você. > > O help do Delphi explica que, nesse evento, o código deve usar a > propriedade Canvas para pintar o painel, e não simplesmente fazer essa > alternância de cor, pelos motivos já explicados. > > 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 > Dirlei > Enviada em: segunda-feira, 6 de setembro de 2010 14:54 > Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Assunto: Re: [delphi-br] TDBCtrlGrid: Evento OnPaintPanel sendo chamado > infinitamente > > > 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.br <rubem.rocha%40dtmanaus.com.br> <mailto: > rubem.rocha%40dtmanaus.com.br <rubem.rocha%2540dtmanaus.com.br>> > >escreveu: > > > > > > > > > > > > Kd o cdigo do evento???????? > > > > > > Sds. > > > > > > De: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br><mailto: > delphi-br%40yahoogrupos.com.br <delphi-br%2540yahoogrupos.com.br>> > <delphi-br%40yahoogrupos.com.br> [mailto: > > > delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> <mailto: > delphi-br%40yahoogrupos.com.br <delphi-br%2540yahoogrupos.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] > > > > > > > > ------------------------------------ > > > > [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