Campo alto completar
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.
Tipo o da barra de endereço do IE mas sem a aba que se abre abaixo.
Charlesd
Curtidas 0
Respostas
Anonymous
17/03/2003
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
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
GOSTEI 0
Kpinho
17/03/2003
Estou querendo tambem so que aparecendo as abas, tentei este mas retorna um erro
index in out of date
index in out of date
GOSTEI 0
Vinicius2k
17/03/2003
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...
GOSTEI 0
Vinicius2k
17/03/2003
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;
GOSTEI 0
Kpinho
17/03/2003
Agradeço profundamente sua ajuda, mas gostaria de utilizar somente DBEdit. ja utilizo o FBComboBox
GOSTEI 0
Wolverine
17/03/2003
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
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
GOSTEI 0
Gigatel
17/03/2003
[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....
GOSTEI 0