Quanto ao DBGrid eu nao sei... o que estou enviando e' uma dica que peguei 
no site da Borland, que ensina como fazer o auto-completar em uma combo box 
normal. Eu ainda nao testei.

Obs.: No D6 as combo box ja possuem esse recurso, que pode ser ativado por 
uma propriedade, AutoComplete eu acho...

Espero que ajude.

Abraco,

Fernando

=== DICA ===

The following example shows how to complete partial strings typed into a 
combo box. The code represents the OnKeyPress event handler of the combo 
box, which performs most of the default keystroke handling before finding a 
matching list item and updating the text.

Note:   This OnKeyPress event handler does not deal with the case when the 
user types the Delete key. That case must be caught in the OnKeyDown event 
handler instead.

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
var
   Found: boolean;
   i,SelSt: Integer;
   TmpStr: string;
begin
   { first, process the keystroke to obtain the current string }
   { This code requires all items in list to be uppercase}
   if Key in ['a'..'z'] then Dec(Key,32); {Force Uppercase only!}
   with (Sender as TComboBox) do
   begin
     SelSt := SelStart;
     if (Key = Chr(vk_Back)) and (SelLength <> 0) then
      TmpStr := Copy(Text,1,SelStart)+Copy(Text,SelLength+SelStart+1,255)

     else if Key = Chr(vk_Back) then {SelLength = 0}
      TmpStr := Copy(Text,1,SelStart-1)+Copy(Text,SelStart+1,255)
     else {Key in ['A'..'Z', etc]}
      TmpStr := Copy(Text,1,SelStart)+Key+Copy(Text,SelLength+SelStart+1,255);
     if TmpStr = '' then Exit;
     { update SelSt to the current insertion point }

     if (Key = Chr(vk_Back)) and (SelSt > 0) then Dec(SelSt)

     else if Key <> Chr(vk_Back) then Inc(SelSt);
     Key := #0; { indicate that key was handled }
     if SelSt = 0 then
     begin
       Text:= '';
       Exit;
     end;

    {Now that TmpStr is the currently typed string, see if we can locate a 
match }

     Found := False;
     for i := 1 to Items.Count do
       if Copy(Items[i-1],1,Length(TmpStr)) = TmpStr then
       begin
         Text := Items[i-1]; { update to the match that was found }
         ItemIndex := i-1;
         Found := True;
         Break;
       end;
     if Found then { select the untyped end of the string }
    begin
       SelStart := SelSt;
       SelLength := Length(Text)-SelSt;
     end
     else Beep;
   end;
end;


At 14:36 30/10/2004, you wrote:

>De: [EMAIL PROTECTED]
>Data: 10/29/04 21:55:08
>Para: [EMAIL PROTECTED]
>Assunto: [delphi-br] DBGRID E LOOKUP FIELD
>
>
>Gostaria de saber como eu posso fazer uma pesquisa incremental )tipo
>
>aquele autocompletar que o Internet Explorer faz enquanto vc digita
>
>o nome da página que vc quer entrar), porem dentro de um campo
>
>lookup que está numa Dbgrid )quando isso é feito sabemos que abre
>
>uma combo na dbgrid), pois bem gostaria de fazer uma pesquisa
>
>incremental dentro deste campo....
>
>
>
>Se alguém puder me ajudar....
>
>
>
>Obrigado...



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a