Re: [delphi-br] TDBCtrlGrid: Evento OnPaintPanel sendo chamado infinitamente
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
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]
RES: [delphi-br] TDBCtrlGrid: Evento OnPaintPanel sendo chamado infinitamente
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 [mailto:delphi...@yahoogrupos.com.br] Em nome de Dirlei Enviada em: segunda-feira, 6 de setembro de 2010 14:54 Para: delphi-br@yahoogrupos.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 mailto:rubem.rocha%40dtmanaus.com.br escreveu: Kd o cdigo do evento Sds. De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.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]
[delphi-br] Abrir Excel
Pessoal, é possível abrir uma planilha do Excel dentro do meu aplicativo e depois salvar essa planilha? Eu gostaria de abrir essa planilha como se eu estivesse editando no Excel. [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Abrir Excel
Defina melhor abrir uma planilha do Excel dentro do meu aplicativo e depois salvar essa planilha? Você quer abrir a planilha com uma interface a là planilha eletrônica para edição dos dados e posterior gravação, ou quer pelo menos acesso à planilha via código para alteração e posterior gravação? Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Alisson Enviada em: segunda-feira, 6 de setembro de 2010 15:13 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Abrir Excel Pessoal, é possível abrir uma planilha do Excel dentro do meu aplicativo e depois salvar essa planilha? Eu gostaria de abrir essa planilha como se eu estivesse editando no Excel. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Norma 14598 estou precisando
Estou precisando da NORMA 14598 - Avaliação da Qualidade do Produto de Software Alguém tem a norma ou parte dela ou sabe qual site conseguir? -- Léo Gomes - Técnico em Eletrônica - Mutum-MG [As partes desta mensagem que não continham texto foram removidas]