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

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;

 

转载于:https://www.cnblogs.com/q377545469/p/10454377.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值