var piks: TStrings; pikq: TADOQuery; piks := TStringList.Create; with pikq do begin Connection := ADOC; //已设定的ADOConnection Close; SQL.Clear; SQL.Add('SELECT 所需下拉的字段 FROM 提供下拉字段的表'); Open; while not eof do begin piks.Add(FieldByName('CauseCategory').AsString); Next; end; end; pikq.Free; datagrid.Columns.Items[x].PickList := piks; // datagrid-- 需要使用的GRID, x-- GRIDR的列 piks.Free;
注: begin //piks.Add(FieldByName('CauseCategory').AsString); piks.Add(FieldByName('所需下拉的字段').AsString); Next;
pikq: TADOQuery;
piks := TStringList.Create;
with pikq do
begin
Connection := ADOC; //已设定的ADOConnection
Close;
SQL.Clear;
SQL.Add('SELECT 所需下拉的字段 FROM 提供下拉字段的表');
Open;
while not eof do
begin
piks.Add(FieldByName('CauseCategory').AsString);
Next;
end;
end;
pikq.Free;
datagrid.Columns.Items[x].PickList := piks; // datagrid-- 需要使用的GRID, x-- GRIDR的列
piks.Free;
begin
//piks.Add(FieldByName('CauseCategory').AsString);
piks.Add(FieldByName('所需下拉的字段').AsString);
Next;
datagrid.Columns.Items[x].PickList := piks; // datagrid-- 需要使用的GRID, x-- GRIDR的列
piks.Free;
在creat事件里可以吗?piks.free后,还可以继续使用?