Fórum Campo alto completar #146450

17/03/2003

0

Como faço para que no dbedit comforme o usuario vai digitando um nome, no dbedit retorno o nome do mesmo sem ter que digitar total mente o nome.
Tipo o da barra de endereço do IE mas sem a aba que se abre abaixo.


Charlesd

Charlesd

Responder

Posts

17/03/2003

Anonymous

Em primeiro lugar pra ele completar o nome ele precisa de uma fonte de dados. Supomos que vc tenha uma tabela chamada Usuario e nesta tabela existe o campo Nome.
Então no evento onChange do dbEdit vc faz:

if DBEdit1.Text = ´´ then Exit else
begin
if Tabela.Locate(´NOME´,DBEdit1.Text,[loCaseInsensitive,loPartialKey]) then DBEdit1.Text := TabelaNome.Value;
end;


Acho que isso funciona


Responder

Gostei + 0

14/02/2004

Kpinho

Estou querendo tambem so que aparecendo as abas, tentei este mas retorna um erro

index in out of date


Responder

Gostei + 0

14/02/2004

Vinicius2k

index in out of date


este erro não está relacionado com a rotina, mas sim a algum índice da sua tabela paradox que está corrompido... vc precisa recriá-los...

CharlesD, veja este código :
procedure TForm1.ComboBox1KeyUp(Sender: TObject; var Key: Word; 
Shift: TShiftState); 
var 
l:Integer; 
begin 
if (key=VK_BACK) or (key=VK_DELETE) or (key=VK_LEFT) or (key=VK_RIGHT) 
or (KEY=vk_home) or (key=VK_END) or (key=VK_SHIFT) or (key=VK_TAB) then exit; 
ComboBox1.DroppedDown:=true; 
l:=Length(Combobox1.text); 
Table1.Locate(´Nome´,ComboBox1.Text,[]);
if Copy(Table1.Fieldbyname(´Nome´).asString,1,L)= 
Copy(ComboBox1.Text,1,L) then begin 
Combobox1.Text:= Table1.FieldByName(´Nome´).asString; 
Combobox1.SelStart:=l; 
ComboBox1.SelLength:=Length(ComboBox1.Text)-l; 
end; 
end;


talvez seja necessária, alguma adaptação, mas a idéia básica pode lhe ajudar...


Responder

Gostei + 0

14/02/2004

Vinicius2k

Correção :

procedure TForm1.ComboBox1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var l:Integer; begin if (key=VK_BACK) or (key=VK_DELETE) or (key=VK_LEFT) or (key=VK_RIGHT) or (KEY=vk_home) or (key=VK_END) or (key=VK_SHIFT) or (key=VK_TAB) then exit; ComboBox1.DroppedDown:=true; l:=Length(Combobox1.text); [color=red:607d63c492]Table1.Locate(´Nome´,ComboBox1.Text,[LoPartialKey]);[/color:607d63c492] if Copy(Table1.Fieldbyname(´Nome´).asString,1,L)= Copy(ComboBox1.Text,1,L) then begin Combobox1.Text:= Table1.FieldByName(´Nome´).asString; Combobox1.SelStart:=l; ComboBox1.SelLength:=Length(ComboBox1.Text)-l; end; end;



Responder

Gostei + 0

15/02/2004

Kpinho

Agradeço profundamente sua ajuda, mas gostaria de utilizar somente DBEdit. ja utilizo o FBComboBox


Responder

Gostei + 0

15/02/2004

Wolverine

primeiro:
para fazer pesquisa vc ñ usa componetes dataset, use edit

o codigo:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´select * from tabela where campo >= ´´+edit.text+´´´);
Query1.Open;
end;

coloque isso no evento onKeyPress do edit


Responder

Gostei + 0

15/02/2004

Gigatel

[quote:e1123da103=´kpinho´]index in out of date


este erro não está relacionado com a rotina, mas sim a algum índice da sua tabela paradox que está corrompido... vc precisa recriá-los...

CharlesD, veja este código :
procedure TForm1.ComboBox1KeyUp(Sender: TObject; var Key: Word; 
Shift: TShiftState); 
var 
l:Integer; 
begin 
if (key=VK_BACK) or (key=VK_DELETE) or (key=VK_LEFT) or (key=VK_RIGHT) 
or (KEY=vk_home) or (key=VK_END) or (key=VK_SHIFT) or (key=VK_TAB) then exit; 
ComboBox1.DroppedDown:=true; 
l:=Length(Combobox1.text); 
Table1.Locate(´Nome´,ComboBox1.Text,[]);
if Copy(Table1.Fieldbyname(´Nome´).asString,1,L)= 
Copy(ComboBox1.Text,1,L) then begin 
Combobox1.Text:= Table1.FieldByName(´Nome´).asString; 
Combobox1.SelStart:=l; 
ComboBox1.SelLength:=Length(ComboBox1.Text)-l; 
end; 
end;


talvez seja necessária, alguma adaptação, mas a idéia básica pode lhe ajudar...[/quote:e1123da103]

AE vinicius2K BLZ ? Sabe eu resolvi o problema, tinha um def. na tabela mas agora não prescisa de chav. Prm. para funcionar valeu a dica...

Com relação a esta função eu só tenho a dizer que se pessoa for um digitador rápido ele atropela, e pula para o final ....

más a função funciona bem....


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar