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]

Responder a