Ver Mensaje Individual
  #10  
Antiguo 04-11-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aromigaret.
Cita:
Empezado por aromigaret Ver Mensaje
...quisiera saber si hay algún buffer o función que examinar en el dbrid para tomar lo que se carga y no una letra por letra
No voy a omitir opinión sobre el modo de ingreso y tampoco sé si esta opción es mejor que lo que has implementado. Pero respondiendo a tu consulta, creo que podrías usar el objeto TInplaceEdit de modo similar a este ejemplo :
Código Delphi [-]
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
  s : string;
begin
  if DBGrid1.EditorMode and (DBGrid1.SelectedField.FieldName = 'ARTICULO') then
  begin
    s   := TInPlaceEdit(DBGrid1.Controls[0]).Text;
    if Key in ['A'..'Z','Á','É','Í','Ú','Ñ'] then // (y demás caracteres que desees )
      s := s + Key
    else if Key = #8 then
      Delete(s, Length(s), 1);

    tuQuery.Close;
    tuQuery.SQL.Clear;
    tuQuery.SQL.Add('SELECT ARTICULO, STOCK, PRECIO, IVA FROM PRODUCTO');
    tuQuery.SQL.Add('WHERE ARTICULO LIKE :DET ORDER BY ARTICULO');
    tuQuery.ParamByName('DET').AsString :=  s + '%';
    tuQuery.Open;
  end;
end;
Salida:


De todos modos, recuerda que si estas trabajando en red, las búsquedas incrementales pueden tornar todo lento ya que aumentan el tráfico desde y hacia el servidor.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita