procedure TfGrAuditoriaVendas.CarregaFiltro;
var vLstCampos:TStringList;
begin
try
vLstCampos:=TStringList.Create;
Auditoria.LstCampos.First;
Auditoria.LstCampos.DisableControls;
while not Auditoria.LstCampos.Eof do
begin
vLstCampos.Add(Auditoria.LstCampos.FieldByName('nome').AsString);
Auditoria.LstCampos.Next;
end;
Auditoria.LstCampos.EnableControls;
gFiltro.Columns[0].PickList:=vLstCampos;
finally
FreeAndNil(vLstCampos);
end;
criação do DataSet
FLstFiltro:=TClientDataSet.Create(nil);
with FLstFiltro do
begin
FieldDefs.Add('campo', ftString, 100, False);
CreateDataSet;
end;
ligando DataSource com a DbGrid
dsFiltro.DataSet:=Auditoria.LstFiltro;
depois que fizer a pesquisa e carregar o Dataset LstCampos é só chamar CarregaFiltro
propriedades da DbGrid
object gFiltro: TDBGrid
Left = 13
Top = 33
Width = 709
Height = 127
Ctl3D = False
DataSource = dsFiltro
DrawingStyle = gdsGradient
Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack]
ParentCtl3D = False
TabOrder = 4
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
TitleFont.Style = []
OnCellClick = gFiltroCellClick
end
OnClic da dbgrid para abrir o combobox
procedure TfGrAuditoriaVendas.gFiltroCellClick(Column: TColumn);
begin
if Column.PickList.Count > 0 then
begin
keybd_event(VK_F2,0,0,0);
keybd_event(VK_F2,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,0,0);
keybd_event(VK_DOWN,0,0,0);
keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
end;
end;
Nenhum comentário:
Postar um comentário