• Delphi处理数据网格DBGrid的编辑框 获取还没有提交到数据集的字段文本


    //from
    http://kingron.myetang.com/zsfunc12.htm
    标签: 

    育儿

    分类: delphi
    //from
    http://kingron.myetang.com/zsfunc12.htm

    (*//
    标题:处理数据网格的编辑框
    说明:示例添加焦点颜色;获取还没有提交到数据集的字段文本
    设计:Zswang
    日期:2002-03-31
    支持:wjhu111@21cn.com
    //*)

    ///////Begin   Source
    function   GetDBGridEdit(mDBGrid:   TDBGrid):   TEdit;
    var
        I:   Integer;
    begin
        Result   :=   nil;
        if   not   Assigned(mDBGrid)   then   Exit;
        if   not   mDBGrid.EditorMode   then   begin
            mDBGrid.EditorMode   :=   True;
            mDBGrid.EditorMode   :=   False;
        end;
        with   mDBGrid   do   for   I   :=   0   to   Pred(ComponentCount)   do
            if   Components[I]   is   TCustomEdit   then   begin
                Result   :=   TEdit(Components[I]);
                Break;
            end;
    end;   {   GetDBGridEdit   }

    function   GetDBGridEditText(mDBGrid:   TDBGrid):   string;
    var
        vEdit:   TEdit;
    begin
        vEdit   :=   GetDBGridEdit(mDBGrid);
        if   Assigned(vEdit)   then
            Result   :=   vEdit.Text
        else   Result   :=   ' ';
    end;   {   GetDBGridEditText   }
    ///////End   Source

    ///////Begin   Demo
    procedure   TForm1.DBGrid1Enter(Sender:   TObject);
    var
        vEdit:   TEdit;
    begin
        vEdit   :=   GetDBGridEdit(TDBGrid(Sender));
        if   Assigned(vEdit)   then   vEdit.Color   :=   clYellow;
    end;

    procedure   TForm1.DBGrid1KeyUp(Sender:   TObject;   var   Key:   Word;
        Shift:   TShiftState);
    begin
        Caption   :=   GetDBGridEditText(TDBGrid(Sender));
    end;
    ///////End   Demo
     
     
     

    procedure TForm4.dbgrdShowKeyUp(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    with qry1 do //动态计算
    begin
    if (FindField('总价')<>nil) and (FindField('数量')<>nil) and (FindField('单价')<>nil) then
    if State in [dsinsert,dsedit] then
    begin
    UpdateRecord;
    FieldByName('总价').AsString:=StrOpt(DasS(qry1,'数量'),'*',DasS(qry1,'单价'));
    end;
    end;

    end;

     
    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    开源项目cmdbuild-搭建
    开源项目cmdbuild-寄语
    四 上下文切换
    withRouter的作用和一个简单应用
    封装react组件:显示五星评价
    简单使用 Easy Mock-创建线上伪数据
    react中避免内存泄漏的方法
    react中constructor和super的使用
    使用swiper设计移动端轮播图(https://www.swiper.com.cn/)
    vuex模块化练习-购物车
  • 原文地址:https://www.cnblogs.com/jijm123/p/13661914.html
Copyright © 2020-2023  润新知