Delphi的DataSource事件
Delphi的DataSource事件
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); //数据源记录移动触发
begin
end;
procedure TForm1.DataSource1StateChange(Sender: TObject); //时刻监视着数据源的状态
var s:String;
begin
// TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey,
// dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead,
// dsInternalCalc, dsOpening);
Case DataSource1.State of
dsInactive: s:=’Inactive’; //数据集被关闭
dsBrowse: s:=’Browse’; //浏览模式
dsEdit: s:=’Edit’; //编辑模式,意味着Edit方法已被调用,而编辑后的数据尚未被提交
dsInsert: s:=’Insert’; //插入模式,即Insert被调用,但变化还没有提交
dsSetKey: s:=’SetKey’; //设置键值模式,意味着SetKey被调用,而GotoKey尚未被调用
dsCalcFields: s:=’CalcFields’; //OnCalcFields事件已发生,对记录值的计算正在进行中
dsFilter: s:=’Filter’; //数据集正在处理一个记录过滤器、查找字段或其他需要用到过滤器的操作
dsNewValue: s:=’NewValue’; //数据集处于NewValue属性被访问的临时状态
dsOldValue: s:=’OldValue’; //数据集处于OldValue属性被访问的临时状态
dsCurValue: s:=’CurValue’; //数据集处于CurValue属性被访问的临时状态
dsBlockRead: s:=’BlockRead’; //数据正被写入缓冲区,此时数据库表中指针的移动并不触发数据感知组件的更新和事件的发生
dsInternalCalc: s:=’InternalCalc’; //一个字段值正在被计算,以供一个有fkInterternalCalc类型的Fieldkind属性的字段使用
dsOpening: s:=’Opening’; //数据集处于正在打开状态但是还没有结束,这种状态发生在数据集被异步打开时
End;
Label1.Caption:=s;
end;
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2018-11-29 用Delphi制作仿每行带按钮的列表