Fórum Dúvida com ComboBox #187872
10/10/2003
0
bem estou usando um combobox para mostrar um campo de uma tabela que tenho... mas a tabela é em sql... então estou usando o componente query para poder trabalha com ela.. bem a duvida.. eu baixei aki no clube do delphi um exemplo de como usar o combobox, mas o exemplo esta com um table.. então troquei o table pelo query mas esta dando um erro que não estou entendendo... caso alguem possa me ajudar ficarei muito grato...
segue o codigo:
procedure TForm1.FormShow(Sender: TObject);
begin
comboBox1.Items.clear;
datamodule2.Query1.First;
While not datamodule2.Query1.Eof do begin
ComboBox1.Items.add(datamodule2.Query1.FieldValues[´nick´].asstring);
datamodule2.Query1.Next;
End;
end;
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);
datamodule2.Query1.FindNearest([combobox1.Text]);
if Copy(datamodule2.Query1.fieldvalues[´nick´].asString,1,L)=
Copy(ComboBox1.Text,1,L) then begin
combobox1.Text:=datamodule2.Query1.fieldvalues[´nick´].asString;
combobox1.SelStart:=l;
ComboBox1.SelLength:=Length(ComboBox1.Text)-l;
End;
end;
bem o erro se dava nesse comando:
datamodule2.Query1.FindNearest([combobox1.Text]);
porque não existe o ´.FindNearest´ para o query... ai eu coloquei o ´.AppendRecord´, mas esta dando erro mesmo nesse comando agora:
ComboBox1.Items.add(datamodule2.Query1.FieldValues[´nick´].asstring);
erro:´Variant does not reference an automation object´
se alguem souber oque estou fazendo de errado por favor me ajude...
grato desde já
[i:c1f11f1f5d]Título em maiúsculas editado. Leia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689&sid=add834b4ed94967502cf2381c38e751a][u:c1f11f1f5d]Regras de Conduta[/u:c1f11f1f5d][/url]. (marcelo.c – Moderador)[/i:c1f11f1f5d]
segue o codigo:
procedure TForm1.FormShow(Sender: TObject);
begin
comboBox1.Items.clear;
datamodule2.Query1.First;
While not datamodule2.Query1.Eof do begin
ComboBox1.Items.add(datamodule2.Query1.FieldValues[´nick´].asstring);
datamodule2.Query1.Next;
End;
end;
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);
datamodule2.Query1.FindNearest([combobox1.Text]);
if Copy(datamodule2.Query1.fieldvalues[´nick´].asString,1,L)=
Copy(ComboBox1.Text,1,L) then begin
combobox1.Text:=datamodule2.Query1.fieldvalues[´nick´].asString;
combobox1.SelStart:=l;
ComboBox1.SelLength:=Length(ComboBox1.Text)-l;
End;
end;
bem o erro se dava nesse comando:
datamodule2.Query1.FindNearest([combobox1.Text]);
porque não existe o ´.FindNearest´ para o query... ai eu coloquei o ´.AppendRecord´, mas esta dando erro mesmo nesse comando agora:
ComboBox1.Items.add(datamodule2.Query1.FieldValues[´nick´].asstring);
erro:´Variant does not reference an automation object´
se alguem souber oque estou fazendo de errado por favor me ajude...
grato desde já
[i:c1f11f1f5d]Título em maiúsculas editado. Leia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689&sid=add834b4ed94967502cf2381c38e751a][u:c1f11f1f5d]Regras de Conduta[/u:c1f11f1f5d][/url]. (marcelo.c – Moderador)[/i:c1f11f1f5d]
Bysnaga
Curtir tópico
+ 0
Responder
Posts
11/10/2003
Vinicius2k
Bysnaga,
só não entendi uma coisa : porque AppendRecord ?
substitua o .FindNearest por .Locate, dessa forma :
datamodule2.Query1.Locate(´NICK´,ComboBox1.Text,[LoPartialKey]);
acho q isso deve solucionar o problema...
espero ter ajudado...
só não entendi uma coisa : porque AppendRecord ?
substitua o .FindNearest por .Locate, dessa forma :
datamodule2.Query1.Locate(´NICK´,ComboBox1.Text,[LoPartialKey]);
acho q isso deve solucionar o problema...
espero ter ajudado...
Responder
Gostei + 0
11/10/2003
Delphox
8) Bom,vc pode tentar esse jeito:
procedure TForm1.ComboBox1OnDropDown(Sender: TObject)
begin
While not datamodule2.Query1.Eof do begin
ComboBox1.Items.add(datamodule2.Query1.FieldValues[´nick´].asstring);
datamodule2.Query1.Next;
End;
Assim,quando clickar no combobox ele enche as opções,era isso que vc queria fazer???,pois se for aconselho instalar o RxLib que tem um componente que faz isso apenas dando alguns parametros.
8)
procedure TForm1.ComboBox1OnDropDown(Sender: TObject)
begin
While not datamodule2.Query1.Eof do begin
ComboBox1.Items.add(datamodule2.Query1.FieldValues[´nick´].asstring);
datamodule2.Query1.Next;
End;
Assim,quando clickar no combobox ele enche as opções,era isso que vc queria fazer???,pois se for aconselho instalar o RxLib que tem um componente que faz isso apenas dando alguns parametros.
8)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)