• 表格内嵌编辑控件


    在DBGrid 中嵌入一个 DBComboBox1
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
    begin
    if (Field.FieldName = DBComboBox1.DataField ) then
    begin
    DBComboBox1.Left := Rect.Left+ DBGrid1.Left;
    DBComboBox1.Top := Rect.Top +DBGrid1.top;
    DBComboBox1.Width := Rect.Right - Rect.Left;
    DBComboBox1.Height := Rect.Bottom - Rect.Top;
    DBComboBox1.Visible := True;
    end;
    end;
    cxgrid:
    procedure TMycxGrid.ColumnDrawCell(Sender: TcxCustomGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
      var ADone: Boolean);
    var
      g: TcxGrid;
      c: TMyDBComboBox;
      d: TMyDBComboButtonEdit;
      e: TMyDBBitBtn;
      FieldName: string;
      procedure _SetControl(Value: TWinControl);
      begin
        g := TcxGrid(TcxGridDBTableView(Sender).GetParentComponent);
        Value.Left := AViewInfo.TextAreaBounds.Left + g.left;
        Value.Top := AViewInfo.TextAreaBounds.Top + g.Top;
        Value.Width := AViewInfo.TextAreaBounds.Right - AViewInfo.TextAreaBounds.left;
        Value.Height := AViewInfo.TextAreaBounds.Bottom - AViewInfo.TextAreaBounds.top;
        Value.Visible := True;
      end;
    begin
      if AViewInfo.Editing then
      begin
        FieldName := LowerCase(TcxGridDBTableView(Sender).Columns[AViewInfo.Item.ID].Caption);
        if fBindControl is TMyDBComboBox then
        begin
          c := fBindControl as TMyDBComboBox;
          if LowerCase(c.DataField) = FieldName then
            _SetControl(c)
          else c.Visible := False;
        end else if fBindControl is TMyDBComboButtonEdit then
        begin
          d := fbindcontrol as TMyDBComboButtonEdit;
          if LowerCase(d.DataField) = FieldName then
            _SetControl(d)
          else d.Visible := False;
        end else if FBindControl is TMyDBBitBtn then
        begin
          e := fbindcontrol as TMyDBBitBtn;
          if LowerCase(e.DataField) = FieldName then
            _SetControl(e)
          else e.Visible := False;
        end;
      end;
    end;
  • 相关阅读:
    C#之枚举
    C#之判断字母大小、字母转ACII码
    C#之BF算法
    md5如何实现encodePassword加密方法
    基本配置及安全级别security-level
    js中“原生”map
    web.xml讲解
    java application指的是什么
    .conf、.bak是什么格式
    Maven系列--web.xml 配置详解
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940583.html
Copyright © 2020-2023  润新知