Problema: Gostaria de fazer um formulário de pesquisa que, ao digitar algo sobre o DBGrid, o registro correspondendo fosse localizado. Solução: - Coloque no form: TTable, TDataSource, TDBGrid e TLabel. - Ajuste as propriedades do Table1: DatabaseName =TableName = Active = true - Ajuste as propriedades do DataSource1: DataSet = Table1 - Ajuste as propriedades do DBGrid1: DataSource = DataSource1 Options -> dgEditing = false ReadOnly = true * Pode também ajustar a propriedades Columns para escolher as colunas que serão exibidas. - Na seção private da unit declare: private FTexto: string; - No evento OnCreate do form coloque: FTexto := ''; Label1.Caption := ''; - No evento OnKeyPress do DBGrid1: procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key in [#8, #32..#255] then begin if Key = #8 then { BackSpace } FTexto := Copy(FTexto, 1, Length(FTexto)-1) else FTexto := FTexto + Key; { Posiciona na coluna Nome } Table1.FieldByName('Nome').FocusControl; { Escolhe o índice e procura } Table1.IndexFieldNames := 'Nome'; Table1.FindNearest([FTexto]); { Mostra o texto procurado } Label1.Caption := FTexto; end; end;
O conteúdo desta página pode ajudar alguém? Compartilhe!