关于自定义过程:K.items.add(s);(30分)

  • 主题发起人 主题发起人 lsyhql
  • 开始时间 开始时间
L

lsyhql

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tgrinputform.upsuju(k:string);
{自定义过程指定的组合框数据更新}
var s:string;
begin
s:='select distinct '+k+' from gr.db order by '+k ;
query3.close;query3.sql.clear;query3.sql.add(s);query3.open;
k.items.clear;
while not query3.eof do
begin
s:=query3.fieldbyname(k).asstring;
k+'.items.add('+s+')';
query3.next;
end;
end;

procedure Tgrinputform.dbgxDropDown(Sender: TObject);
{调用该过程:使DBGX组合框的数据更新}
begin
s:='dbgx';
upsuju(s);
END;

运行时显示:[Error] k.items.clear;:记录,对象或类型必需的
应怎办?谢谢!!
 
k.items.clear;
k+'.items.add('+s+')';
这两句有问题了,k是字符串,当然没有Items属性了
 
老大的代码整个全是乱的,多看看书吧
 
如果我想对其中一个组合框(DBGX)的items的数据进行更新,调用该过程应怎写??
 
s:='select distinct '+k+' from gr.db order by '+k ;
你要从表中取出什么字段来放入组合框中?写出来偶帮你写这段代码算了:(
 
我想从表中取出DBGX字段放入组合框中,
但我还有几个组合框需要同样操作,只是所取出的字段不同。字段名与该组合框的NAME相同。
如果每个组合框的DropDown事件中都与上这段程序(只是字段名不同),哪就显得很烦,所以
我才想到用自定义过程》
 
procedure Tgrinputform.upsuju(aComboBox:TComboBox; k:string);
{自定义过程指定的组合框数据更新}
begin
with Query3 do
begin
Close;
Sql.Text:='select distinct '+k+' from gr.db order by '+k;
Open;
if Eof=Bof then
begin
Close;
Exit;
end;
aComboBox.Items.Clear;
while not Eof do
begin
aComboBox.Items.Add(Fields[0].AsString);
Next;
end;
Close;
end;
end;

procedure Tgrinputform.dbgxDropDown(Sender: TObject);
{调用该过程:使DBGX组合框的数据更新}
begin
upsuju(DBGX,'dbgx');
end;

试试吧
 
按楼上的方法已调试完毕,接受答案!谢谢
 

Similar threads

后退
顶部