Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Barbosa

[Resolvido] Pegar dados do dbgrid movendo a seta para cima ou par

Recommended Posts

Pessoal, preciso pegar o uma informação do registro atual no dbgrid, a forma que estou fazendo ele só mostra a informação do registro anterior ou posterior de acorado com a movimentação das setas.

Uso o os componentes DataSetProvider, ClienteDataSet, DataModule, Query

A consulta está assim:

CDS_Consulta_MG.Active:=False;

  QR_Consulta_MG.Close;
  QR_Consulta_MG.SQL.Clear;
  QR_Consulta_MG.SQL.Add('SELECT e.ID, e.IDPACIENTE, e.DATA, e.HORA, e.NUMEROEXAME, e.ID_INTERNO, e.LAUDO , p.ID,  p.NOME');
  QR_Consulta_MG.SQL.Add('FROM EXAMES e, PACIENTES p');
  QR_Consulta_MG.SQL.Add('WHERE e.IDPACIENTE = p.ID');
  QR_Consulta_MG.SQL.Add('AND UPPER(p.nome) LIKE '''+'' + nome.Text +'%''');
  QR_Consulta_MG.SQL.Add('AND data BETWEEN :data_ini AND :data_fim');

  QR_Consulta_MG.SQL.Add('ORDER BY e.DATA, e.HORA, p.nome');

  QR_Consulta_MG.Params.ParamByName('data_ini').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_ini.Date);
  QR_Consulta_MG.Params.ParamByName('data_fim').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_fim.Date);

  QR_Consulta_MG.Open;
  CDS_Consulta_MG.Active:=True;

 

Quado movimento as setas estão assim:

procedure Tfrm_consulta_MG.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
RichEdit1.Text := DS_consulta_MG.DataSet.FieldByName('laudo').AsString;
end;

procedure Tfrm_consulta_MG.DBGrid1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);

begin
 RichEdit1.Text := DS_consulta_MG.DataSet.FieldByName('laudo').AsString;
end;

 

resolvido, usei o dbrichedit

Compartilhar este post


Link para o post
Compartilhar em outros sites

O evento AfterScroll é acionado após o cursor mudar de registro em seu dataSet, não antes, como seria no evento OnKeyPress que, pelo sistema de mensagens do Windows[/i], seria chamado primeiro, após executado, o componente recebe o comando e atualiza sua parte gráfica.

 

Selecione seu dataSet e procure o evento afterScroll. O código ficaria assim:

procedure Tfrm_SeuForm.QR_Consulta_MGAfterScroll(DataSet: TDataSet);
begin
 RichEdit1.Text := DS_consulta_MG.DataSet.FieldByName('laudo').AsString;
end;

Assim, você não precisaria modificar o evento OnKeyPress e nem o OnKeyDown e de quebra, ainda servirá para quando o usuário usar o Mouse para trocar de registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.