GARANTIR DESCONTO

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]


Bysnaga

Bysnaga

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...


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)


Responder

Gostei + 0

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

Aceitar