Se vc estiver usando DbExpress e com componente ClientDataSet pode fazer assim:
No ClientDataSet (cds_OC neste exemplo) vc adiciona um campo tipo InternalCalc ('status' neste exemplo) tipo string 1 caracter. Adicione tb um imagelist (iml_OC neste exemplo) e nelo coloque duas figuras a index 0 será o box marcado, e index 1 box desmarcado. No exemplo estou usando um dbgrid da Jedi (deve funcionar com dbgrid), depois implemente os seguintes eventos: procedure TfrmPesq_OrdemCompra.grd_OCDblClick(Sender: TObject); begin { Marca ou desmarca com duplo clique } muda_status_OC; end; procedure TfrmPesq_OrdemCompra.grd_OCKeyPress(Sender: TObject; var Key: Char); begin { Marca ou desmarca com barra de espaço } if Key = chr(vk_Space) then begin muda_status_OC; end; end; //Adicione a seguinte procedure procedure TfrmPesq_OrdemCompra.muda_status_OC; begin if not (cds_OC.State in dsEditModes) then cds_OC.Edit; if cds_OC.FieldByName('status').AsString = 'S' then begin cds_OC.FieldByName('status').AsString := 'N'; end else begin cds_OC.FieldByName('status').AsString := 'S'; end; end; procedure TfrmPesq_OrdemCompra.grd_OCDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin (* Pinta a figura para o campo status *) if Column.Field= cds_OC.FieldByName('status') then begin grd_OC.Canvas.FillRect(Rect); grd_OC.DefaultDrawDataCell(Rect, Column.Field, State); // pinta o texto padrão if cds_OC.FieldByName('status').AsString = 'S' then begin iml_OC.Draw(grd_OC.Canvas, Rect.Left, Rect.Top + 1, 0); end else begin iml_OC.Draw(grd_OC.Canvas, Rect.Left, Rect.Top + 1, 1); end; end; end; Agora é só localizar nesta tabela (cds_OC) os itens marcados para imprimir, é um começo. ________________________________ De: alessandra porto <alessandraport...@yahoo.com.br> Para: lista-del...@yahoogrupos.com.br; delphi-br@yahoogrupos.com.br Enviadas: Quarta-feira, 4 de Novembro de 2009 14:25:41 Assunto: [delphi-br] uma ideia de como fazer Tenho uma tabela no BD que possui por exemplo 10 registros gostaria de criar em um form algum tipo de exibir esses 10 registros com um checkbox para cada registro e quando marcado o checkbox eu estaria selecionando aquele registro para impressão a ideia é como criar o numero de checkbox conforme o numero de registros desta tabela? ou teria uma forma mais pratica para selecionar registros para ser impressos? agradeço a todos que colaborarem ____________ _________ _________ _________ _________ _________ _ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbusca dos.yahoo. com [As partes desta mensagem que não continham texto foram removidas] ____________________________________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]