dbgrideh+tquery如何设置下拉列表,谢谢!!!!!
如果改为dbgrideh+table就行,用table只要新建一个lookup字段,然后把dbgrideh的columns[0].allwayshoweditbutton改为true就行了。
但用query就不行,不知为什么?请各位高手帮帮忙!!!
如果改为dbgrideh+table就行,用table只要新建一个lookup字段,然后把dbgrideh的columns[0].allwayshoweditbutton改为true就行了。
但用query就不行,不知为什么?请各位高手帮帮忙!!!
procedure TForm1.Button1Click(Sender: TObject);
begin
with DBGrid1.Columns[0].PickList do begin
Clear;
Add('试一下');
Add('OKOK?');
end;
end;
我用DBGrid测试的,你自己改一下试试。
刚才在试用Lookup字段。以前一直用PickList,没想到Lookup字段这么不容易。
奇怪,为什么Lookup字段创建成功并能添加,但无法下拉?
procedure TForm1.Button1Click(Sender: TObject);
var
I: integer;
begin
Query1.Close;
Query2.Close;
Query1.DatabaseName := 'DBDEMOS';
Query2.DatabaseName := 'DBDEMOS';
Query1.SQL.Text := 'select * from animals';
Query2.SQL.Text := 'select * from clients';
Query2.Open;
with TStringField.Create(Query1) do begin
FieldName := 'NewF';
FieldKind := fkLookup;
DataSet := Query1;
Name := 'Query1NewF';
KeyFields := 'NAME';
LookupDataSet := Query2;
LookupKeyFields := 'LAST_NAME';
LookupResultField := 'LAST_NAME';
Lookup := True;
Query1.FieldDefs.Add(Name, ftString, 10, false);
end;
Query1.Open;
end;
至此,楼主,我用2楼代码试验成功。要点是:1、设计阶段要把Query1中需要用到的字段全部添加(然后关闭Query1),其余全部代码实现。