delphi ADVStringGrid 怎么显示下拉列表

delphi ADVStringGrid 怎么显示下拉列表

Delphi 2010-11-30 09:20:41 阅读0 评论0   字号: 订阅

AdvStringGrid_IDX.ControlLook.DropDownAlwaysVisible:=True;    显示下拉列表
 
procedure TForm_IndexManager.AdvStringGrid_IDXComboChange(Sender: TObject;
  ACol, ARow, AItemIndex: Integer; ASelection: String);
var
  jstrMEA_TYPE_ID:string;
begin
  //ShowMessage('sdfg');
  case ACol of
           10:begin
              //showmessage(IntToStr(AItemIndex));
              jstrMEA_TYPE_ID:=PMEA_TYPERec(AdvStringGrid_IDX.Combobox.Items.Objects[AdvStringGrid_IDX.Combobox.ItemIndex])^.F_MEA_TYPE_ID;
              if DataSetUR_SYS_MEA <> nil then
              begin
                DataSetUR_SYS_MEA.Data:=null;
                vdm.GetSQLDataSet(' select * from UR_SYS_MEA where MEA_TYPE_ID=? ',VarArrayOf(['S|'+jstrMEA_TYPE_ID]),DataSetUR_SYS_MEA);
              end;
           end;
  end;
//
end;
 
procedure TForm_IndexManager.AdvStringGrid_IDXHasComboBox(Sender: TObject;
  ACol, ARow: Integer; var HasComboBox: Boolean);
begin
  HasComboBox :=(ACol = 7) or (ACol = 9) or (ACol = 10) or (ACol = 11) ;
end;
 
procedure TForm_IndexManager.AdvStringGrid_IDXGetEditorType(
  Sender: TObject; ACol, ARow: Integer; var AEditor: TEditorType);
var
  MyDataTypeRec:PDataTypeRec;
  MyDictRec:PDictRec;
  MyMEA_TYPERec:PMEA_TYPERec;
  MyMEARec:PMEARec;
begin
  with AdvStringGrid_IDX do
  case ACol of
            7:begin
                aEditor := edComboList;
                ClearComboString;
                New(MyDataTypeRec);
                MyDataTypeRec.FDataType_ID:='C';
                MyDataTypeRec.FDataType_Name:='字符';
                AdvStringGrid_IDX.Combobox.Items.AddObject(MyDataTypeRec.FDataType_Name,TObject(MyDataTypeRec));
                New(MyDataTypeRec);
                MyDataTypeRec.FDataType_ID:='N';
                MyDataTypeRec.FDataType_Name:='数值';
                AdvStringGrid_IDX.Combobox.Items.AddObject(MyDataTypeRec.FDataType_Name,TObject(MyDataTypeRec));
                New(MyDataTypeRec);
                MyDataTypeRec.FDataType_ID:='D';
                MyDataTypeRec.FDataType_Name:='日期';
                AdvStringGrid_IDX.Combobox.Items.AddObject(MyDataTypeRec.FDataType_Name,TObject(MyDataTypeRec));
                New(MyDataTypeRec);
                MyDataTypeRec.FDataType_ID:='F';
                MyDataTypeRec.FDataType_Name:='附件';
                AdvStringGrid_IDX.Combobox.Items.AddObject(MyDataTypeRec.FDataType_Name,TObject(MyDataTypeRec));
                New(MyDataTypeRec);
                MyDataTypeRec.FDataType_ID:='P';
                MyDataTypeRec.FDataType_Name:='图片';
                AdvStringGrid_IDX.Combobox.Items.AddObject(MyDataTypeRec.FDataType_Name,TObject(MyDataTypeRec));
              end;
            9:begin   //枚举字典
                aEditor := edComboList;
                ClearComboString;
                 with AdvStringGrid_IDX.Combobox do
                 begin
                   Items.Clear;
                   with DataSetDICT do
                   begin
                     First;
                     while not Eof do
                     begin
                       New(MyDictRec);
                       MyDictRec.FDict_ID:=Fieldbyname('DICT_ID').AsString;
                       MyDictRec.FDict_Name:=Fieldbyname('DICT_NAME').AsString;
                       Items.AddObject(MyDictRec.FDict_Name,TObject(MyDictRec));
                       next;
                     end;
                   end;
                 end;
               end;
            10:begin  //计量单位类型
                 aEditor := edComboList;
                 ClearComboString;
                 with AdvStringGrid_IDX.Combobox do
                 begin
                   Items.Clear;
                   with DataSetUR_SYS_MEA_TYPE do
                   begin
                     First;
                     while not Eof do
                     begin
                       New(MyMEA_TYPERec);
                       MyMEA_TYPERec.F_MEA_TYPE_ID:=Fieldbyname('MEA_TYPE_ID').AsString;
                       MyMEA_TYPERec.F_MEA_TYPE_NAME:=Fieldbyname('MEA_TYPE_NAME').AsString;
                       MyMEA_TYPERec.F_IS_CHG:=Fieldbyname('IS_CHG').AsString;
                       Items.AddObject(MyMEA_TYPERec.F_MEA_TYPE_NAME,TObject(MyMEA_TYPERec));
                       next;
                     end;
                   end;
                 end;
               end;
             11:begin  //计量单位
                   aEditor := edComboList;
                   ClearComboString;
                   with AdvStringGrid_IDX.Combobox do
                   begin
                     Items.Clear;
                     if DataSetUR_SYS_MEA.Data<> null then
                     begin
                       with DataSetUR_SYS_MEA do
                       begin
                         First;
                         while not Eof do
                         begin
                           New(MyMEARec);
                           MyMEARec.F_MEA_TYPE_ID:=Fieldbyname('MEA_TYPE_ID').AsString;
                           MyMEARec.F_MEA_UNIT_ID:=Fieldbyname('MEA_UNIT_ID').AsString;
                           MyMEARec.F_MEA_NAME:=Fieldbyname('MEA_NAME').AsString;
                           Items.AddObject(MyMEARec.F_MEA_NAME,TObject(MyMEARec));
                           next;
                         end;
                       end;
                     end;
                   end;
                end;
  end;
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值